Figure 1 Top is a model trace . Next are the synthetic data traces, . Then, labeled niter=0 is the stack, a result of processing by adjoint modeling. Increasing values of niter show as a function of iteration count in the fitting goal . (Carlos Cunha-Filho)
The seismograms at the bottom of Figure show the first four iterations of conjugate-direction inversion. You see the original rectangle-shaped waveform returning as the iterations proceed. Notice also on the stack that the early and late events have unequal amplitudes, but after enough iterations they are equal, as they began. Mathematically, we can denote the top trace as the model ,the synthetic data signals as ,and the stack as .The conjugate-gradient algorithm optimizes the fitting goal by variation of ,and the figure shows converging to .Because there are 256 unknowns in ,it is gratifying to see good convergence occurring after the first four iterations. The fitting is done by module invstack, which is just like cgmeth except that the matrix-multiplication operator matmult has been replaced by imospray . Studying the program, you can deduce that, except for a scale factor, the output at niter=0 is identical to the stack .All the signals in Figure are intrinsically the same scale.invstackinversion stacking
This simple inversion is inexpensive. Has anything been gained over conventional stack? First, though we used nearest-neighbor interpolation, we managed to preserve the spectrum of the input, apparently all the way to the Nyquist frequency. Second, we preserved the true amplitude scale without ever bothering to think about (1) dividing by the number of contributing traces, (2) the amplitude effect of NMO stretch, or (3) event truncation.
With depth-dependent velocity, wave fields become much more complex at wide offset. NMO soon fails, but wave-equation forward modeling offers interesting opportunities for inversion.