GEOL 706
LAB 6 - 2-D Fourier Transforms and Stolt Migration

Reading: To do this lab you should be familiar with Chapter 1 in the IEI text (Claerbout, 1985). You may also want to look at Stolt, 1978 (see reference list), and
Claerbout, J. F., and Doherty, S. M., 1972, Downward continuation of moveout-corrected seismograms: Geophysics, 50, 2033-2060; or 37, 741-768.

The exercises in light gray color are extra credit and are not required. Exercises marked with a ''*'' are key exercises.

Page numbers are given in the order [page in printed book, number appearing on the page in the PDF, consecutive page number in the PDF].

1. Claerbout, p. [14, 13, 26], exercise 2. Compute propagation angles for the hyperbola flanks in figure 1.9 (p. [12, 11, 24], top). Compute two examples, one from the downgoing plate and one from the structures at the bottom of the trench.

*2. Claerbout, p. [14, 13, 26], exercise 3. Using the result of the previous exercise, deduce the plunge angle of the plate. Just measure a few hyperbolae on the plate.

3. Claerbout, p. [24, 45, 58], exercise 2. Scan the textbook for hyperbolic arrivals on field data and measure the Fresnel zone width. Where zero offset recordings are not made, a valid approximation is to measure delta x2 along a tilted line. Give two examples.

*4. Claerbout, p. [24, 37, 50], exercise 6. Explain the horizontal ``layering'' in figure [1.2-5, 2.1], p. [22, 34, 47] in the plot of P(omega,x) on the lower left. Here is a better version, scanned from the printed book. What determines the ``layer'' separation? What determines the ``layer'' slope?

5. Claerbout, p. [25, 45, 58], exercise 3. Evolution of a wavefield with time is described by

p(x,z,t) = int int [P(kx,kz,t=0)e^(-i omega(kx,kz)t)]e^(ikx x + ikz z)dkx dkz
Let P(kx,kz,0) be constant, signifying a point source at the origin in (x,z)-space. Let t be very large, meaning that phase = phi = [-omega(kx,kz) + kx(x/t) + kz(z/t)]t in the integration is rapidly alternating with changes in kx and kz. Assume that the only significant contribution to the integral comes when the phase is stationary, that is, where dphi/dkx and dphi/dkz both vanish. Where is the energy? Sketch the shape of the energy in (x,z,t)-space.

6. Claerbout, p. [39, 63, 13], exercise 2. The wave modeling program sketch (p. [32 bottom, 53, 3]) assumes that the exploding reflectors are impulse functions of time. Modify the program sketch for wave modeling to include a source waveform s(t). Turn in a program sketch with your revisions and additions.

*7. Claerbout, p. [39, 63, 13], exercise 4. Define the program sketch for the inverse to the Stolt algorithm - that is, create synthetic data from a given model. Put your sketch in the form of the ''single line sketch'' 3 lines above eq. [6, 3.22] on p. [33, 54, 4] and turn in.

*8. Claerbout, p. [39, 63, 13], exercise 6. Given seismic data that is cut off at four seconds, what is the deepest travel time depth from which 80 degree dips can be observed?

9. Claerbout, p. [53, 17, 30], exercise 1. Soil is typically saturated with water below a certain depth, which is known as the water table. Experience with hammer-seismograph systems shows that seismic velocity typically jumps up to water velocity (VH2O = 1500 m/s) at the water table. Say that in a certain location, the ground roll is observed to be greater than the reflected waves, so a decision has been made to bury geophones. The troublesome ground roll is observed to travel at six-tenths the speed of a water wave. How deep must the geophones be buried below the water table to attenuate the ground roll by a factor of ten? Assume the data contain all frequencies from 10 to 100 Hz. (Hints: ln10 ~ 2, 2 pi ~ 6, etc.) What kind of exponential solution is this evanescent wave?

*10. Claerbout, p. [62, 70, 20], exercise 1. Devise a mathematical expression for a plane wave that is an impulse function of time with a propagation angle of 15 degrees from the vertical z-axis in the plus z direction. Express the result in the domain of

(a) (t,x,z)
(b) (omega,x,z)
(c) (omega,kx,z)
(d) (omega,p,z)

11. Claerbout, p. [74, 36, 49], exercise 2. Most functions are real. Their imaginary part is zero. Show that this means that F(omega,k) can be determined from F(- omega,-k). What happens to the odd and even parts of a complex time function when it is transformed? You may only have F(- omega,-k), but you do have both the real and imaginary parts.

12. Claerbout, p. [74, not in PDF], exercise 2. Verify by compiling and running the application ``fttest.java'' that it produces the plot at right, and in the text (p. [69-70, not in PDF]). Use the File->Write PostScript function to get a .ps file you can convert to a PDF, or figure out how to capture the screen image and print it on your machine. Re-label your plot with the true frequency axes and their values - account for the arrangement of the output of the FFT.
Note: You have to use Control-C or Command-Q to actually quit the fttest application.

*13. Claerbout, p. [74, not in PDF], exercise 3. The real part of the FT plotted in the previous exercise is somewhat difficult to interpret because of the awkward placement of the negative frequencies and wavenumbers. Modify the program so that F(omega,k) has its origin at the center (33,33) of the plotted grid. The correctly positioned plot will look like the right side of fig. 2.2 on p. [not in printed book, 36, 49]. Hint: a simple modification of f(t,x) before Fourier transforming is sufficient; recall the ``shift theorem.'' Plot f(t,x) (like the left side of fig. 2.2 on p. [not in printed book, 36, 49]), as well as the new, more easily interpretable F(omega,k). Label axes. Turn in your altered program lines, along with your plots labeled with axes. What is FT[f(x-a)] in terms of FT[f(x)]? Can you plot f(t,x) by moving some lines around in ``fttest.java''?

14. Claerbout, p. [74, 37, 50], exercise 4. A point explosion on the earth's surface at time t=0 and location x=32 provides synthetic observations in the (t,x)-plane shown on the top left side of p. [75, 37, 50]. One the right side is the magnitude of the two-dimensional Fourier transform, (omega,kx)-plane. The origin is in the upper left corner of the plot on the left, and in the center of the plot on the right. What would these plots look like on an earth of half the velocity? Ignore how the book describes it as an ''air wave.'' Just describe what such plots would look like.

15. Examine ``stolttest.java''. Compile it, and run the application and turn in the plot. Does it look like the figure at right and on p. [35, 55, 5]? Alter ``stolttest.java'' to use twice the migration velocity and turn in the resultant plot. Explain the vertical axis and the shape of the curves.

This program uses Fabio Rocca's column-wise FFT method, and a more efficient in-place row FFT as well. These modifications to ``fttest.java'' are coded in ``fttestc.java''. It could be used equivalently for all the exercises.

16. Alter ``stolttest.java'' to yield a plot like the left-hand one on p. [35, 55, 5], and turn in the plot and the program alterations.

*17. Claerbout, p. [75, 56, 6], exercise 5 [suggested at the bottom of the page in the PDF]. Insert the appropriate cosine obliquity function into the Stolt migration program. Test, and verify little difference but some angle-dependent scaling. Turn in your program alterations and plot.
Note: The comment ``Omit weighting'' in stolttest.java has nothing to do with the obliquity.

*18. Claerbout, p. [75, not in PDF], exercise 6. Write a program for diffraction by the Stolt method. That is, given point scatterers inside the earth, generate the appropriate hyperbolas. Turn in your alterations to ``stolttest.java'' and the plot of diffractions from the same points that were previously migrated. Note that the names of variables can change in the algorithm without your having to change their names in the program. Without reversing the coding, you can make a few simple changes that effect inversion. Do not include the obliquity factor.

19. Suppose the 2-d FT done in ``fttest.java'' took N operations. How many would it take if instead of cp[64][64] we had cp[128][128]?


Possible Projects