The prestack forward modeling can be formulated by propagating the wavefield upward with a filter between extrapolation steps to stop the wavefield propagation after recording for the geophone continuation and after reaching the depth level of each shot for shot continuation. In addition to the filter to stop the wavefield, we need one more operator to save some wavefields that have reached either a shot or a geophone but not the other, for further extrapolation in the corresponding space. Then at all depth levels all wavefields that have reached both a geophone and a shot are summed to produce the prestack wavefield along the irregular surface. In order to explain the algorithm clearly and schematically, I use a simple geometry that has only two geophones and two shots on an irregular surface, as illustrated in Figure 12.
synpretopo
Figure 12 Synthetic surface recording geometry for prestack data. S and G represent the shot and geophone axes, respectively. Z represents depth. | ![]() |
Figure 13 is a schematic diagram of the forward modeling algorithm, in which Ws,i and Wg,i represent upward extrapolation at the i-th depth level for the common-geophone gathers (CGG) and common-shot gathers (CSG), respectively. Kg/s,i, Hg/s,i, and Fg/s,i are spatial filters for stopping, passing, and grabbing the wavefield at the i-th depth level according to the geophone and shot locations, respectively. Each small rectangle in Figure 13 represents an abstract vector that contains wavefields at the corresponding spatial location.
![]() |
The forward scheme shown in Figure 13 can be algebraically generalized, if we divide the topography into z levels, as follows:
![]() |
(7) |
![]() |
(8) |
![]() |
(9) |
![]() |
(10) |
where
![]() |
||
In equation (7), d0 and dz are wavefields on the irregular surface and the datum level, respectively. The shot extrapolation operator Es and the geophone extrapolation operator Eg are followed by the shot spatial filter Gs and the geophone spatial filter Gg, respectively, at every depth level. For example, the function of the operator Gs is to sort wavefields into three groups: