next up previous print clean
Next: MY FAVORITE WAVELET Up: Z-plane, causality, and feedback Previous: Notch filter

PRECISION EXHAUSTION

As we reach the end of this chapter on poles and feedback filtering, we might be inclined to conclude that all is well if poles are outside the unit circle and that they may even come close to the circle. Further, if we accept anticausal filtering, poles can be inside the unit circle as well.

Reality is more difficult. Big trouble can arise from just a modest clustering of poles at a moderate distance from the unit circle. This is shown in Figure 16, where the result is completely wrong.

 
path
path
Figure 16
A pathological failure when poles cluster too much. This situation requires more than single-word precision.


view

The spectrum should look like the spectrum in Figure 8 multiplied by itself about six or seven times, once for each pole. The effect of such repetitive multiplication is to make the small spectral values become very small. When I added the last pole to Figure 16, however, the spectrum suddenly became rough. The time response now looks almost divergent. Moving poles slightly creates very different plots. I once had a computer that crashed whenever I included one too many poles.

To understand this, notice that the peak spectral values in Figure 16 come from the minimum values of the denominator. The denominator will not go to a properly small value if the precision of its terms is not adequate to allow them to extinguish one another. Repetitive multiplication has caused the dynamic range (the range between the largest and smallest amplitudes as a function of frequency) of single-precision arithmetic, about 106.

When single-word precision becomes a noticeable problem, the obvious path is to choose double precision. But considering that most geophysical data has a precision of less than one part in a hundred, and only rarely do we see precision of one part in a thousand, we can conclude that the failure of single-word precision arithmetic, about one part in 10-6, is more a sign of conceptual failure than of numerical precision inadequacy.

If an application arises for which you really need an operator that raises a polynomial to a high degree, you may be able to accomplish your goal by applying the operator in stages. Say, for example, you need the all-pass filter (.2-Z)100/(1-.2Z)100. You should be able to apply this filter in a hundred stages of (.2-Z)/(1-.2Z), or maybe in ten stages of (.2-Z)10/(1-.2Z)10.

Other ways around this precision problem are suggested by reflection-coefficient modeling in a layered earth, described in FGDP.


next up previous print clean
Next: MY FAVORITE WAVELET Up: Z-plane, causality, and feedback Previous: Notch filter
Stanford Exploration Project
10/21/1998