<< Chapter < Page | Chapter >> Page > |
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 $$H(z)=\frac{1}{1-z^{(-1)}+\frac{1}{2}z^{-2}}$$
with zero input and initial state values ${z}_{0}(0)=0.8$ , ${z}_{1}(0)=-0.8$ . Note $y(n)={z}_{0}(n+1)$ .The filter is obviously stable, since the magnitude of the poles is $\frac{1}{\sqrt{2}}=0.707$ , which is well inside the unit circle. However, with wraparound overflow, note that $y(0)={z}_{0}(1)=\frac{4}{5}-\frac{1}{2}-\left(\frac{4}{5}\right)=\frac{6}{5}=-\left(\frac{4}{5}\right)$ , and that ${z}_{0}(2)=y(1)=-\left(\frac{4}{5}\right)-\frac{1}{2}\frac{4}{5}=-\left(\frac{6}{5}\right)=\frac{4}{5}$ , so $y(n)=-\left(\frac{4}{5}\right),\frac{4}{5},-\left(\frac{4}{5}\right),\frac{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 statevalues are never initialized to limit-cycle-producing values. The normal-form structure also reduces the chance ofoverflow.
Small-scale limit cycles are caused by quantization. Consider the system
Note that when ${z}_{0}> {z}_{0}-\frac{{}_{B}}{2}$ , rounding will quantize the output to the current level (with zero input), so the output will remain at thislevel forever. Note that the maximum amplitude of this "small-scale limit cycle" is achieved when $${z}_{0}={z}_{0}-\frac{{}_{B}}{2}=={z}_{\mathrm{max}}=\frac{{}_{B}}{2(1-)}$$ In a higher-order system, the small-scale limit cycles are oscillatory in nature. Anyquantization scheme that never increases the magnitude of any quantized value prevents small-scale limit cycles.Notification Switch
Would you like to follow the 'Digital filter structures and quantization error analysis' conversation and receive update notifications?