What value of
Summary: Digital filters must be properly scaled to prevent overflow in fixed-point implementations. Scaling by the sum of the absolute value of the impulse response of a filter prevents overflow. However, this is sometimes too conservative in practice, so less stringent rules are often used.
Overflow is clearly a serious problem, since the errors it introduces are very large. As we shall see, it is also responsible for large-scale limit cycles, which cannot be tolerated. One way to prevent overflow, or to render it acceptably unlikely, is to scale the input to a filter such that overflow cannot (or is sufficiently unlikely to) occur.
![]() |
In a fixed-point system, the range of the input signal is
limited by the fractional fixed-point number representation to
Another option is to incorporate the scaling directly into the filter coefficients.
![]() |
What value of
To prevent the output from overflowing in an IIR filter,
the condition above still holds:
(
However, it is also necessary to prevent the
states from overflowing, and to prevent overflow at
any point in the signal flow graph where the arithmetic hardware would
thereby produce errors. To prevent the states from overflowing, we
determine the transfer function from the input to all states
Although this method of scaling guarantees no overflows, it
is often too conservative. Note that a worst-case signal is
Even this condition may be excessively conservative, for example if the input is more-or-less random, or if occasional overflow can be tolerated. In practice, experimentation and simulation are often the best ways to optimize the scaling factors in a given application.
For filters implemented in the cascade form, rather than scaling for the entire filter at the beginning, (which introduces lots of quantization of the input) the filter is usually scaled so that each stage is just prevented from overflowing. This is best in terms of reducing the quantization noise. The scaling factors are incorporated either into the previous or the next stage, whichever is most convenient.
Some heurisitc rules for grouping poles and zeros in a cascade implementation are:
Leland B. Jackson has an excellent intuitive discussion of finite-precision problems in digital filters. The book by Roberts and Mullis is one of the most thorough in terms of detail.