(95) |

(96) |

vlcfds
Finite-difference scheme for the
velocity continuation equation. A stable propagation is either forward
in velocity and backward in time (left plot) or backward in velocity
and forward in time (right plot).
Figure 12 |

The following simple ratfor program implements the finite-difference
velocity continuation. It is slightly modified from Jon Claerbout's
original version and has a more straightforward loop structure than
Zhiming Li's `Caso15` program.

subroutine velconx(adj,add,inv, v1,v2,t0, nt,nx,nv, dt,dx, p1,p2) integer adj,add,inv, nt,nx,nv, it,ix,iv, it1,it2,its, iv1,iv2,ivs real v1,v2,t0, dt,dx,dv, v,t, a,a0,b, b1,b2,offd,diag real p1(nt,nx),p2(nt,nx) temporary real l(nx),r(nx),ld(nx),rd(nx),rhs(nx),pt(nx,nt)if (v1 <= v2) call erexit('unstable velocity continuation') call adjnull(adj, add,p1,nt*nx,p2,nt*nx) dv = (v1-v2)/nv; a0=(4.*dx*dx)/(dt*dv); b=0.14867678

if (adj==0) {do ix=1,nx { do it=1,nt{ pt(ix,it)=p1(it,ix)}} iv1=nv; iv2= 1; ivs=-1; it1= 2; it2=nt; its= 1} else {do ix=1,nx { do it=1,nt{ pt(ix,it)=p2(it,ix)}} iv1=1; iv2=nv; ivs= 1; it1=nt; it2= 2; its=-1}

do iv=iv1,iv2,ivs {v=sqrt(v2+(iv-0.5)*dv); call null(rhs,nx) do it=it1,it2,its {t=t0+dt*(it-1) if (inv==0) {t=sqrt(t)*v; a=a0/t} # Pseudounitary else if (inv==1) {t=t*v; a=a0/v} # Claerbout's else if (inv==2) {a=a0/(t*v); t=v} # True-amplitude b1=b*a+t; b2=b*a-t; offd=a-b2; diag=a-2*b2 call copy(nx,pt(1,it),l); call diffxx(nx,l,ld) do ix=1,nx {rhs(ix) = rhs(ix) + a*l(ix) + b1*ld(ix)} call rtris(nx,offd,b2,diag,b2,offd,rhs,r); call diffxx(nx,r,rd) do ix=1,nx {rhs(ix) = a*r(ix) + b1*rd(ix) - a*l(ix) - b2*ld(ix)} call copy(nx,r,pt(1,it)) }}

if (adj==0) {do ix=1,nx { do it=1,nt{ p2(it,ix)=p2(it,ix)+pt(ix,it)}}} else {do ix=1,nx { do it=1,nt{ p1(it,ix)=p1(it,ix)+pt(ix,it)}}} return; end

subroutine diffxx(nx,f,fxx) integer ix,nx real f(nx),fxx(nx) do ix=2,nx-1 fxx(ix) = f(ix-1) -2*f(ix) +f(ix+1) ix=1; fxx(ix) = f(1) -2*f(ix) +f(ix+1) ix=nx; fxx(ix) = f(ix-1) -2*f(ix) +f(nx) return; end

The parameter `adj` controls the direction of propagation. It is
equal to zero for backward propagation, which corresponds to the
modeling (demigration) operator. The parameter `inv` controls the
amplitude behavior by introducing time-dependent divisors to equation
(95). For `inv=1`, the program implements
Claerbout's velocity continuation equation. For `inv=2`, it
implements the modified equation (55). The value of `
inv=0` corresponds to the intermediate case. It leads to the
*pseudounitary* velocity continuation, for which the reverse
continuation is the exact adjoint operator
Fomel (1996). We can easily test different types of
amplitude behavior with the dot-product test and its modifications.
The parameter `b` is required for the ``1/6 trick'' introduced by
Claerbout 1985 to increase the accuracy
of the second-derivative operator in (95). The
second-order difference in subroutine `diffxx` implies simple
zero-slope boundary conditions on the midpoint coordinate. The call to
`rtris` solves the triadiagonal system.

In order to test the performance of the finite-difference velocity
continuation method, I use a simple synthetic model from **Basic
Earth Imaging** Claerbout (1995). The ``reflectivity'' model is
shown in Figure 13. It contains several features challenging
the migration performance: dipping beds, unconformity, syncline,
anticline, and fault.

vlcmod
Synthetic model for testing
finite-difference migration by velocity continuation.
Figure 13 |

The following series of figures compares invertability of different
migration methods. In all cases, constant-velocity modeling
(demigration) by the adjoint operator was followed by migration with
the correct velocity *v*=1500 m/sec. Figures 14,
15, 16, 17 show the results of modeling
and migration with fast (nearest-neighbor) Kirchhoff, antialiased
Kirchhoff Fomel and Biondi (1995), phase-shift (Gazdag), and Stolt methods
respectively. These figures should be compared with Figure
18, showing the analogous result of the finite-difference
velocity continuation. The comparison reveals a remarkable
invertability of velocity continuation, which reconstructs accurately
the main features and frequency content of the model. Since the
forward operators were different for different migrations, this
comparison did not test the migration properties themselves. For such
a test, I compare the results of the phase-shift and
velocity-continuation migrations after Stolt modeling. The result of
velocity continuation, shown in Figure 19 is at least as
accurate as that of the phase-shift method.

Figure 14

Figure 15

Figure 16

Figure 17

Figure 18

Figure 19

We can conclude that finite-difference velocity continuation is an attractive migration method. It possesses remarkable invertability properties, which might be useful in some applications. According to Li 1986, the computational speed of this method compares favorably with that of Stolt migration. The advantage is apparent for cascaded migration or migration with multiple velocity models. In these cases, the cost of Stolt migration increases in direct proportion with the number of velocity models, while the cost of velocity continuation stays the same.

11/12/1997