Remove Surface Waves by Interferometry and NLF
Figure 1. The shot gather before (left) and (right) after surface wave removal.
Objective:
Learn to remove surface waves by interferometry and NLF.
Lesson learned: Predict surface waves by interferometry and separate them from reflections by nonlinear local filter.
Procedure:
- Make a directory, and load into it the files
main.m,
agc.m,
match.m,
convmat.m,
mchef.m,
mchf.m,
medianfsur.m,
medianfilter1.m,
medianfilter.m,
mycorr.m,
predct.m,
redo1.m,
slantstack.m,
window.m,
xcorr.m,
lowpasspredct.m,
gather,
- Download the data "gather" in your directory, type "fid=fopen('gather','rb'); tmp=fread(fid,250*48*20,'float'); gather=reshape(tmp,250,48,20);" to load the data.
- Type "s=predct(gather,gather)" in Matlab to predict the surface waves by interferometry.
- Type "[sout]=medianfsur(s'); dd0=s'-sout;" in Matlab to separate the surface waves from the interferometric prediction. Type "ps=match(rrout',dd0',25,5,9,2,0.00001);" to get the result of data after removing surface waves by Interferometry and NLF. To see the result, type"figure; imagesc(agc(ps,100));colormap(gray)"