MATLAB: IIR bandpass filter with very low corner frequencies

iirMATLABsignal processingSignal Processing Toolbox

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.

Best Answer

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