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);


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. vectorFreqVect.

    • Mag. vectorAmplVect.

    • Weight vectorWghtVect.

  5. Click Design Filter.

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

See Also