Fourier Transform input data
Loop over frequency {
Initialize wave at z=0
Factor wave equation for this w/v
Recursively divide input data by factor
Fourier Transform back to time-domain
Sum into output
}
Incorporating this code into the Wavemovie
program Claerbout (1985) provides a laboratory for testing the new
algorithm.
Figure 3 compares the results of the new extrapolation
procedure with the conventional Crank-Nicolson solution to the
45
equation. The new approach has little dispersion since we
are using a rational approximation (the `one-sixth trick') to the
Laplacian on the vertical and horizontal axes. In addition, the new
factorization retains accuracy up to 90
. The high dip,
evanescent energy in the 45
movie, propagates correctly in the
new approach.
|
vs45
Figure 3 Comparison of the 45 | ![]() |
Figure 4 compares different value of the `one-sixth'
parameter,
. For this application, the optimal value seems to
be
.
![]() |
Figure 5 compares different
finite-difference filters.
corresponds to the conventional
5-point filter, while
corresponds to a rotated 5-point
filter. Values in the range
correspond to 9-point
filters that are linear combinations of the above. Best results are
obtained with
. The impulse response with
only contains energy on every second grid point, since the rotated
filter only propagates energy diagonally: as in the game of a chess,
if a bishop starts on a white square, it always stays on white.
![]() |