This figure is based on realistic parameters except that I compute and display the results on a very coarse mesh ()to enable you to see clearly the phenomena of numerical analysis. No additional values were used between mesh points or off the edges of what is shown.
Fourier and finite-difference methods of migration seem to be immune to an aliasing malady suffered by hyperbola summation (Kirchhoff) migration. Here we limit our studies to Kirchhoff-type migrations. We will see a simple method to overcome this ``operator-aliasing'' malady. Operator aliasing should not be confused with data aliasing which is a deeper malady for which there is no direct cure.
The practical need to limit operator aliasing is often reduced by three indirect measures. First is temporal low pass filtering which has the unfortunate side effect of reducing the temporal bandwidth. Second is dip limiting (limiting the aperture of the hyperbola) which has the unfortunate side effect of limiting the dip bandwidth. Third is interlacing the data traces. Interpolating the data also interpolates the operator so if enough trace interpolation is done, the operator is no longer subsampled. A disadvantage of data interpolation is that the data becomes more bulky. Here we attack the operator aliasing problem directly.
Look at Figure 3. Note that in some places each value of x corresponds to several values of t, and other places it is the opposite where one value of t corresponds to several values of x. An aliasing problem arises when we approximate a line integral by a simple sum of points, one for each value on the x-axis instead of using the more complicated trajectory that you see in Figure 3.
nmotraj
Figure 3 To integrate along hyperbolas without aliasing, you should include (at least) the points shown. |
A simple program designed for antialiasing gave the result in Figure 4. A zero-offset signal is input to conjugate NMO to make synthetic data which is then NMO'ed and stacked. Notice that the end of each rectangle is the beginning of the rectangle at the next offset.
boxmo1
Figure 4 Rectangle smoothing during NMO and stacking. Notice that the end of one rectangle exactly coincides with the beginning of the rectangle at next larger offset. Thus, rectangle width increases with offset and decreases with time. (antialias=1.) |
Figure 4 is not fully consistent with Figure 3. In Figure 4 notice that the last point in each rectangular area overlaps the next rectangular area by one point. Overlap could be avoided by shortening each rectangle by one point, but then rectangles near the apex of the hyperbola would have zero length which is wholly unacceptable. Should we write a code to match Figure 3? This would be better, but far from perfect. Notice in Figure 3 that a horizontal sum of the number of boxes is not a smooth function of time. To achieve more smoothness, we later turn to triangles, but first we look at some implementation details for rectangles.