Reply by Rune Allnor September 20, 20042004-09-20
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
Reply by Dani September 19, 20042004-09-19
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
Reply by AntonZ September 18, 20042004-09-18
> 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
Reply by Dani September 16, 20042004-09-16
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
Reply by Rune Allnor September 16, 20042004-09-16
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
Reply by Jerry Avins September 15, 20042004-09-15
Ronald H. Nicholson Jr. wrote:

> In article <41484553$0$2669$61fed72c@news.rcn.com>, > Jerry Avins <jya@ieee.org> wrote: > >>[someone wrote:] >> >>>So in aother terms, the filter is stable if the poles of the filter are >>>inside the unity circle of the z-plot, right? >>> >>>Ok, i'll think about that, but how would i go to make such a filter > > ... > >>There are filter-design programs, some of them free, that compute a set >>of coefficients to meet your filter specifications. Do you use one? > > > This assumes that there are specifications (frequency or impulse) > to which an IIR filter can be designed. This may not be the case. > If you are searching among stable sets of filter coefficients (using some > other, perhaps more computationally tractable, fitness metric for ones > given requirements), the standard filter-design approaches might not work. > > > IMHO. YMMV.
Agreed. My remark wasn't intended to be a cure-all or a criticism; just a possibly helpful hint. Jerry -- Engineering is the art of making what you want from things you can get. &#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;
Reply by Ronald H. Nicholson Jr. September 15, 20042004-09-15
In article <41484553$0$2669$61fed72c@news.rcn.com>,
Jerry Avins  <jya@ieee.org> wrote:
> [someone wrote:] >> So in aother terms, the filter is stable if the poles of the filter are >> inside the unity circle of the z-plot, right? >> >> Ok, i'll think about that, but how would i go to make such a filter
...
>There are filter-design programs, some of them free, that compute a set >of coefficients to meet your filter specifications. Do you use one?
This assumes that there are specifications (frequency or impulse) to which an IIR filter can be designed. This may not be the case. If you are searching among stable sets of filter coefficients (using some other, perhaps more computationally tractable, fitness metric for ones given requirements), the standard filter-design approaches might not work. IMHO. YMMV. -- Ron Nicholson rhn AT nicholson DOT com http://www.nicholson.com/rhn/ #include <canonical.disclaimer> // only my own opinions, etc.
Reply by Jon Harris September 15, 20042004-09-15
"Rune Allnor" <allnor@tele.ntnu.no> wrote in message
news:f56893ae.0409150049.3effeee9@posting.google.com...
> Dani <devil_slayer@nospam.com> wrote in message
news:<opseb1c9v7q81tw3@news.tpi.pl>...
> > Hello mates, > > > > 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.
Correct in theory, but with finite-precision math, this test may end up working just fine. But it would be better to modify the procedure to check that the output was below a certain level rather than being zero after the prescribed time had elapsed. And still better are the other methods involving roots or converting the lattice.
Reply by Frederick Umminger September 15, 20042004-09-15
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
Reply by Jerry Avins September 15, 20042004-09-15
Dani wrote:

> Another thing misundertstood... What would i do without you... > > So in aother terms, the filter is stable if the poles of the filter are > inside the unity circle of the z-plot, right? > > Ok, i'll think about that, but how would i go to make such a filter > stable again (without the need of inverse z-transform)?
What do you mean by stable _again_? You can't move the poles (poles are zeros of the denominator) without changing the coefficients. There are filter-design programs, some of them free, that compute a set of coefficients to meet your filter specifications. Do you use one? Jerry -- Engineering is the art of making what you want from things you can get. &#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;