From: Steve Pope on
Jerry Avins <jya(a)ieee.org> wrote:

>I think I remember a proof here that there are pathological waveforms --
>not the result of sampling -- that will cause any IIR structure to
>overflow.

Not true. A IIR lattice filter for a stable transfer function
using saturating arithmetic will never overflow, or otherwise exhibit
instabilities, regardless of input or initial state.

(In Matlab parlance, said lattice filter is called an "ARMA-MA"
filter.)

They are historically unpopular because they have twice as
many multiplies as a transversal filter; but given how
cheap arithmetic is these days, I think they are due for
a resurgence in popularity.

Steve
From: Vladimir Vassilevsky on


robert bristow-johnson wrote:


> it's not a proof, but a sorta rule of thumb that i thought made sense
> is to start with the pole pair (i'm gonna assume everything is complex
> conjugate) that are the least stable; the poles closest to the unit
> circle. group those poles with the pair of zeros that are closest to
> the poles. that's your first section. strike that pole pair and zero
> pair off the list and do it all over again for the next section and so
> on.

Yes, there are rules of thumb like alternate LPF and HPF sections, in
the order from high Q to low Q, put together poles and zeroes with the
closest frequencies. Those rules guarantee the result not too bad,
however it may not be the very best either.

ladimir Vassilevsky
DSP and Mixed Signal Design Consultant
http://www.abvolt.com
From: Vladimir Vassilevsky on


Tim Wescott wrote:

> On Tue, 22 Dec 2009 20:32:58 -0800, robert bristow-johnson wrote:
>
>>it's not a proof, but a sorta rule of thumb that i thought made sense is
>>to start with the pole pair (i'm gonna assume everything is complex
>>conjugate) that are the least stable;

> OTOH, leading with a more highly-damped pole pair would hinder energy
> from getting through to overflow later stages.

The higher Q stage is noisier then the lower Q stage. If you have low Q
stage after high Q stage, the noise of the first stage gets filtered by
the second stage. It is a tradeoff of noise vs overflow.

Vladimir Vassilevsky
DSP and Mixed Signal Design Consultant
http://www.abvolt.com




From: Tim Wescott on
On Tue, 22 Dec 2009 13:59:28 -0600, Vladimir Vassilevsky wrote:

> Let's say we need to implement H(z) = P(z)/Q(z) in the fixed point. The
> typical implementation would be a cascade of biquads. So we factor P(z)
> and Q(z) and distribute poles and zeroes between the stages.
>
> The dynamic range of a filter is limited by overflow at the top, and by
> quantization artifacts at the bottom. We can try all variants of
> assignment of poles and zeroes to different stages to maximize the
> dynamic range from rms quantization noise to full scale sine wave at the
> "worst" frequency. So far so good.
>
> However, this doesn't tell if some stage of filter can overflow if the
> input is an arbitrary non-harmonic waveform. How could we optimize the
> filter for this case?
>
> Vladimir Vassilevsky
> DSP and Mixed Signal Design Consultant http://www.abvolt.com

I _think_ that if the transfer function from input to each state in the
filter is less than unity (or whatever the critical gain is necessary to
prevent overflow) for all possible frequencies, you can't overflow.

But I don't _know_ -- I'd have to try to prove it, and may end up
disproving it instead!

--
www.wescottdesign.com
From: Vladimir Vassilevsky on


Tim Wescott wrote:
> On Tue, 22 Dec 2009 13:59:28 -0600, Vladimir Vassilevsky wrote:
>
>
>>Let's say we need to implement H(z) = P(z)/Q(z) in the fixed point. The
>>typical implementation would be a cascade of biquads. So we factor P(z)
>>and Q(z) and distribute poles and zeroes between the stages.
>>
>>The dynamic range of a filter is limited by overflow at the top, and by
>>quantization artifacts at the bottom. We can try all variants of
>>assignment of poles and zeroes to different stages to maximize the
>>dynamic range from rms quantization noise to full scale sine wave at the
>>"worst" frequency. So far so good.
>>
>>However, this doesn't tell if some stage of filter can overflow if the
>>input is an arbitrary non-harmonic waveform. How could we optimize the
>>filter for this case?
>>
> I _think_ that if the transfer function from input to each state in the
> filter is less than unity (or whatever the critical gain is necessary to
> prevent overflow) for all possible frequencies, you can't overflow.
> But I don't _know_ -- I'd have to try to prove it, and may end up
> disproving it instead!

Unfortunately, not. Think of a highpass filter with the gain of 1 and
the data range is +/-1. Let the input -1,-1,-1....-1, +1, so here is
overflow.

Vladimir Vassilevsky
DSP and Mixed Signal Design Consultant
http://www.abvolt.com