DSPRelated.com
Forums

IIR filters revisited

Started by Dani September 14, 2004
Andor Bariska <an2or@nospam.net> wrote in message news:<414842c2$1@pfaff2.ethz.ch>...
> Rune Allnor wrote: > ... > >>What is the optimal way to check if an IIR filter is stable (having only > >>its ceofficients)? So far, I jammed an impulse through the filter and > >>checked the output and if the output was still non-zero after a constant > >>ammount of samples have passed I claimed the filter unstable. This isn't > >>very efficient though. > > > > > > Even worse, it's wrong. No Infinite Impulse Response filter will ever > > pass your test. > > Baring limit cycles, you'd need pretty high resolution maths for true > infinite response :-).
In floating-point systems, the output will never reach exactly zero. The impulse response of a stable filter will eventually degrade into numerical noise, but it will never reach exactly zero. No IIR filter implemented with floating point numerics will pass the test. Rune
On 15 Sep 2004 09:45:58 -0700, Frederick Umminger <fumminger@umminger.com> 
wrote:

> allnor@tele.ntnu.no (Rune Allnor) wrote in message > news:<f56893ae.0409150049.3effeee9@posting.google.com>... >> >> To check whether the filter is stable, compute the roots of the >> denominator >> polynoumial. If any root lies outside the unit circle, the filter is >> unstable. >> > > You can also check for stability without having to find the roots by > converting to lattice form and checking that none of the k-parameters > have absolute value greater than one. > > -Frederick Umminger
Thanks for the advice! Thanks to this i found the following solution: http://www.mathworks.com/access/helpdesk/help/toolbox/signal/poly2rc.html Dani
> What is the optimal way to check if an IIR filter is stable (having only > its ceofficients)? So far, I jammed an impulse through the filter and > checked the output and if the output was still non-zero after a constant > ammount of samples have passed I claimed the filter unstable.
IIR stands for Infinite Impulse Response. If you supply a pulse to IIR it is normal that it never sets to zero (in practice, it sets to zero when signal is small enough to fit to finite precsion representation). IIR filter is stable if it provides bounded output if any ANY bounded input supplied. In practice you should find poles and see whether poles are inside of the unit circle (or left plane in case of s-transform). Anton Zemlyanov NetDevice Communication Research Center Chief Researcher
Just FYI, I have solved this issue.

Actually I managed to generate completely stable IIR filters, according to 
my specification, using GAs. I must say im quite happy with the outcome. 
Thanks for your support!

Now when I have my filterbank, I have other things to do with it.

Thanks again yall!

Dani
Dani <devil_slayer@nospam.com> wrote in message news:<opselczc1dq81tw3@news.tpi.pl>...
> Just FYI, I have solved this issue. > > Actually I managed to generate completely stable IIR filters, according to > my specification, using GAs. I must say im quite happy with the outcome. > Thanks for your support! > > Now when I have my filterbank, I have other things to do with it. > > Thanks again yall!
<sarcasm mode> Oh no, the one to be thanked here is you. Not only have you been able to "generate" the filter bank you need, you have done so without having had the slightest trace of knowledge of DSP in general or filter design in particular. When people hear about you groundbreaking approach of using Genetic Algorithms to solve this problem, the obvious consequence is that learning DSP is a waste of time for students, and that paying DSP consultants for their time is a waste of money. Just buy a computer, get some GA SW and let the thing crunch the numbers. How hard can it be? Rest asured, you will recieve full gratitude from humankind for finally putting the scoundrel parasites that DSP professionals are well-known to be, out of business. <\sarcasm mode> Your humble and most obedient s'vant, Rune