## Arbitrary Magnitude Filter

Design an FIR filter with the following piecewise frequency response:

• A sinusoid between 0 and 0.19π rad/sample.

```F1 = 0:0.01:0.19; A1 = 0.5+sin(2*pi*7.5*F1)/4;```

```F2 = [0.2 0.38 0.4 0.55 0.562 0.585 0.6 0.78]; A2 = [0.5 2.3 1 1 -0.2 -0.2 1 1];```

```F3 = 0.79:0.01:1; A3 = 0.2+18*(1-F3).^2;```

Specify a filter order of 50. Consolidate the frequency and amplitude vectors. To give all bands equal weights during the optimization fit, specify a weight vector of all ones. Open the Filter Designer app.

```N = 50; FreqVect = [F1 F2 F3]; AmplVect = [A1 A2 A3]; WghtVect = ones(1,N/2); filterDesigner```

Use the app to design the filter.

1. Under Response Type, select the button next to `Differentiator`. From the drop-down list, choose `Arbitrary Magnitude`.

2. Set Design Method to `FIR`. From the drop-down list, select `Least-squares`.

3. Under Filter Order, specify the order as the variable `N`.

4. Under Frequency and Magnitude Specifications, specify the variables you created:

• Freq. vector`FreqVect`.

• Mag. vector`AmplVect`.

• Weight vector`WghtVect`.

5. Click Design Filter.

6. Right-click the y-axis of the plot and select Magnitude to express the magnitude response in linear units.