From: Steve Pope on 22 Dec 2009 23:43 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 22 Dec 2009 23:46 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 22 Dec 2009 23:50 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 22 Dec 2009 18:22 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 22 Dec 2009 18:35 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
First
|
Prev
|
Next
|
Last
Pages: 1 2 3 4 5 Prev: forward error correction capabilities? Next: shift direction using correlation |