Connexions

You are here: Home » Content » Limit Cycles
Content Actions

Limit Cycles

Module by: Douglas L. Jones

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.

Large-scale limit cycles

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.
Example 1 
Consider the second-order system Hz=11-z-1+12z-2 H z 1 1 z 1 2 z -2
fig1LimitCycles.png
Figure 1
with zero input and initial state values z 0 0=0.8 z 0 0 0.8 , z 1 0=-0.8 z 1 0 -0.8 . Note yn= z 0 n+1 y n z 0 n 1 .
The filter is obviously stable, since the magnitude of the poles is 12=0.707 1 2 0.707 , which is well inside the unit circle. However, with wraparound overflow, note that y0= z 0 1=45-12-45=65=-45 y 0 z 0 1 4 5 1 2 4 5 6 5 4 5 , and that z 0 2=y1=-45-1245=-65=45 z 0 2 y 1 4 5 1 2 4 5 6 5 4 5 , so yn= -45 , 45 , -45 , 45 , y n 4 5 , 4 5 , 4 5 , 4 5 , even with zero input.
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

Small-scale limit cycles are caused by quantization. Consider the system
fig2LimitCycles.png
Figure 2
Note that when α z 0 > z 0 - Δ B 2 α z 0 z 0 Δ B 2 , rounding will quantize the output to the current level (with zero input), so the output will remain at this level forever. Note that the maximum amplitude of this "small-scale limit cycle" is achieved when α z 0 = z 0 - Δ B 2== z max = Δ B 21-α α z 0 z 0 Δ B 2 z max Δ B 2 1 α In a higher-order system, the small-scale limit cycles are oscillatory in nature. Any quantization scheme that never increases the magnitude of any quantized value prevents small-scale limit cycles.
Note: Two's-complement truncation does not do this; it increases the magnitude of negative numbers.
However, this introduces greater error and bias. Since the level of the limit cycles is proportional to Δ B Δ B , they can be reduced by increasing the number of bits. Poles close to the unit circle increase the magnitude and likelihood of small-scale limit cycles.

Comments, questions, feedback, criticisms?

Send feedback