# changing the frequency of an IIR filter knowing only its coefficients

Started by 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