Summary: Overflow can cause large-scale limit cycles in IIR filters. Saturation arithmetic prevents zero-input limit cycles. Small-scale limit cycles can arise from quantization in recursive filters.
Note: Your browser may not currently support MathML. See our browser support page for additional details. You can always view the correct math in the PDF version.
When overflow occurs, even otherwise stable filters may get stuck in a large-scale limit cycle, which is a short-period, almost full-scale persistent filter output caused by overflow.
Consider the second-order system
![]() |
The filter is obviously stable, since the magnitude of the poles is
Clearly, such behavior is intolerable and must be prevented. Saturation arithmetic has been proved to prevent zero-input limit cycles, which is one reason why all DSP microprocessors support this feature. In many applications, this is considered sufficient protection. Scaling to prevent overflow is another solution, if as well the inital state values are never initialized to limit-cycle-producing values. The normal-form structure also reduces the chance of overflow.
Small-scale limit cycles are caused by quantization. Consider the system
![]() |