DSPRelated.com
Forums

Bandpass IIR Filter design

Started by Rene Gerber May 15, 2007
Dear list

Im designing a bandpass iir filter (prototyp) for a small realtime 
system. I already implemented the lowpass butterworth filter for a 
variable order by calculating the normalized butterworth polynomials in 
2nd order systems and then applying the bilinear transformation. This 
results as well in 2nd order systems in the z domain which can be used 
as a biquad cascade for the iir filter routine.

However for a bandpass for a variable order N the implementation seems 
to be more complicated in the mathematical sense and I would like to 
know if any calculation in the s-domain has been done for higher orders 
of N.

Unfortunately my textbook only explains how to get a 4th order bandpass 
from a 2nd order lowpass transfer function by applying the 
lowpass-bandpass transformation. I am looking for a more general 
mathematical solution similar to the normalized butterworth polynomials 
to calculate a cascade of 2nd order transfer functions for a bandpass 
which can then be transfered in the z domain.

Any help is appreciated.
Ren�
On 16 May, 00:53, Rene Gerber <renegerb...@trashmail.net> wrote:
> Dear list > > Im designing a bandpass iir filter (prototyp) for a small realtime > system. I already implemented the lowpass butterworth filter for a > variable order by calculating the normalized butterworth polynomials in > 2nd order systems and then applying the bilinear transformation. This > results as well in 2nd order systems in the z domain which can be used > as a biquad cascade for the iir filter routine. > > However for a bandpass for a variable order N the implementation seems > to be more complicated in the mathematical sense and I would like to > know if any calculation in the s-domain has been done for higher orders > of N. > > Unfortunately my textbook only explains how to get a 4th order bandpass > from a 2nd order lowpass transfer function by applying the > lowpass-bandpass transformation. I am looking for a more general > mathematical solution similar to the normalized butterworth polynomials > to calculate a cascade of 2nd order transfer functions for a bandpass > which can then be transfered in the z domain.
The most comprehensive (contemporary) text on such matters is Antoniou's 2006 book. Everything you need is in there. Rune
On 16 Mai, 00:53, Rene Gerber <renegerb...@trashmail.net> wrote:
> Dear list > > Im designing a bandpass iir filter (prototyp) for a small realtime > system. I already implemented the lowpass butterworth filter for a > variable order by calculating the normalized butterworth polynomials in > 2nd order systems and then applying the bilinear transformation. This > results as well in 2nd order systems in the z domain which can be used > as a biquad cascade for the iir filter routine. > > However for a bandpass for a variable order N the implementation seems > to be more complicated in the mathematical sense and I would like to > know if any calculation in the s-domain has been done for higher orders > of N. > > Unfortunately my textbook only explains how to get a 4th order bandpass > from a 2nd order lowpass transfer function by applying the > lowpass-bandpass transformation. I am looking for a more general > mathematical solution similar to the normalized butterworth polynomials > to calculate a cascade of 2nd order transfer functions for a bandpass > which can then be transfered in the z domain.
A bilinearly transformed biquad bandpass is described in the Audio EQ Cookbook (http://www.musicdsp.org/files/Audio-EQ-Cookbook.txt). You can cascade them to increase the order in steps of 2. Slope can be controlled with Q. Regards, Andor
On 16.05.2007 10:03, Andor wrote:
> On 16 Mai, 00:53, Rene Gerber <renegerb...@trashmail.net> wrote: > A bilinearly transformed biquad bandpass is described in the Audio EQ > Cookbook (http://www.musicdsp.org/files/Audio-EQ-Cookbook.txt). You > can cascade them to increase the order in steps of 2. Slope can be > controlled with Q.
Thank you but by cascading this second order systems for a higher order of N the slope will look different from a pure butterworth filter of the same order.
On 16.05.2007 01:50, Rune Allnor wrote:
> On 16 May, 00:53, Rene Gerber <renegerb...@trashmail.net> wrote: > The most comprehensive (contemporary) text on such matters is > Antoniou's 2006 book. Everything you need is in there. >
Thanks for the hint. The book looks very comprehensive. Though it does not explain for example how to do the bilinear transformation numerically in software.
Rene Gerber wrote:
> On 16.05.2007 01:50, Rune Allnor wrote: >> On 16 May, 00:53, Rene Gerber <renegerb...@trashmail.net> wrote: >> The most comprehensive (contemporary) text on such matters is >> Antoniou's 2006 book. Everything you need is in there. >> > > Thanks for the hint. The book looks very comprehensive. Though it does > not explain for example how to do the bilinear transformation > numerically in software.
The bilinear transformation is an algebraic process. I haven't heard of using numerical methods to perform it. Jerry -- Engineering is the art of making what you want from things you can get. &macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;&macr;
On 16 May, 20:57, Rene Gerber <renegerb...@trashmail.net> wrote:
> On 16.05.2007 10:03, Andor wrote: > > > On 16 Mai, 00:53, Rene Gerber <renegerb...@trashmail.net> wrote: > > A bilinearly transformed biquad bandpass is described in the Audio EQ > > Cookbook (http://www.musicdsp.org/files/Audio-EQ-Cookbook.txt). You > > can cascade them to increase the order in steps of 2. Slope can be > > controlled with Q. > > Thank you but by cascading this second order systems for a higher order > of N the slope will look different from a pure butterworth filter of the > same order.
Designing higher-order Butterworth filters is a bit involved, but not particularly difficult. The idea is to design a set of biquads, which form a Butterworth when combined. The formulas for the low-pass Butterworth of arbitrary N are available in DSP books like Proakis & Manolakis. For bandpass filters you need to apply a frequency transform to the low-pass prototype. Now, there are lots of tiny details to keep track of when doing all this; the main problem is to keep all the details in view. If you can find the book by Antoniou (it seems not to be available via amazon.com), that's about the only place you will find all the pieces in one spot. Rune
On 17.05.2007 00:52, Jerry Avins wrote:
> Rene Gerber wrote: >> On 16.05.2007 01:50, Rune Allnor wrote: >>> On 16 May, 00:53, Rene Gerber <renegerb...@trashmail.net> wrote: >>> The most comprehensive (contemporary) text on such matters is >>> Antoniou's 2006 book. Everything you need is in there. >>> >> >> Thanks for the hint. The book looks very comprehensive. Though it does >> not explain for example how to do the bilinear transformation >> numerically in software. > > The bilinear transformation is an algebraic process. I haven't heard of > using numerical methods to perform it.
As far as I know matlab uses the state space representation of the transfer function to perform the bilinear transformation.
On 17.05.2007 04:46, Rune Allnor wrote:
> On 16 May, 20:57, Rene Gerber <renegerb...@trashmail.net> wrote: >> On 16.05.2007 10:03, Andor wrote: >> >> > On 16 Mai, 00:53, Rene Gerber <renegerb...@trashmail.net> wrote: >> > A bilinearly transformed biquad bandpass is described in the Audio EQ >> > Cookbook (http://www.musicdsp.org/files/Audio-EQ-Cookbook.txt). You >> > can cascade them to increase the order in steps of 2. Slope can be >> > controlled with Q. >> >> Thank you but by cascading this second order systems for a higher order >> of N the slope will look different from a pure butterworth filter of the >> same order. > > Designing higher-order Butterworth filters is a bit involved, but > not particularly difficult. The idea is to design a set of biquads, > which form a Butterworth when combined. The formulas for the > low-pass Butterworth of arbitrary N are available in DSP books > like Proakis & Manolakis. For bandpass filters you need to > apply a frequency transform to the low-pass prototype.
Yes I know this. But I fear my application will need an algebraic expression handler then which I try to avoid because it will increase complexity. Rene
On 17 May, 15:24, Rene Gerber <renegerb...@trashmail.net> wrote:
> On 17.05.2007 00:52, Jerry Avins wrote: > > > Rene Gerber wrote: > >> On 16.05.2007 01:50, Rune Allnor wrote: > >>> On 16 May, 00:53, Rene Gerber <renegerb...@trashmail.net> wrote: > >>> The most comprehensive (contemporary) text on such matters is > >>> Antoniou's 2006 book. Everything you need is in there. > > >> Thanks for the hint. The book looks very comprehensive. Though it does > >> not explain for example how to do the bilinear transformation > >> numerically in software. > > > The bilinear transformation is an algebraic process. I haven't heard of > > using numerical methods to perform it. > > As far as I know matlab uses the state space representation of the > transfer function to perform the bilinear transformation.
I heard that, too, and that rumour -- for all I know it's true -- kept me for years from having a go at filter design. Once you get down to the nitty-gritty details, all you need is the BLT for at most order 2. All higher order filters are expressed in terms of biquads, so apply the BLT on each of them in turn, and you are good. The hard part was not to implement the details, but to find them. Antoniou's book came out months after I had finished my little project, just at the right time for me to appreciate its value. Rune