Anda di halaman 1dari 41

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 Noise
Peralatan Perekaman Sambungan Geophone yang buruk Spike Cuaca/Angin Noise dari well Kendaraan bermotor Binatang-binatang

Ground Roll
Gelombang langsung Reverberasi Noise dari kapal Noise dari Rig Difraksi dari Rig Jalur tiang listrik

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.

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.

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.

(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.

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 |

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

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 |

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

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 ( atau ) adalah kebalikan dari perioda, maka angka gelombang ( gelombang. ) adalah kebalikan dari panjang

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,

(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

B A

(a)

(b)

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

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.

(a)

(b)

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

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&

(a)

(b)

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

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&

(a)

(b)

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

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&

(a)

(b)

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)
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).

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 terpakai. . (b). Spektrum frekuensi setelah di filter F-K, (c). Data yang tidak

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

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 |

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 ]

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

#-----------------------------------------------# 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 #------------------------------------------------

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.

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

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; 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

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 | 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.

(a)

(b)

(c)

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" & # 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 WienerLevinson 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" \ 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

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|

suxwigb label1="Time" label2="Trace" \ title="Autocorr/PEF" &

(a)

(b)

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.

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)

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

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.

(a)

(b)

(c)

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)

#! /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 \ 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 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 &

#-----------------------------------------------# 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