Figure 1. Velocity model obtained from SEG/EAGE salt model.

**Goal:** The goal is to learn how to compute
prestack migration images under the Born approximation for prestack
data.

**Expected Outcome:** Valuable prestack migration tool for generating
synthetic shot gathers.

**Skills Learned:** Connecting theory and mathematics of
Lippmmann-Schwinger Born approximation to generating
migration images by MATLAB code.

**Procedure:**

- Download the prestack migration+modeling program
migrate1.m and Ricker wavelet generator
ricker.m.
Also download the traveltime modeling program
Mray.m and an example traveltime modeling program
raymodel3.m,
plotting routine plot1.m,
and the prestack migration subroutine migvsp.m.
Also download the model
velvector vector in ascii format.
The velocity model "velvector" is a vector of the velocity model in units of m/s. To display it type

load velvector; %or load velvector.mat vel=reshape(velvector,501,201);imagesc(vel');

- Examine the migration subroutine migvsp.m and convince yourself it performs prestack migration.
- Type migrate1 in MATLAB and generate final image. Which parts of image are well resolved and which parts are poorly resolved? Why?
- Current image is for every fifth shot gather. Test image results using coarser shot sampling. Comment on why image changes. Repeat test for finer sampling.
- Why are the imaged reflectors deeper than they are in the actual model? Hint, look at Ricker wavelet and how it is shifted from time zero.
- Implement dip limitation on code. Does it eliminate artifacts. Apply AGC to final migration image. Does it help bring up amplitudes. Would AGC applied to data be roughly equivalent?
- Apply obliquity factor to code. Comment on accuracy of resulting image compared to previous images.