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:

  1. 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,
  2. 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.
  3. Type "s=predct(gather,gather)" in Matlab to predict the surface waves by interferometry.
  4. 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)"