MATLAB Answers

IIR bandpass filter with very low corner frequencies

18 views (last 30 days)
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

Frantz Bouchereau
Frantz Bouchereau on 24 Aug 2020
Emanuele, the passband frequencies are extremely small for the 860 Hz sample rate. I recomend you donwssmple the signal to a much smaller sample rate and then design the filter with the required passband frequencies.
HTH

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!