IIR bandpass filter with very low corner frequencies
Show older comments
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 : 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

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.
Accepted Answer
More Answers (0)
Categories
Find more on Frequency Transformations in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!