[sdiy] Do digital filters still explode?
Richie Burnett
rburnett at richieburnett.co.uk
Sun Feb 6 22:53:17 CET 2011
Yes, if they're not programmed well !
Some filter realisations like the direct-form IIR biquad take particularly
badly to rapid modulation of the cutoff frequency. There are a number of
things that can happen when you start changing the filter coefficients on
the fly:
As Eric said a digital filter can go unstable if the trajectory taken by the
poles takes them outside the unit circle in the z-domain, even for just a
short time. So you need to give some thought to the order in which you
update denominator coefficients if they are not to even temporarily
factorise to give poles outside the unit-circle! This is more an issue of
poor implementation of the coefficient modification though than the choice
of filter itself.
However, there is a more fundamental problem with the direct-form IIR
realisation when it comes to modulating its coefficients. Each output
sample is effectively defined by previous output samples and input samples.
So in the case of a highly resonant filter which now has a silent input, the
only thing that keeps the output ringing is the information contained in the
last two output samples. The filter's states are essentially the last two
output samples. (i.e. What the previous output is, and what the difference
between the previous output and the one before is.) _BUT_ if you suddenly
change the IIR filter coefficients to modify the cutoff frequency or Q,
these two state variables may now not be at all appropriate for the new
filter design!
Imagine switching suddenly from a high-Q response with high cutoff frequency
where consecutive output samples are radically different, to a new high-Q
response with a very low resonant frequency where the output varies very
little between consecutive samples. Suddenly switching filter coefficients
without modifying the history stored in the previous states is likely to
make the output of a direct-form IIR go ape. The low Fc filter kernel
ultimately expects the last two output states to be quite close together,
but if they are far apart because they apply to a filter with much higher
resonant frequency, the output of the filter is likely to blow up. If the
arithmetic isn't programmed properly this can then cause the accumulator to
overflow. Now, consecutive output samples are even less appropriate if some
are overflowed, triggering violent bursts of noise, limit cycles etc.
Alternative digital filter realisations that store the filter states
differently like the coupled-form designs, and Chamberlain (state-variable)
filter tolerate coefficient modulation much better. This is because the
current filter conditions are stored as two orthogonal states at the same
point in time which are far more applicable after the filter coefficients
have been modified.
-Richie,
More information about the Synth-diy
mailing list