Hi All! 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 : 5Stable : YesLinear Phase : NoDesign Method InformationDesign Algorithm : EllipticDesign OptionsMatch Exactly : bothDesign SpecificationsSample Rate : 860 HzResponse : BandpassSpecification : Fst1,Fp1,Fp2,Fst2,Ast1,Ap,Ast2Passband Ripple : 0.1 dBFirst Stopband Edge : 84.3 mHzSecond Stopband Atten. : 30 dBSecond Stopband Edge : 67.9315 HzSecond Passband Edge : 500 mHzFirst Passband Edge : 100 mHzFirst 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
where i see that at 67.9315 Hz the attenuation is far below 30 dB. A zoom of the pass-band is the following
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.
Best Answer