Penjumlahan
gelombang sinus
Sisir delta diract
Sinyal digital
PROGRAM KONVOLUSI
Flow Chart Konvolusi
START
READ
ai , i = 1, LA
READ
bi , j = 1, LB
time variant.
LC = LA + LB - 1
A=1
B2(j) = bi(LB-j+1), j = 1, LB
C(i) = 0.0
dinyatakan dengan:
h(t) = f(t)*g(t); Data digital/fungsi diskrit:
a={ a1, a 2 , a3 , a 4 ,a 5 , a n } dan
b={ b1 , b2 , b3 ,b 4 , b5 , bm }
i=i+1
i = LC
{ b m , . b3 , b2 , b1 }
i=1
Hasilnya : f1 = a1 x b1
j=1
f2 = a1 x b2 + a2 x b1
k=i+j-1
i = i + 1 C(k) = C(k) + a(i)*B2(j) j = j + 1
j = LB
f3 = a1 x b3 + a2 x b2 + a3 x b1 dst
fe = an x bm ; dengan e = n + m 1
i=i+1
i = LA
WRITE C
STOP
koefisien
2
3
1
4
5
8
11
100
7
12
6
PROGRAM KONVOLUSI
dimension a(150), b(150), c(150)
write (*,'(6x,A,/)')'Program Konvolusi'
write(*,'(6x,A,/)')'Nuri Astuti'
print*, 'Jumlah data X'
read'(I7)',m
print*, 'Jumlah data Y'
read'(I7)', n
do 1 i=1, m
write (*,2)i
read(*,3)a(i)
format (2x,'Data X ke',I3,':')
format(F7.0)
continue
do 8 i=1,n
write(*,4)i
read(*,5)b(i)
format(2x,'Data Y ke',I3,':')
format(F7.0)
continue
lc=n+m-1
do 9 k=1,lc
c(k)=0.0
continue
do 100i=1,m
do 11j=n,1,-1
k=i+j-1
c(k)=c(k)+(a(i)*b(j))
continue
continue
format(3F7.0)
do 12 l=1,lc
write(*,6)l,c(l)
continue
format(2x,'Hasil Konvolusi ke-',I7,':',F7.2)
stop
end
Program
di
sampaing
dibuat agar pengguna bisa
menginput data yang akan
dikonvolusikan.
Sebagai
contoh
ketika
dirun
dimasukan
5
6
7
dikonvolusikan dengan 9 8
7, hasilnya adalah :
Gambar 2.
Hasil kovolusi
RICKER WAVELET
Wavelet adalah gelombang dasar
pembentuk sinyal. Secara matematika,
wavelet dapat diestimasikan dari proses
dekonvolusi, autokorelasi, determinan,
analitik (wavelet tiruan, contoh : ricker
wavelet)
fmt
f /f m
2 f2
) e
f 2m
10
do 10 i=1,n
ex = (pi*f*(i-1)*dt)**2
r(i) = (1-2*ex)*exp(-ex)
continue
20
do 20 i=1,n
ricker(n+i) = r(i+1)
ricker(i) = r(n-i+1)
continue
100
30
do 30 i=1,n
write(6,100) ricker(i)
format(1x,f8.2)
continue
ProgramdoDalam
MATLAB
40 i=1,n-1
write(6,200) ricker(N+i)
%Ricker
Wavelet - Nuri
200
format(1x,f8.2)
f=30;
40
continue
dt=0.002;
stop
m=25; end
t=1:dt:5;
for i=1:m;
tr=(i-1)*dt;
kr=(1-2*pi^2*f^2*tr^2)*exp(pi^2*f^2*tr^2);
rk(m-i+1)=kr;
rk(m+i-1)=kr;
end;
figure;
plot(rk);
xlabel('Waktu (s)'),
ylabel('Amplitudo')
title('Ricker Wavelet')
Hasil program dalam MATLAB ketika di run akan menghasikan gambar ricker wavelet sebagai
berikut:
Dari ketiga variasi frekuensi tersebut dapat disimpulkan bahwa emakin besar frekuensi
maka ricker wavelet semakin sempit.
Dalam survei seismik, selain dilakukan survey seismic secara regional, juga dilakukan survei
sumur untuk mendapat data secara local. Contoh data sumur yang diperoleh adalah log densitas
dan log sonic. Data log densitas berupa pengukuran densitas dan porositas secara menerus yang
dipengaruhi oleh besaran-besaran fisis dan kondisi lubang bor. Sedangkan data log sonic sendiri
berupa waktu rambat gelombang di dalam batuan dinding lubang bor dengan interval jarak
tertentu. Log sonik cenderung memberikan hasil perhitungan porositas yang rendah yaitu
porositas matriks. Data log sonic sangat rentan terhadap perubahan lokal di sekitar lubang bor
seperti washout zone, perubahan litologiyang tiba-tiba, serta hanya mampu mengukur formasi
batuan sedalam 1-2 feet.
Script di bawah ini adalah program untuk membuat pemodelan data densitas, data sonic serta
koefisien refleksi dengan memanggil data masing-masing bagian berformat .txt.
%Model Densitas Log, Sonic Log,
dan Koefisien Refleksi
k= dlmread('densitas.txt')
dt=-0.002;
m=1603;
for i=1:m;
xr(i)=i*dt;;
end;
l= dlmread('sonic.txt')
n=1603;
for i=1:n;
xl(i)=0.002*i;
end;
m= dlmread('r.txt')
h=1602;
for i=1:h;
xk(i)=0.002*i;
end;
figure;
subplot(1,3,1);
plot(k,xr);
subplot (1,3,2);
plot(l,xl);
subplot(1,3,3)
plot(m,xk);
Densitas Log
3.5
Sonic Log
3.5
-0.5
-1
2.5
2.5
-1.5
-2
1.5
1.5
-2.5
-3
0.5
0.5
-3.5
2.5
0
50
100
150
Koefisien Refleksi
0
-0.1
0.1
Refleksi seismik terjadi ketika ada perubahan impedansi akustik sebagai fungsi dari kecepatan
dan densitas pada kedudukan sinar datang yang tegak lurus, yaitu ketika garis sinar mengenai
bidang refleksi pada sudut yang tegak lurus, persamaan dasar dari koefesien refleksi adalah;
dimana, i adalah densitas lapisan ke-i, Vi adalah kecepatan lapisan ke-i, dan Zi adalah
Impedansi Akustik ke-i. Dengan mengetahui harga reflektifitas suatu media, maka dapat
diperkirakan sifat fisik dari batuan bawah permukaan.
Seismogram sintetik merupakan hasil konvolusi antara deret koefisien refleksi dengan suatu
wavelet . Koefisien refleksi diperoleh dari perkalian antara kecepatan gelombang seismik dengan
densitas batuannya. Sedangkan wavelet diperoleh dengan melakukan pengekstrakan pada data
seismik dengan atau tanpa menggunakan data sumur dan juga dengan wavelet buatan.
Seismogram sintetik sangat penting karena merupakan sarana untuk mengidentifikasi horison
seismik yang sesuai dengan geologi bawah permukaan yang diketahui dalam suatu sumur
hidrokarbon (Munadi dan Pasaribu, 1984).
Pemodelan dengan Memanggil Data Koefisien Refleksi yang Sudah Ada
%Ricker Wavelet, Koefisisen Refleksi, Sintetik Seismogram
f=60;
dt=0.002;
m=25;
t=1:dt:5;
for i=1:m;
tr=(i-1)*dt;
kr=(1-2*pi^2*f^2*tr^2)*exp(-pi^2*f^2*tr^2);
rk(m-i+1)=kr;
rk(m+i-1)=kr;
end;
c= dlmread('r.txt')
h=1602;
for i=1:h;
xk(i)=0.002*i;
end;
d=conv(rk,c);
figure;
subplot(3,1,1);
title('Ricker Wavelet');
plot(rk);
subplot(3,1,2);
title('Koefisien Refleksi');
plot(xk,c);
subplot(3,1,3);
title('Sintetik Seismogram');
plot(d);
Ricker Wavelet
1
0
-1
10
15
20
25
30
35
40
45
50
Koefisien Refleksi
0.1
0
-0.1
0.5
1.5
2
2.5
Sintetik
Seismogram
Sinsetik
Seismogram
0.2
3.5
0
-0.2
200
400
600
800
1000
1200
1400
1600
1800
KOREKSI NMO
Koreksi Normal Move Out (NMO) dilakukan untuk menghilangkan efek jarak (offset) yang
digambarkan dengan pola hiperbola dalam suatu gather menjadi gather yang flat (datar).
Didalam melakukan koreksi NMO, pemilihan model kecepatan (Vrms maupun Vstack)
merupakan hal yang sangat penting untuk mendapatkan hasil yang baik dan selanjutnya untuk
stacking.Koreksi NMO akan menghasilkan efek stretching yait penurunan frekuensi gelombang
seismik.
Pembuatan Gather Trace Seismik dan Rickernya Sebelum Dikoreksi NMO Menggunakan
MATLAB
ph=importdata('DATA_SINTETIK_SEISMIK.TXT');
dx=0.0;
tt=0:0.002:2.0;
n=1000;
for i=1:23;
for j=1:n;
y(j)=ph(j,i);
end;
hold on;
axis ij;
subplot(1,2,1);
plot(y(1:n)+dx,tt(1:n),'magenta','LineWidth',1);
title('Trace Gather');
dx=dx+0.1;
end;
for j=1:n;
x(j)=0.0;
end;
for j=1:n;
for i=1:23;
x(j)=x(j)+ph(j,i);
end;
end;
hold on;
axis ij;
subplot(1,2,2);
plot (x(1:n),tt(1:n),'magenta','LineWidth',1);
title('Ricker Gather');
Program gather
dari 23 trace
dengan input data.
Waktu perekaman
0-2 detik setiap
0.002 detik
for j=1:n;
x(j)=0.0;
end;
for j=1:n;
for i=1:23;
x(j)=x(j)+hp(j,i);
end;
end;
hold on;
axis ij;
subplot(1,2,2);
plot (x(1:n),tt(1:n),'magenta','linewidth',1);
title('Hasil Stacking');
Stacking
Gambar 10. Plot trace seismik dan hasil stacking setelah koreksi NMO
Stacking berfungsi untuk menggabungkan semua hasil koreksi NMO agar menjadi suatu
wavelet.
data=importdata('DATA_SINTETIK_SEISMIK.TXT');
dt=0.002;
n=1000;
m=23;
dx=0.0;
t=0:dt:3.0;
for i=1:m
for j=1:n
y(j)=data(j,i);
end
hold on;
axis ij;
plot((y(1:n)+dx),t(1:n));
dx=dx+0.1;
end;
Sintetik Seismik
0
0.2
0.4
0.6
Time (s)
0.8
1
1.2
1.4
1.6
1.8
2
-0.5
0.5
1.5
2.5
Hn =
Dimana
2 f
2 L
N
nL
N
nL
N
sin
2 f
, dan
Low Pass Filter digunakan untuk meneruskan sinyal berfrekuensi rendah dan meredam sinyal
berfrekuensi tinggi.
w1 =2 fc
w n =2 fn
w0 =
w1
wn
w(i)=
2w 0 (sin( w 0 n))
w 0n
fn
1
2dt
Berikut ini adalah script pemrosesan sinyal pada sebuah low pass filter :
dt=0.001;
fl=35; fn=1/(2*dt);
wl=2*3.14*fl; wn=2*3.14*fn;
w0=wl/wn; w(1)=2*(wl/wn); n=128;
for i=2:n;
w(i)=2*(wl/wn)*(sin((i-1)*3.14*(wl/wn))/((i-1)*3.14*(wl/wn)));
end;
for i=1:n;
h(i)=w(n-i+1);
h(n+i)=w(i);
end;
figure; %1
plot(h(1:256)); title('Tanggapan Impulse Filter');
pause;
%FFT
H = fft(h,256);
HH=abs(H); mx=max(HH);
PH = H.*conj(H)/256;
f = (1/(dt))/256*(0:255);
figure; %2
plot(f(1:64),PH(1:64)); title('Spektrum Amplitudo Filter');xlabel('frekuensi
(Hz)');ylabel('power');
%BODE PLOT
DB=20*log(HH/mx);
figure; %3
plot(f(1:25),DB(1:25)); title('Bode Plot Filter');xlabel('frekuensi
(Hz)');ylabel('power (dB)');
%INPUT
f1=5; f2=15; f3=25; f4=35; f5=50; f6=120; f7=130;
m = 256;
t=0:dt:2;
x= sin(2.*pi.*f1.*t)+sin(2.*pi.*f2.*t)+sin(2.*pi.*f3.*t)+sin(2.*pi.*f4.*t)
+sin(2.*pi.*f5.*t)+sin(2.*pi.*f6.*t)+sin(2.*pi.*f7.*t);
figure;%4
plot(t,x);title('Sinyal Masukan');xlabel('time (s)');ylabel('magnitudo');
%FFT SIGNAL
X=fft(x,m);
PX=X.*conj(X)/m;
figure; %5
plot(f(1:64),PX(1:64)); title('Spektrum Amplitudo Sinyal
Input');xlabel('frekuensi (Hz)');ylabel('power');
%KONVOLUSI SIGNAL-FILTER
y=conv(x,h);
figure %6
plot(y); axis([100 2100 -5 5]); title('Sinyal Output Hasil LPF');
%FFT HASIL FILTER
Y=fft(y,256);
PY=Y.*conj(Y)/256;
figure; %7
plot(f(1:32),PY(1:32)); title('Spektrum Amplitudo Hasil
LPF');xlabel('frekuensi (Hz)');ylabel('power');
Hasil :
1
2dt
wl=2 fl
wh=2 fh
wn=2 fn
w0=
(wh-wl)
wn
Secara matetmatis, tanggap impuls suatu Band Pass Filter dapat dirumuskan sebagai berikut:
w(i)=(
2
nwh
nwl
)((sin(
)-sin(
))
n
wn
wn
Hasil :
Tanggapan impulse band pas filter berbeda dengan tanggapan impulse low pass filter. Hal ini
dikarenakan pada tanggapan impulse band pass filter, amplitude yang tinggi dan yang paling
rendah berharga sama. Sehingga pelemahan sinyal berlangsung lebih lama (karena ada 2
frekuensi cut off yang akan digunakan).
C
20
100
10
30
Data
RICKER WAVELET
===============
DIMENSION R1(100),R2(100),R3(100),R4(100)
CHARACTER(LEN=50)::NMFL
NMFL='D:\Data Kuliah\Semester 5\MAG\DATA_RICKER.TXT'
OPEN(UNIT=2,FILE=NMFL)
N=55
F1=20
F2=40
F3=50
F4=60
DT=0.002
CALL RICKER(F1,N,DT,R1)
CALL RICKER(F2,N,DT,R2)
CALL RICKER(F3,N,DT,R3)
CALL RICKER(F4,N,DT,R4)
MEREKAM KE HARDDISK
DO 20 I=1,N
WRITE(2,100)I,R1(I),R2(I),R3(I),R4(I)
CONTINUE
PAUSE
FORMAT(I3,5X,4F10.2)
STOP
END
SUBROUTINE RICKER(F,N,DT,R)
DIMENSION RICK(100),R(100)
PHI=3.14
N1=(N+1)/2
DO 10 I=1,N1
B=(PHI*F*(I-1)*DT)**2
RICK(I)=(1-2*B)*EXP(-B)
CONTINUE
DO 30 I=1,N1
R(N1+I)=RICK(I)
R(I)=RICK(N1-I+1)
CONTINUE
RETURN
END
secara
otomatis
tersimpan
5\MAG\DATA_RICKER.TXT
didalam
local
disk
D:\Data
Kuliah\Semester