Why does the cascade of a lowpass and a highpass Butterworth filter not produce the same results as a bandpass Butterworth filter in Signal Processing Toolbox 6.10 (R2008b) ?

10 views (last 30 days)
I created a cascade of lowpass and highpass Butterworth filters and compared the result to a bandpass Butterworth filter - all created using either the Signal Processing Toolbox or the Filter Design Toolbox.
The following is an example of this process:
%%8th order bandpass filter
[b,a]=butter(4,[0.4 0.6],'bandpass');
Hbp=dfilt.df1(b,a);
%%Cascade of 4th order lowpass and highass filters
[b1,a1]=butter(4,0.6); % Lowpass
[b2,a2]=butter(4,0.4,'high'); % Highpass
H1=dfilt.df1(b1,a1);
H2=dfilt.df1(b2,a2);
Hcas=dfilt.cascade(H1,H2);
I expected "Hcas" and "Hbp" to be equivalent filters. However, executing the following command shows that this is not true:
fvtool(Hbp,Hcas)

Accepted Answer

MathWorks Support Team
MathWorks Support Team on 27 Jun 2009
This is actually the expected result and is due to the fact that the Signal Processing Toolbox does not cascade a lowpass and a highpass filter to create a bandpass IIR filter. Instead, it first creates a lowpass prototype and then uses a "Transformation Function" to convert it to a bandpass filter as described by the following help documentation in Signal Processing Toolbox 6.10 (R2008b):
web([docroot '/toolbox/signal/f4-9099.html#f4-9199'])
For the theoretical background information, please refer to the references mentioned in the following help documentation:
web([docroot '/toolbox/signal/f4-19497.html'])
web([docroot '/toolbox/filterdesign/ug/f2-4793.html'])

More Answers (0)

Products


Release

R2008b

Community Treasure Hunt

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

Start Hunting!