A limit cycle oscillation is a periodic low-level oscillatory disturbance (useless signal) that may exist in an otherwise stable filter. It creeps into the system due to the non-linearities that arise from the inherent quantization in the system.
Let’s break it down a bit more. Finite word length (the ability to process only a finite number of digits) is a practical concern in the designing of filters. We generally ‘fit in’ large bits of data using quantization. Quantization is basically reducing the number of bits of a given number. The reduction/quantization produces a non-linearity in a filter system. This gives rise to the myriad finite word length effects. Limit cycle oscillations are one of these unwanted effects.
Interestingly, limit cycle oscillations occur only in recursive systems. That is, it’s just the infinite-impulse response (IIR) filters that face this issue. Non-recursive FIR filters don’t experience limit cycle oscillations.
Technically, in a practical, stable IIR filter excited by a finite sequence, the output will eventually decay to zero. But due to the non-linearities in the system, the issue of the limit cycle will keep some oscillations going in the output.
What are the types of limit cycle oscillations?
- Zero-limit cycle oscillations
- Overflow limit cycle oscillations
Zero limit cycle oscillations
When a system output enters the limit cycle oscillation zone and continues to show the periodic oscillations even after the input is made 0, it is known as the zero limit cycle oscillations.
Overflow limit cycle oscillations
In the fixed-point addition of two binary numbers, an overflow occurs when the sum exceeds the finite word length of the register used to store the sum.
The overflow, in addition, may lead to oscillations in the output, which we call overflow limit cycles.
0.011 + 0.101 = 1.000. The 1 in the answer is an overflow output.
We can solve the problem of overflow limit cycle oscillations by using saturation arithmetic. In saturation arithmetic, when an overflow is sensed, the output is set to the maximum allowable value. Conversely, when an underflow is detected, the output will be set to the minimum permissible value.
However, when we use saturation arithmetic to remove overflow limit cycle oscillations, we cause another undesirable signal distortion due to the non-linearity of the clipper.
To reduce these new, unexpected distortions, it is crucial to scale the input signal and the unit sample response between the input node and internal summation nodes.
During the limit cycle oscillations, the output of the filter oscillates between a finite positive and negative value. This range of values is called the Dead band of the filter. These values can be calculated with the following formula.
Dead band =