I'm trying to get in the MATLAB Signal Processing Toolbox a bandpass IIR filter having the following specifications: pass-band [0.1-0.5] Hz and stop-band attenuation 30 dB. I'm using the following command: [fdata,DigFilt] = bandpass(data, [0.1,0.5], fs, 'ImpulseResponse', 'iir', 'StopbandAttenuation', 30); The sampling frequency fs is 860 Hz. The command info(DigFilt) says that

IIR Digital Filter (real)

Number of Sections : 5 Stable : Yes Linear Phase : No

Design Method Information Design Algorithm : Elliptic

Design Options Match Exactly : both

Design Specifications Sample Rate : 860 Hz Response : Bandpass Specification : Fst1,Fp1,Fp2,Fst2,Ast1,Ap,Ast2 Passband Ripple : 0.1 dB First Stopband Edge : 84.3 mHz Second Stopband Atten. : 30 dB Second Stopband Edge : 67.9315 Hz Second Passband Edge : 500 mHz First Passband Edge : 100 mHz First Stopband Atten. : 30 dB

The very strange parameter is Second Stopband Edge = 67.9315 Hz that seems to me too high considering the high corner frequency of 0.5 Hz. In fact, when i plot the frequency response with fvtool(DigFilt) i get the following

enter image description here

where i see that at 67.9315 Hz the attenuation is far below 30 dB. A zoom of the pass-band is the following

enter image description here

With this image, the first stop-band edge seems to be 57 mHz (and not 84.3 mHz as indicated by the command info) and the second stop-band edge seems to be 577 mHz. Why is there such disagreement between the images and the output of the command info ? Is it caused by the very low corner frequencies? Thanks to all.

  • 1
    $\begingroup$ Looks like your frequency grid for plotting is not dense enough. You can clearly see the individual frequency points and they look about 50m Hz apart. $\endgroup$
    – Hilmar
    Aug 6, 2020 at 13:13
  • $\begingroup$ Thanks, i will try a denser grid $\endgroup$ Aug 25, 2020 at 21:29


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.