filtering seismik

46

Click here to load reader

Upload: budi-soekarno-putro

Post on 03-Aug-2015

301 views

Category:

Documents


69 download

TRANSCRIPT

Page 1: Filtering Seismik

BAB V

FILTERING DAN DEKONVOLUSI

 

 

V.1. Pendahuluan

Noise tidak dapat dipisahkan dari pengambilan data geofisika lapangan termasuk metode seismik. Dalam seismik noise dibagi menjadi dua yaitu coherrent noise dan ambient noise. Seluruh noise tidak akan pernah dapat dieliminasi dalam pengolahan data seismik. Tetapi, merujuk pada objektifitas dari data prosesing adalah menambah rasio Signal to Noise (S/N) sebaik-baiknya. Contoh-contoh yang akan dilampirkan berikut ini akan menolong mengenai pemahaman tersebut.

 

 

Coherrent Noise Ambient NoiseGround Roll Peralatan Perekaman

Gelombang langsung Sambungan Geophone yang burukReverberasi SpikeNoise dari kapal Cuaca/AnginNoise dari Rig Noise dari wellDifraksi dari Rig Kendaraan bermotorJalur tiang listrik Binatang-binatang

 

Karakteristik coherrent noise biasanya berbasis trace per trace membentuk suatu keteraturan. Difraksi akibat dari rig, contohnya, dapat dilihat pada tiap trace dan memungkinkan untuk memprediksi bagaimana noise tersebut hadir dalam trace berikutnya. Ambient noise, dengan kata lain, bersifat acak dan tidak terprediksi. Maka di sini terdapat perbedaan cara pengolahan untuk dua kelas noise tersebut. Perangkat ini akan didiskusikan dalam dua subbab berikut ini. Salah satu perangkat untuk mengurangi ambient noise dalam data seismik adalah dengan stacking. Stacking merupakan salah satu perangkat yang paling efektif untuk menghilangkan random noise.

 

Page 2: Filtering Seismik

V.2. Filter Frekuensi

Tujuan dari filter frekuensi adalah untuk menghilangkan komponen frekuensi yang menggangu pada data seismik dan meloloskan data yang diinginkan. Gelombang permukaan (ground roll), contohnya, biasanya diamati sebagai suatu event frekuensi rendah dengan amplitudo yang besar dan dapat dipisahkan dengan filter frekuensi.

Filter frekuensi dilakukan dalam kawasan frekuensi. Transformasi Fourier dibutuhkan sebelum filtering dan Transformasi Fourier Balik diaplikasikan sesudahnya. Kedua transformasi tersebut biasanya merupakan rutin filter. Dengan menentukan frekuensi cutt-off dan slope dari taper antara full-reject dan full-pass, maka sinyal dapat dipisahkan menurut frekuensi yang diinginkan. Taper seharusnya didisain untuk menghindari efek batas (boundary effect). Kemiringan taper pada frekuensi rendah seharusnya lebih tajam dibanding kemiringan pada frekuensi tinggi.

 

V.1.1. Desain Filter Frekuensi

Spesifikasi frekuensi-frekuensi cutt-off dan taper-taper dalam Seismic Unix dikerjakan dengan membuat 4 frekuensi yang berurutan dari frekuensi kecil ke besar dan menentukan persentase amplitudo yang akan diloloskan oleh frekuensi ini. Contohnya adalah sebagai berikut

a. Filter Band-pass. Amplitudo yang berasosiasi dengan frekuensi-frekuensi a, b, c dan d adalah 0, 1, 1, 0. filter balik dapat didisain dengan memilih amplitudo seperti 1, 0, 0, 1, ini berarti frekuensi yang dibuang/ditolak oleh filter Band-pass.

 

 

 

 

 

Gambar V.1. Filter Band-pass

 

b. Filter Low-pass/High-cut. Urutan amplitudo untuk frekuensi a, b, c dan d adalah 1, 1, 0, 0 dengan nilai frekuensi a dan d sembarang. Taper berada antara frekuensi b dan c.

 

Page 3: Filtering Seismik

Gambar V.2. Filter Low-pass

 

c. Filter High-pass/Low-cut. Urutan amplitudo untuk frekuensi a,b,c dan d adalah 0,0,1,1 dengan nilai frekuensi a dan d sembarang.

 

 

 

 

 

 

Gambar V.3. Filter High-pass

 

Filter frekuensi yang sering digunakan dalam pengolahan data seismik adalah filter Band-pass. Energi seismik secara umum terekam dalam suatu range frekuensi yang pasti. Batas rendah dari range ini ditandai dengan ground roll. Sedangkan batas atas dari range ini hanya noise yang dapat teramati, bergantung pada bermacam-macam faktor seperti: tipe source yang digunakan, penetrasi kedalaman dari gelombang dan properti batuan.

Ilustrasi-ilustrasi berikut merupakan penggambaran filtering terhadap data seismik. Gambar V.4 merupakan contoh shot gather sebelum dikenakan proses filtering. Sedangkan nilai Gambar V.5 menampilkan shot gather setelah poses filtering. Dengan parameter band filter sebesar 10,12,70 dan 100 Hz.

 

Page 4: Filtering Seismik

(a) (b)

Gambar V.4. Shot gather [YILMAZ 25] sebelum dilakukan proses filtering.

 

` (a). (b). (c).

Gambar V.5. (a )Shot gather setelah dilakukan proses filter bandpass 10,12,70 dan 100 Hz. (b). Spektrum frekuensi setelah di filter, (c). sinyal yang tidak terpakai.

 

Page 5: Filtering Seismik

 V.1.2. Shell Skrip Filter Frekuensi

 

#! /bin/sh

 

echo "Tes Bandpass Filter"

 

indata=oz25.su

rm -f tmp*

tpow=2.0

 

#------------------------------------------------

# menunjukkan shot gather asli dan spektrumnya...

#------------------------------------------------

 

suswapbytes<$indata |

sugain tpow=$tpow >tmp0

suxwigb <tmp0 perc=90 xbox=10 ybox=10 wbox=400 hbox=600 \

label1="Traveltime [s]" label2="Offset [m]"\

title="Shot Gather asli" verbose=0 key=offset &

 

suwind <tmp0 key=offset min=-50 max=50 |

sustack key=dt |

sugabor fmax=125 band=6 |

Page 6: Filtering Seismik

suximage xbox=420 ybox=10 wbox=400 hbox=600 bclip=2e05 wclip=0 \

label1="Traveltime [s]" label2="Frekuensi [Hz]" \

title="Spektrum Frekuensi (Near Offset)" \

grid1=dot grid2=dot cmap=hsv2 legend=1 \

verbose=0 &

 

#------------------------------------------------

# Tes Bandpass Filter ...

#------------------------------------------------

 

ok=false

while [ $ok = false ]

do

rm -f tmp1

if [ $Pilihan ]

then

echo "Tes Bandpass Filter"

echo "Tekan A : Menambahkan suatu filter"

echo "Tekan S : memulai dari awal"

>/dev/tty

read pilih1

case $pilih1 in

[sS]) cp tmp0 tmp1

Page 7: Filtering Seismik

echo "-> Menggunakan data Asli";;

[aA]) cp tmp2 tmp1

echo "-> menggunakan data terfilter";;

esac

else

cp tmp0 tmp1

fi

echo "masukkan pita filter [Hz]:"

echo "Input: a,b,c,d - a:=lowcut b:=lowpass"

echo " c:=highpass d:=highcut"

>/dev/tty

read band

sufilter <tmp1 f=$band amps=0,1,1,0 >tmp2

#------------------------------------------------

# Plot data terfilter...

#------------------------------------------------

suxwigb <tmp2 xbox=10 ybox=10 wbox=400 hbox=600 \

label1="Traveltime [s]" label2="Offset [m]"\

title="data terfilter" verbose=0 perc=90 \

key=offset &

 

suwind <tmp2 key=offset min=-50 max=50 |

sustack key=dt |

Page 8: Filtering Seismik

sugabor fmax=125 band=6 |

suximage xbox=420 ybox=10 wbox=400 hbox=600 \

labeil1="Traveltime [s]" label2="Frekuensi [Hz]" \

title="Spektrum frekuensi (Near Offset)" \

grid1=dot grid2=dot legend=1 bclip=2e05 wclip=0 \

cmap=hsv2 verbose=0 &

 

sufilter <tmp2 f=$band amps=1,0,0,1 |

suxwigb xbox=830 ybox=10 wbox=400 hbox=600 perc=90\

label1="Traveltime [s]" label2="Offset [m]"\

title="data tak terpakai" verbose=0 perc=90 \

key=offset &

 

#------------------------------------------------

# kembali atau keluar

#------------------------------------------------

 

echo "Tekan 1 : Mengulang Filter"

echo "Tekan 2 : Keluar"

>/dev/tty

read pilihan

case $pilihan in

1) clear

Page 9: Filtering Seismik

ok=false;;

2) pause exit

ok=true;;

esac

done

 

rm -f tmp*

 

exit

 

 

V.2. Filter F-K

Filtering dalam kawawan frekuensi-angka gelombang (F-K) juga disebut filter kecepatan. Semua energi seismik yang

berasal dari source dengan kecepatan perambatan yang sama yang melewati event miring.

Transformasi Fourier 2D dibutuhkan untuk mentransformasi data ke dalam kawasan f-k. Pertama, transformasi Fourier mengubah kawasan waktu ke dalam kawasan frekuensi. Kedua, mentransformasi kawasan spasial ke dalam kawasan angka gelombang k. Hubungan k dengan

panjang gelombang adalah . Seperti halnya frekuensi ( ) adalah kebalikan

dari perioda, maka angka gelombang ( atau ) adalah kebalikan dari panjang gelombang.

Filter F-K diaplikasikan dalam Seismic Unix dengan menjalankan perintah sudipfilt. Perintah ini memerlukan tiga buah parameter yang harus di-set, yaitu

        Argumen amps, merupakan persentase pelolosan filter (sama seperti sufilter).

        Argumen slopes, merupakan vektor kemiringan filter F-K. slopes harus ditulis semakin membesar yaitu a<b<c<d. slopes dari persamaan,

Page 10: Filtering Seismik

(4.1)

        Argumen d2. d2 merupakan sampling spasial dari data seismik. Parameter ini digunakan untuk melakukan transformasi Fourier spasial. d2 mempunyai satuan kilometer.

 

V.2.1. Ilustrasi Filter F-K

Ilustrasi Filter F-K dapat dilihat pada contoh di bawah ini. Pertama, kita membuat data dengan perintah suplane dengan parameter sampling waktu 4 milidetik dan dengan sampling spasial 0.016 kilometer. Model sinyal serta spektrumnya dapat dilihat pada Gambar V.6. data dibut dengan menggunakan perintah

 

suplane | sushw key=d2 a=0.016>suplane.data

 

dan spektrum F-K dihasilkan dengan menggunakan perintah

 

suspecfk <suplane.data |

suximage title="F-K Spectrum of Data" windowtitle="F-K" \

label1="Frequency" label2="K"\

legend=1 cmap=hsv8 perc=97 &

 

Cteraliasing

 C B A C 

Page 11: Filtering Seismik

B A 

 

 

Gambar V.6. (a) Data Sintetik 3 buah reflector (b) Spektrum F-K

 

Notasi A, B dan C menunjukkan hubungan antara kemiringan sinyal Gambar V.6.a. dengan spektrum sinyalnya pada Gambar V.6.b. Kemiringan B merupakan Nyquist dari kemiringan C. Kita dapat melihat bahwa sinyal C teraliasing (karena melebihi dari nilai nyquist-nya). Penggunaan filter F-K dapat dilakukan dengan mengetikkan perintah sudipfilt. Jika kita ingin menghilangkan reflektor datar,A, maka perintahnya adalah sebagai berikut

 

#!/bin/sh

slopes=-1.0,-0.5,0.5,1.0

bias=0.0

dx=0.016

dt=0.004

(a) 

(b) 

Page 12: Filtering Seismik

sudipfilt <suplane.data dt=$dt dx=$dx \

slopes=$slopes amps=$amps bias=$bias |

suxwigb title="slope=$slopes amps=$amps bias=$bias" \

windowtitle="zap flat" \

label1="Samples" label2="Trace" f1=1 d1=1 f2=1 d2=1 &

 

sudipfilt <suplane.data dt=$dt dx=$dx \

slopes=$slopes amps=$amps bias=$bias |

suspecfk |

suximage title="F-K Spectrum of Data:zap flat" \

windowtitle="F-K" \

label1="Frequency" label2="K" legend=1\

cmap=hsv8 perc=97&

slope yang digunakan dihitung dengan menggunakan persamaan (4.1), sehingga akan diperoleh hasil seperti pada gambar V.7.

 

Page 13: Filtering Seismik

 

 

Gambar V.7. (a) Data setelah difilter (b) Spektrum F-K

 

Hal yang sama juga dapat dilakukan, jika kita ingin menghilangkan reflektor B. Tetapi bedanya adalah parameter slopes yang digunakan. Lihat skrip beikut..... dan hasilnya dapat dilihat pada gambar V.8.

 

#!/bin/sh

(a) 

(b) 

Page 14: Filtering Seismik

slopes=0.5,0.75,1.25,1.5

bias=0.0

dx=0.016

dt=0.004

sudipfilt <suplane.data dt=$dt dx=$dx \

slopes=$slopes amps=$amps bias=$bias |

suxwigb title="slope=$slopes amps=$amps bias=$bias" \

windowtitle="zap mid" \

label1="Samples" label2="Trace" f1=1 d1=1 f2=1 d2=1 &

 

sudipfilt <suplane.data dt=$dt dx=$dx \

slopes=$slopes amps=$amps bias=$bias |

suspecfk |

suximage title="F-K Spectrum of Data:mid flat" \

windowtitle="F-K" \

label1="Frequency" label2="K" legend=1\

cmap=hsv8 perc=97&

 

Page 15: Filtering Seismik

 

 

Gambar V.8. (a) Data setelah difilter (b) Spektrum F-K

 

Hal yang perlu digaris bawahi adalah jika terjadi aliasing. Ini dapat dilihat jika kita menggunakan skrip sebelumnya. Hasilnya dapat dilihat pada gambar V.9.

 

#!/bin/sh

slopes=1.5,1.75,2.25,2.5

(a) 

(b) 

Page 16: Filtering Seismik

bias=0.0

dx=0.016

dt=0.004

sudipfilt <suplane.data dt=$dt dx=$dx \

slopes=$slopes amps=$amps bias=$bias |

suxwigb title="slope=$slopes amps=$amps bias=$bias" \

windowtitle="try step" \

label1="Samples" label2="Trace" f1=1 d1=1 f2=1 d2=1 &

 

sudipfilt <suplane.data dt=$dt dx=$dx \

slopes=$slopes amps=$amps bias=$bias |

suspecfk |

suximage title="F-K Spectrum of Data:steep flat" \

windowtitle="F-K" \

label1="Frequency" label2="K" legend=1\

cmap=hsv8 perc=97&

 

 

Page 17: Filtering Seismik

 

 

Gambar V.9. (a) Data setelah difilter (b) Spektrum F-K

 

Sinyal dengan kemiringan C masih dapat dilihat walaupun intensitasnya berkurang. Untuk menghilangkannya, kita perlu men-set argumen bias di dalam sudipfilt. Lihat skrip shell berikut dan hasilnya dapat dilihat pada Gambar V.10.

 

#!/bin/sh

(a) 

(b) 

Page 18: Filtering Seismik

slopes=1.5,1.75,2.25,2.5

bias=2.0

dx=0.016

dt=0.004

sudipfilt <suplane.data dt=$dt dx=$dx \

slopes=$slopes amps=$amps bias=$bias |

suxwigb title="slope=$slopes amps=$amps bias=$bias" \

windowtitle="zap step" \

label1="Samples" label2="Trace" f1=1 d1=1 f2=1 d2=1 &

 

sudipfilt <suplane.data dt=$dt dx=$dx \

slopes=$slopes amps=$amps bias=$bias |

suspecfk |

suximage title="F-K Spectrum of Data:steep flat" \

windowtitle="F-K" \

label1="Frequency" label2="K" legend=1\

cmap=hsv8 perc=97&

 

Page 19: Filtering Seismik

 

 

Gambar V.10. (a) Data setelah difilter (b) Spektrum F-K

 

V.2.2. Penerapan Filter F-K pada data Riil

Subbab V.2.2.1 membahas mengenai pemahaman mengenai filter F-K yang diaplikasikan pada data sintetik. Pada data riil permasalahan yang dihadapi tidak semudah data sintetik. Noise yang terdapat pada data riil harus dikenali karakteristiknya terlebih dahulu, apakah filter F-K sesuai diaplikasikan pada sebuah data. Penggunaan Filter F-K sangat mempunyai resiko yang tinggi, jika slopes yang dimasukkan tidak tepat maka dapat menghilangkan data yang seharusnya dapat dipakai. Contohnya dapat kita lihat pada spektrum sinyal pada gambar V.10.b. dimana spektrum F-K reflektor A sedikit tereliminasi oleh slopes filter F-K yang digunakan untuk menghilangkan reflektor C.

 

(a) 

(b) 

Page 20: Filtering Seismik

(a) (b)

Gambar V.11. (a) Shot gather [YILMAZ 25] sebelum dilakukan proses filtering. (b). Spektrum F-Knya

 

Data seismik riil yang digunakan adalah kumpulan data seismik Ozdogan Yilmaz nomer 25. Jenis noise yang didapati dalam data tersebut adalah groundroll. Noise ini mempunyai kemiringan yang dapat kita lhat langsung pada rekaman data. Noise tersebut mempunyai frekuensi rendah, sehingga dalam spektrum F-K kita harus melihat spektrum pada frekuensi rendah.

 

(a). (b). (c).

Page 21: Filtering Seismik

Gambar V.12. (a) Shot gather [YILMAZ 25] setelah dilakukan proses filter bandpass F-K dengan slopes -0.35,-

0.25,0.25,dan 0.35 . (b). Spektrum frekuensi setelah di filter F-K, (c). Data yang tidak terpakai.

 

 

Cara Penggunaan sudipfilt berbeda dengan sufilter. Jika sufilter dapat dipakai secara simultan untuk seluruh data sekaligus, maka penggunaan sudipfilt harus dilakukan per-satu common shot gather. Hal ini dikarenakan sudipfilt membutuhkan informasi spasial yang dipusatkan pada titik source.

 

Contoh:

Jika kita ingin melakukan filter F-K untuk data seismik xxx.su sebanyak 10 shot gather dan mempunyai sampling spasial sebesar 10 meter maka kita harus melakukan operasi perulangan untuk melakukan filter tersebut. Contoh perulangannya adalah sebagai berikut:

 

#!/bin/sh

 

# parameter-parameter

#=======================

indata=xxx.su

outdata=xxx_fk.su

d2=0.01 # km

slopes=-.1,-.05,.05,.1 # s/Km

amps=0,1,1,0

bias=0.0

i=1 # no. shot record pertama

n=10 # no. shot record terakhir

>>$outdata # membuat file kosong untuk output

Page 22: Filtering Seismik

while [ $i -le $n ]

do

suwind < $indata key=fldr min=$i max=$i |

sudipfilt slopes=$slopes amps=$amps bias=$bias >> $outdata

expr `i=$1+1`

done

 

 

V.2.3. Skrip Shell Filter F-K

 

#! /bin/sh

 

echo "Tes Filter F-K"

 

indata=oz25.su

tpow=2.0

d2=0.05 # CMP spacing in km

rm -f tmp*

 

#------------------------------------------------

# menunjukkan shot gather asli dan spektrumnya...

#------------------------------------------------

 

suswapbytes< $indata |

Page 23: Filtering Seismik

sugain tpow=$tpow >tmp0

suxwigb <tmp0 xbox=10 ybox=10 wbox=400 hbox=600 \

label1="Traveltime [s]" label2="Offset [m]" \

title="Shot Gather asli" \

verbose=0 perc=90 key=offset &

 

suspecfk <tmp0 dx=$d2 |

suximage xbox=420 ybox=10 wbox=400 hbox=600 \

label1="Frekuensi [Hz]" label2="Angka Gelombang [k]"\

title="Spektrum F-K sebelum Filtering" \

cmap=hsv2 legend=1 unit=Amplitude \

verbose=0 x1beg=0 x1end=125 \

bclip=2e09 wclip=0 &

 

#------------------------------------------------

# Tes Filter F-K...

#------------------------------------------------

 

ok=false

while [ $ok = false ]

do

rm -f tmp1

if [ $pilihan ]

Page 24: Filtering Seismik

then

echo "Tes Filter F-K"

echo "Tekan A : Menambah sebuah filter FK"

echo "Tekan S : Memulai dari awal"

>/dev/tty

read pilih1

case $pilih1 in

[sS]) cp tmp0 tmp1

echo "-> Menggunakan data asli";;

[aA]) cp tmp2 tmp1

echo "-> Menggunakan data terfilter";;

esac

else

cp tmp0 tmp1

fi

echo "Masukkan kemiringan filter :"

echo "Input: a,b,c,d - a:=cut b:=pass"

echo " c:=pass d:=cut"

echo "dengan a < b < c < d; kemiringan antara b dan c \

diloloskan"

>/dev/tty

read slopes

sudipfilt <tmp1 d2=$d2 slopes=$slopes amps=0,1,1,0 >tmp2

Page 25: Filtering Seismik

#------------------------------------------------

# Plot Data Terfilter....

#------------------------------------------------

suxwigb <tmp2 xbox=10 ybox=10 wbox=400 hbox=600 \

label1="Traveltime [s]" label2="Offset [m]"\

title="Data terfilter F-K" key=offset \

verbose=0 key=offset perc=90 &

 

suspecfk <tmp2 dx=$d2 |

suximage xbox=420 ybox=10 wbox=400 hbox=600 \

label1="Frekuensi [Hz]" label2="Angka Gelombang [k]" \

title="Spektrum F-K" grid1=dot grid2=dot \

legend=1 x1beg=0 x1end=120 bclip=2e09 wclip=0 \

cmap=hsv2 verbose=0 &

sudipfilt <tmp2 d2=$d2 slopes=$slopes amps=1,0,0,1 |

suxwigb xbox=830 ybox=10 wbox=400 hbox=600 \

label1="Traveltime [s]" label2="Offset [m]" \

title="Data tak terpakai" key=offset \

verbose=0 perc=90 &

 

#------------------------------------------------

# Kembali atau Keluar

#------------------------------------------------

Page 26: Filtering Seismik

 

echo "Tekan 1 : Mengulang Filter F-K"

echo "Tekan 2 : Keluar"

>/dev/tty

read pilihan

case $pilihan in

1) clear

ok=false;;

2) pause exit

ok=true;;

esac

done

 

rm -f tmp*

 

exit

 

V.3. Dekonvolusi

Dekonvolusi merupakan operasi kebalikan dari operasi konvolusi. Dekonvolusi akan menghilangkan efek wavelet dari data seismik. Dalam melakukan proses dekonvolusi, wavelet yang digunakan perlu diasumsikan untuk mendapatkan sebuah urutan reflekifitas.

Penggunaan dekonvolusi pada data seismik akan menambah resolusi temporal dari data seismik (Yilmaz,1987). Dengan demikian, hasil dekonvolusi dikatakan bagus jika mendekati bentuk impuls. Kegunaan dekonvolusi terutama untuk menghilangkan reverberasi yang umum tetjadi pada data seismik laut. Illustrasi perioda reverberasi dapat dilihat pada Gambar V.13.

 

Page 27: Filtering Seismik

Gambar V.13. Perioda reverberasi

 

V.3.1. Ilustrasi Dekonvolusi

Sebuah model data seismik dibuat untuk mengilustrasikan proses dekonvolusi. Model ini kemudian ditambahkan dengan noise berupa reverberasi. Model data seismik yang digunakan dapat dilihat pada gambar V.14.a, sedangkan model data seismik setelah ditambahkan dengan reverberasi dapat dilihat pada gambar V.14.b. Kedua data seismik tersebut dibuat dengan menggunakan bahasa C. Dengan kode dapat dilihat pada Tabel V.1

 

Tabel V.1. Kode pembuatan Model data seismik dengan reverberasi

/* Hak Cipta: Colorado School of Mines, 2005. */

/* All rights reserved. */

/* simpan dengan nama traces.c */

/* membuat trace dengan reverberasi 2 arah */

 

#include "cwp.h"

 

int

Page 28: Filtering Seismik

main()

{

float x; /* nilai trace */

int ns=512; /* jumlah sample */

int ntr=8; /* jumlah trace */

int dtime=16; /* sample satu arah yang melewati lapisan

air laut */

float rbot=0.8; /* kekuatan refleksi dari dasar laut */

int h=100; /* posisi urutan reverberasi dua arah

dalam sampel waktu */

float amp=0.2; /* Kekuatan refleksi */

int loc=170; /* lokasi refleksi pada trace 1 dalam

sample */

int dip=12; /* kemiringan refleksi dalam sample */

 

{ int j;

for (j = 0; j < ntr; j++) {

int i;

for (i = 0; i < ns; i++) {

x = 0.0;

if (i >= h && ((i-h) % dtime == 0)) {

int k = (i-h)/dtime;

Page 29: Filtering Seismik

int sgn = (ISODD(k) ? -1 : 1);

x = sgn * (k+1) * pow(rbot, k);

}

if (i == loc + j*dip) x += amp;

fwrite(&x, FSIZE, 1, stdout);

}

} }

return EXIT_SUCCESS;

}

 # Makefile untuk ...cwp/main

# Simpan dengan nama "Makefile

# ketic saja "make"

 

include $(CWPROOT)/src/Makefile.config

 

B = .

 

LFLAGS = $(PRELFLAGS) -L$L -lcwp -lm $(POSTLFLAGS)

 

PROGS = \

$B/traces

 

Page 30: Filtering Seismik

 

INSTALL: $(PROGS)

@-rm -f INSTALL

@touch $@

 

$(PROGS): $(CTARGET)

$(CC) $(CFLAGS) $(@F).c $(LFLAGS) -o $@

$(MCHMODLINE)

@echo $(@F) installed in $B

remake:

@-rm -f $(PROGS) INSTALL

@$(MAKE) INSTALL

 

clean ::

rm -f *.o *.a junk*

 

 

Untuk menampilkan data tersebut, kit perlu menambahkan beberapa header pada nilai data diatas dengan perintah,

 

./traces |

suaddhead ns=512 |

sushw key=dt a=4000 |

Page 31: Filtering Seismik

suaddnoise sn=200 |

suconv filter=1152,-384,-904,288,174,-34,-12 >modeldata

 

suaddhead mempunyai arti bahwa data yang dihasilkan oleh traces mempunyai 512 data untuk tiap trace seismiknya. sushw akan men-set sampel waktu 4 ms untuk tiap trace. Model data seismik tersebut ditambahkan dengan noise dengan rasio S/N sebesar 200 persen dengan rutin suaddnoise dan akhirnya akan dikonvolusikan dengan wavelet [1152 -384 -904 288 174 -34 -12] dengan rutin suconv.

 

 

Gambar V.14. (a) Model data seismik (b) Model data seismik setelah ditambahkan noise berupa reverberasi. (c) Autokorelasi dari data data seismik (b).

 

Untuk menampilkan model data seismik terreverberasi serta autokorelasinya, kita dapat mengetikkan perintah dibawah ini,

 

suxwigb <modeldata title="Data: 64ms reverbs" \

label1="Time (sec)" label2="Trace" &

(a) 

(b) 

(c) 

Page 32: Filtering Seismik

# plot autokorelasi

sugain <modeldata tpow=1 |

suacor nt=31 sym=0|

suxwigb title="Autocorrelation" \

label1="Time (sec)" label2="Trace" &

 

Seismic Unix mendukug dua buah metode dekonvolusi yaitu, F-X Deconvolution dan Wiener-Levinson Deconvolution. Wiener-Levinson Deconvolution dapat dibagi lagi menjadi dua buah metode, yaitu spiking deconvolution serta predictive deconvolution. Dalam metode ini hanya Wiener-Levinson Deconvolution saja yang dibahas.

Spiking Deconvolution dilakukan pada model data seismik di atas. hal ini bertujuan untuk mendapatkan sinyal yang lebih tajam. Kita menggunakan rutin supef dalam menggunakan spiking deconvolution. Argumen yang perlu di-set adalah nilai maxlag. maxlag menggambarkan periode wavelet pada autokorelasinya. Hasil spiking deconvolution serta autokorelasinya dapat dilihat pada gambar V.15 yang dihasilkan dari skrip,

 

#!/bin/sh

 

supef <modeldata maxlag=.04 |

suxwigb label1="Time" \

label2="Trace" title="Spiking Decon: 40 ms" &

 

# plot autokorelasi

supef <modeldata maxlag=.04 |

sugain tpow=1 |

suacor nt=31 sym=0|

suxwigb title="Autocor after spike" \

Page 33: Filtering Seismik

label1="Time (sec)" label2="Trace" &

 

Predictive deconvolution dilakukan dengan menset dua buah parameter, yaitu minlag dan maxlag dari rutin supef. Dalam melakukan predictive deconvolution, kita perlu memperkirakan perioda wavelet dan perulangan wavelet tersebut untuk menghilangkan efek reverberasi. Perioda wavelet disebut sebagai gap length yang mewakili dari nilai minlag, sedangkan perulangan pertamanya disebut operator length yang mewakili nilai maxlagnya. Gambar V.16. menunjukkan hubungan antara gap length dan operator length. Nilai gap length pada umum-nya berada pada second zero crossing, yaitu perpotongan ke dua dengan garis nol dan nilai operator length merupakan perulangan pertama dari sistem wavelet. Autokorelasi data tereverberasi (Gambar V.14.b) menunjukkan bahwa data tersebut menpunyai nilai gap length sebesar 50 ms dan operator length sebesar 160 ms.

(a) 

(b) 

 

 

Gambar V.15. (a) Spiking Deconvolution dan (b) Autokorelasinya

 

 

Page 34: Filtering Seismik

Gambar V.16. Hubungan antara gap length dan operator length pada predictive deconvolution.

 

Hasil predictive deconvolution dan autokorelasinya dapat dilihat pada Gambar V.17. Hasil tersebut diperoleh dengan membuat skrip sebagai berikut,

 

#!/bin/sh

 

supef <modeldata maxlag=.04 |

supef minlag=.05 maxlag=.16 |

suxwigb label1="Time" label2="Trace" \

title="PEF: 50,160ms (Note dipping reflector!)" &

# plot autokorelasi

supef <modeldata maxlag=.04 |

supef minlag=.05 maxlag=.16 |

sugain tpow=1 |

suacor nt=31 sym=0|

Page 35: Filtering Seismik

suxwigb label1="Time" label2="Trace" \

title="Autocorr/PEF" &

 

 

Gambar V.17. (a) Predictive Deconvolution dan (b) Autokorelasinya

 

Reverberasi dapat diminimalisasi keberadaannya dengan menggunakan predictive deconvolution walaupun masih menyisakan energi reverberasi seperti ditunjukkan pada autokorelasi khususnya pada 60 dan 120 ms. Gambar V.18. merupakan Gambar V.17.a setelah dilakukan filter Bandpass.

(a) 

(b) 

Page 36: Filtering Seismik

 

Gambar V.18. Hasil Filter Bandpass f=5,15,80,100 Hz.

 

V.3.2. Penerapan Dekonvolusi pada Data Riil

Penerapan dekonvolusi pada data riil dapat dilihat pada gambar V.19 dan V.20. Data seismik yang dipakai adalah data kumpulan data seismik Ozdogan Yilmaz nomer 16 yang telah diNMO dengan kecepatan tetap. Data seismik tersebut mempunyai noise berupa reverberasi. Pada autokorelasi data seismik (Gambar V.19.b) didapatkan nilai gap length sebesar 24 ms dan nilai operator length sebesar 500 ms. Hasilnya dapat dilihat pada Gambar V.20.

 

 (a) 

(b) 

(c) 

Page 37: Filtering Seismik

 

Gambar V.19. (a) Data Seismik sebelum dekonvolusi (b) Autokorelasi dari data data seismik dan (c) Spektrum F-X.

 

Data seismik setelah dikenai dekonvolusi juga masih menyisakan reverberasi walaupun intensitasnya banyak berkurang. Kandungan frekuensi data seismik setelah dekonvolusi juga bertambah. Gambar V.20 dibangkitkan berdasarkan skrip shell pada subbab V.3.3.

 

 

 

 

Gambar V.20. (a) Data Seismik setalah dekonvolusi, (b) Autokorelasi dari data data seismik dan (c) Spektrum F-X.

 

 

V.3.3. Skrip Shell Dekonvolusi (Predictive Deconvolution)

(a) 

(b) 

(c) 

Page 38: Filtering Seismik

 

#! /bin/sh

 

echo "Tes Dekonvolusi"

 

indata=oz16.su

tpow=2.0

rm -f tmp*

 

#------------------------------------------------

# Plot Shot Gather, Autokorelasi dan Spektrum F-X

#------------------------------------------------

 

suswapbytes<$indata |

sugain tpow=$tpow |

sunmo vnmo=1850 >tmp0

# sumute xmute=233,1408 tmute=0.45,1.05

suxwigb <tmp0 perc=88 xbox=10 ybox=10 wbox=400 hbox=600 \

label1="Traveltime [s]" label2="Offset [m]" key=offset\

title="Shot Gather Asli" verbose=0 &

 

suacor <tmp0 nt=101 sym=0 |

suxwigb perc=100 wclip=0 xbox=420 ybox=10 wbox=400 hbox=600 \

Page 39: Filtering Seismik

label1="Traveltime [s]" label2="Offset [m]" key=offset\

title="Autokorelasi" verbose=0 &

 

suspecfx <tmp0 |

suximage xbox=830 ybox=10 wbox=400 hbox=600 \

label1="Frekuensi [Hz]" label2="Offset [m]" \

title="Spektrum F-X Sebelum Decon" key=offset \

cmap=hsv7 legend=1 unit=Amplitude \

verbose=0 bclip=0.5 wclip=0.0 &

 

#------------------------------------------------

# Dekonvolusi ....

#------------------------------------------------

 

ok=false

while [ $ok = false ]

do

rm -f tmp1

echo "Masukkan nilai Gap length (minlag) dalam detik"

>/dev/tty

read minlag

echo "Masukkan nilai Operator Length (maxlag) dalam detik"

>/dev/tty

Page 40: Filtering Seismik

read maxlag

 

supef <tmp0 minlag=$minlag maxlag=$maxlag \

mincorr=0.4 maxcorr=1.4 pnoise=0.008 >tmp1

#------------------------------------------------

# Plot the filtered data...

#------------------------------------------------

suxwigb <tmp1 perc=88 xbox=10 ybox=10 wbox=400 hbox=600 \

label1="Traveltime [s]" label2="Offset [m]" key=offset\

title="Shot Gather setelah Decon" verbose=0 &

suacor <tmp1 nt=101 sym=0 |

suxwigb perc=100 xbox=420 ybox=10 wbox=400 hbox=600 \

label1="Traveltime [s]" label2="Offset [m]" key=offset\

title="Autokorelasi setelah Decon" verbose=0 &

 

suspecfx <tmp1 | suop op=norm |

suximage xbox=830 ybox=10 wbox=400 hbox=600 \

label1="Frekuensi [Hz]" label2="Offset [m]" \

title="Spektrum F-X Setelah Decon" key=offset\

cmap=hsv7 legend=1 unit=Amplitude \

verbose=0 bclip=0.5 wclip=0.0 &

 

#------------------------------------------------

Page 41: Filtering Seismik

# Mengulang lagi atau keluar

#------------------------------------------------

 

echo "Tekan 1 mengulang Dekonvolusi"

echo "Tekan 2 Keluar"

>/dev/tty

read pilihan

case $pilihan in

1) clear

ok=false;;

2) pause exit

ok=true;;

esac

done

 

rm -f tmp*

 

exit