Forums

changing the frequency of an IIR filter knowing only its coefficients

Started by Paul Auchon June 9, 2006
we are here in a case where only the coefficicents of the IIR filter are
known.

Is it possible to change the cutoff frequency of this filter (which could
be a notch filter for example, or something more complex) having only its
coefficients (a0/a1/b1...)?

1- can any filter of any pole (2 to 16 and more) be transformed back into
a pole-zero notation? If yes, would there be then any chance that
"rotating" in a certain way the poles and/ zeros would achieve the
frequency shift? how can this be done? any tutorial or link to
documentation is welcome.

2- another way i was thinking about would be to resample the incoming
signal to achieve the frequency change : upsampling a little bit would
lower the cutoff while downsampling would raise it ? (of course this would
suppose initially upsample the signal before downsampling). and what would
happen near 0 and fs/2 hz ?

thanks for any help


Paul Auchon skrev:
> we are here in a case where only the coefficicents of the IIR filter are > known. > > Is it possible to change the cutoff frequency of this filter (which could > be a notch filter for example, or something more complex) having only its > coefficients (a0/a1/b1...)? > > 1- can any filter of any pole (2 to 16 and more) be transformed back into > a pole-zero notation?
Yes, at least theoretically. There may be practical problems, but in principle you only have to use a polynomial rooting routine.
> If yes, would there be then any chance that > "rotating" in a certain way the poles and/ zeros would achieve the > frequency shift?
Yes. This is routinely done when designing IIR filters.
> how can this be done? any tutorial or link to > documentation is welcome.
I don't have my copy easily available, but I believe this one contains a chapter on frequency transforms: http://www.amazon.com/gp/product/0071454241/sr=8-1/qid=1149878157/ref=sr_1_1/104-5340109-4484701?%5Fencoding=UTF8 Rune
Paul Auchon wrote:

> we are here in a case where only the coefficicents of the IIR filter are > known. > > Is it possible to change the cutoff frequency of this filter (which could > be a notch filter for example, or something more complex) having only its > coefficients (a0/a1/b1...)? > > 1- can any filter of any pole (2 to 16 and more) be transformed back into > a pole-zero notation? If yes, would there be then any chance that > "rotating" in a certain way the poles and/ zeros would achieve the > frequency shift? how can this be done? any tutorial or link to > documentation is welcome. > > 2- another way i was thinking about would be to resample the incoming > signal to achieve the frequency change : upsampling a little bit would > lower the cutoff while downsampling would raise it ? (of course this would > suppose initially upsample the signal before downsampling). and what would > happen near 0 and fs/2 hz ? > > thanks for any help > >
1. Yes, but there's always numerical difficulties as the polynomials get big. But then, there's the same numerical difficulties if the filters are implemented as more than 2nd order at a time. So yes, you could factor back down to pole/zero, then redesign, then go back up. Or you could just decide what performance you want then go straight to coefficients and throw away what you have (unless the idea is that you almost like what you have). 2. Don't do that. http://www.wescottdesign.com/articles/zTransform/z-transforms.html -- Tim Wescott Wescott Design Services http://www.wescottdesign.com Posting from Google? See http://cfaj.freeshell.org/google/ "Applied Control Theory for Embedded Systems" came out in April. See details at http://www.wescottdesign.com/actfes/actfes.html