next up previous print clean
Next: Damped solution Up: HOW TO DIVIDE NOISY Previous: HOW TO DIVIDE NOISY

Dividing by zero smoothly

Think of any real numbers x, y, and f and any program containing x=y/f. How can we change the program so that it never divides by zero? A popular answer is to change x=y/f to $x=yf/(f^2+\epsilon^2)$ where $\epsilon$ is any tiny value. When $\vert f\vert \gt\gt \vert\epsilon\vert$ then x is approximately y/f as expected. But when the divisor f vanishes, the result is safely zero instead of infinity. The transition between the two is smooth but some criterion is needed to choose the value of $\epsilon$.This is may not be the only way or best way to cope with zero division, but it is a good way and it permeates the subject of signal analysis.

In the Fourier domain, X, Y, and F, are complex numbers. Then what do we do with X=Y/F? Multiply top and bottom by the complex conjugate $\overline{F}$,and again add $\epsilon^2$ to the denominator. Thus  
 \begin{displaymath}
X(\omega) {=}
{ \overline{F(\omega)} \ Y(\omega) \over 
\overline{F(\omega)} F(\omega) \ +\ \epsilon^2}\end{displaymath} (1)
Now the denominator must always be a positive number greater than zero, so division is always safe.


next up previous print clean
Next: Damped solution Up: HOW TO DIVIDE NOISY Previous: HOW TO DIVIDE NOISY
Stanford Exploration Project
1/13/1998