DSPRelated.com
Forums

fdls and stable iirs

Started by Randy Yates September 3, 2013
if you use the fdls algorithm to get an iir, how do you know it's
stable?
-- 
Randy Yates
Digital Signal Labs
http://www.digitalsignallabs.com
Randy Yates <yates@digitalsignallabs.com> writes:

> if you use the fdls algorithm to get an iir, how do you know it's > stable?
of course i know you can check the poles. a more precise question is, is there some formulation of fdls which will guarantee the iir will be stable? -- Randy Yates Digital Signal Labs http://www.digitalsignallabs.com
On Tue, 03 Sep 2013 13:39:57 -0400, Randy Yates wrote:

> if you use the fdls algorithm to get an iir, how do you know it's > stable?
What's FDLS? -- Tim Wescott Wescott Design Services http://www.wescottdesign.com
On 9/3/13 11:26 AM, Tim Wescott wrote:
> On Tue, 03 Sep 2013 13:39:57 -0400, Randy Yates wrote: > >> if you use the fdls algorithm to get an iir, how do you know it's >> stable? > > What's FDLS?
it's Greg Berchin's alternative to prony. i think (maybe Greg would assess it differently). sometimes Greg is listening in. he would be the best person with answers. -- r b-j rbj@audioimagination.com "Imagination is more important than knowledge."
Tim Wescott <tim@seemywebsite.really> writes:

> On Tue, 03 Sep 2013 13:39:57 -0400, Randy Yates wrote: > >> if you use the fdls algorithm to get an iir, how do you know it's >> stable? > > What's FDLS?
Frequency Domain Least Squares, a filter design technique/ system ID techique that Greg Berchin has made popular. -- Randy Yates Digital Signal Labs http://www.digitalsignallabs.com
On Tue, 03 Sep 2013 14:44:49 -0400, Randy Yates wrote:

> Tim Wescott <tim@seemywebsite.really> writes: > >> On Tue, 03 Sep 2013 13:39:57 -0400, Randy Yates wrote: >> >>> if you use the fdls algorithm to get an iir, how do you know it's >>> stable? >> >> What's FDLS? > > Frequency Domain Least Squares, a filter design technique/ system ID > techique that Greg Berchin has made popular.
If you're just going for amplitude response, make the filter stable by reversing poles as necessary. If you're going for amplitude and phase response, use an optimizer that will let you limit the range of the optimized variables and optimize by shoving poles around within your designated area on the z plane. -- Tim Wescott Wescott Design Services http://www.wescottdesign.com
I am not aware of any technique that guarantees stability. There may be some constraints that can be applied, but I am not familiar with them.

In general, FDLS fits a stable transfer function to a stable prototype frequency response, and an unstable transfer function to an unstable prototype frequency response, provided that FDLS can actually find a good fit. Therein lies the problem -- FDLS can usually find a good fit for a frequency response resulting from a Laplace-domain or Z-domain rational transfer function, but doesn't always find a good fit for an *arbitrary* frequency response. (I believe that Vladimir did some testing in this application.) Furthermore, even with a transfer function that "should" produce a good fit, if FDLS is given too few (or way too many) degrees of freedom, then the fit may not have the same stability characteristics as the prototype.

- Greg
Greg Berchin <gjberchin@charter.net> writes:

> I am not aware of any technique that guarantees stability. There may be some constraints that can be applied, but I am not familiar with them. > > In general, FDLS fits a stable transfer function to a stable prototype > frequency response, and an unstable transfer function to an unstable > prototype frequency response, provided that FDLS can actually find a > good fit. Therein lies the problem -- FDLS can usually find a good fit > for a frequency response resulting from a Laplace-domain or Z-domain > rational transfer function, but doesn't always find a good fit for an > *arbitrary* frequency response. (I believe that Vladimir did some > testing in this application.) Furthermore, even with a transfer > function that "should" produce a good fit, if FDLS is given too few > (or way too many) degrees of freedom, then the fit may not have the > same stability characteristics as the prototype.
The system I obtained had an excellent amplitude and group delay match with the analog bandpass Butterworth I provided it. But there were several poles outside the unit circle. I tried reflecting those poles inside the unit circle, which did maintain the amplitude response, but the group delay got hosed. It may have something to do with the fact that a Butterworth is, by design, an analog filter with poles on the unit circle (for the normalized case). -- Randy Yates Digital Signal Labs http://www.digitalsignallabs.com
On Tuesday, September 3, 2013 4:10:53 PM UTC-5, Randy Yates wrote:

> The system I obtained had an excellent amplitude and group delay match > with the analog bandpass Butterworth I provided it. But there were > several poles outside the unit circle.
I have used FDLS to model many Butterworth filters, both stable and unstable, and *never* in my experience has it produced anything but stable filters from stable prototypes and unstable filters from unstable prototypes. Are you absolutely certain that you gave it a stable Butterworth prototype? What was the order of the prototype, of the numerator and denominator in the FDLS model, and how many frequency measurements did you give it?
> I tried reflecting those poles inside the unit circle, which did > maintain the amplitude response, but the group delay got hosed.
Again, I have never seen this happen in my own testing.
> It may have something to do with the fact that a Butterworth is, by > design, an analog filter with poles on the unit circle (for the > normalized case).
Butterworth poles lie in a circle in the Laplace domain, but not necessarily in the Z-domain approximation. When designing a stable analog Butterworth filter, you choose only the stable poles. - Greg
Also, if you're using my MATLAB code, make certain that you have version 2.00 (FDLS_200.m). All versions 1.xx had a programming bug that COULD lead to stability problems.

Email me directly if you need this; gjberchin<at>charter<dot>net.

- Greg