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;
A piecewise linear section between 0.2π rad/sample and 0.78π rad/sample.
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];
A quadratic section between 0.79π rad/sample and the Nyquist frequency.
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.
Under Response Type, select the button next to
Differentiator
. From the drop-down list, chooseArbitrary Magnitude
.Set Design Method to
FIR
. From the drop-down list, selectLeast-squares
.Under Filter Order, specify the order as the variable
N
.Under Frequency and Magnitude Specifications, specify the variables you created:
Freq. vector —
FreqVect
.Mag. vector —
AmplVect
.Weight vector —
WghtVect
.
Click Design Filter.
Right-click the y-axis of the plot and select Magnitude to express the magnitude response in linear units.