Testing forward and adjoint operators for Prestack Time Migration (PSTM)
The subsurface image is given by
The code main.jl shows how to use the two operators
- Demigration
where is time convolution and is the de-migration operator:
d = Operator_Conv(Operator_PSTM(m,false; Param_PSTM...), false; Param_Conv...)
- Migration
where is the migration operator and is the adjoint of time domain convolution equivalent to time domain cross-correlation:
mig = Operator_PSTM(Operator_Conv(d,true; Param_Conv...), true; Param_PSTM...)
- In Least-squares Migration (LSM) we estimate the reflectivity by solving the following problem
operators
m_ls,J = ConjugateGradients(d,[Operator_Conv, Operator_PSTM],[Param_Conv, Param_PSTM]; Niter=20,mu=0.01)
main.jl runs an example where I use the "invere problem crime" to model data and then retrieve the model via CGLS
dot_product_test.jl checks that
The results are shown below. First, we show the data which is computed via the demigration operator
Now, I show the migrated image which is computed via
And finally, the least-squares migration after
I also show the cost