Inverse NMO stack is a procedure which combines conventional NMO and stacking into one step. By solving a set of simultaneous equations using optimization methods, such as conjugate gradient, inverse NMO stack tries to find the most ``reasonable'' stack trace for a CMP gather. Claerbout 1994 discusses inverse NMO stack in constant velocity to illustrate how back projection can be upgraded towards inversion. In this note, I extend his idea to the case of depth-variable velocity.
When implementing the inverse NMO stack operator, I find some interesting features linking with the concepts of ``push'' and ``pull'' Claerbout (1995), which are adjoint to each other. In this note, I call this adjoint implementation adjoint. There is another kind of adjoint associated with a geophysical operator, which I call geophysical adjoint. For instance, the process of generating a CMP gather from a stack trace and the process of creating a stack trace from a CMP gather are adjoint to each other. Ideally, the geophysical adjoint should be independent from the implementation adjoint. In practice, it is not true. The geophysical adjoint is always coupled with the implementation adjoint. For example, if the geophysical forward operation is ``push'', the adjoint operation must be ``pull'', and vice versa.
In this note, I discuss the relation between the geophysical adjoint and the implementation adjoint. I argue that this relation is inevitable in our computer implementation. In other words, this relation will only disappear when the geophysical adjoint operation can be implemented in continuous space, instead of a discrete space.
Finally, I investigate the possibility of using this method in suppressing nonhyperbolic moveout and random noise. The result is encouraging.