Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 9

1.

Program Ricker Wavelet


Fortran
dimension r(100),rx(100)
f=30
dt=0.002
pi=3.14
a=100
n1=(a+1)/2
do 10 i=1,n1
b=(pi*f*((i-1)*dt))**2
rx(i)=(1-2*b)*exp(-b)
10 continue
do 20 i=1,n1
r(n1+i)=rx(i)
r(i)=rx(n1-i+1)
20 continue
open(unit=1,file='D:/ricker.txt')
do 30 i=1,a
write(6,100)r(i)
write(1,100)r(i)
30 continue
100 format(f5.2)
stop
end
Matlab
%koefisien refleksi, ricker wavelet,
dan trace seismik
lp = 700;
nr = 199;
fr = 30.0;
dt = 0.001;
np = (nr+1)/2;
for i = 1:lp;
x(i) = 0.0;
x(25) = 0.5;
x(50) = -0.75;
x(75) = 0.1;
x(100) = 0.3;
x(200) = 0.4;
x(400) = -0.2;

x(420)
x(500)
x(600)
x(650)
x(675)
end

= -0.4;
= -0.6;
= 0.6;
= 0.8;
= -0.2;

for i = 1:np
t = (i-1)*dt;
b = (pi*fr*t)^2;
rx(i) = (1-2*b)*exp(-b);
end
for i = 1:np
rc(np+i) = rx(i);
rc(i) = rx(np-i+1);
end
y = conv(x,rc);
subplot(3,1,1);plot(x);title('koefisien
refleksi');
subplot(3,1,2);plot(rc);title('ricker
wavelet');
subplot(3,1,3);plot(y);title('trace
seismik');
visualisasinya adalah sebagai berikut ;

2. Program BPF
t = 0:.002:10;
f1=5; f2=20; f3=25; f4=30; f5=60;
y=5*sin(2*pi*f1*t)+2.5*sin(2*pi*f2*t
)+1.5*sin(2*pi*f3*t)+0.5*sin(2*pi*f4*
t)+3*sin(2*pi*f5*t);
Y=fft(y);
m=abs(Y);
subplot(2,1,1), plot(t,y);
title('Grafik Sinyal (dalam kawasan
waktu dan frekuensi)')
ylabel('Abs. Magnitude'), grid on
xlabel('Time [second]')
subplot(2,1,2), plot(t*50,m);axis ([0
100 0 15000])
ylabel('Power'), grid on
xlabel('Frequency [Hertz]')
%bandpass
n=1:length(t)/2+1;
L=(2./(n*pi)).*(sin(n*pi*0.12)sin(n*pi*0.08));
m=length(n);
for i=1:m
a(m+i-1)=L(i); %---two side
a(i)=L(m-i+1);
end
q=-length(t)/2:length(t)/2-1;
figure();
plot(q,a); axis ([-1000 1000 -.05
0.05])
title('Band Pass Filter')
ylabel('Abs. Magnitude'), grid on
xlabel('Time [second]')
%konvolusi
h=conv(L,y); %fungsi waktu
d=fft(h); %fungsi frekuensi
e=abs(d);
s=1:length(h);
% -----PLOTING HASIL
KONVOLUSI----figure();

subplot(2,1,1), plot(s,h);axis ([0 10 20 20])


title('Grafik Sinyal setelah di
BPF(20-30) (dalam kawasan waktu dan
frekuensi)')
ylabel('Abs. Magnitude'), grid on
xlabel('Time [second]')
subplot(2,1,2), plot(s/15,e); axis ([0
100 0 10000])
ylabel('Power'), grid on
xlabel('Frequency [Hertz]')
Visualisasinya :

-1

-2

3. Gelombang Non Stasioner


t=0:1/1000:1;
y1=sin(2*pi*13*t);
y2=sin(2*pi*43*t);
y3=sin(2*pi*94*t);
z1=y1+y2;
z2=y1+y2+y3;
for y=[1:1000];
y=[y1(1:250), z1(251:500), z2(501:750),
y1(751:1000)];
end;
x=[1:1000];

-3

100

200

300

400

500

600

700

800

900

1000

4. Gelombang Stasioner
Contoh dari gelombang stasioner sendiri
adalah gelombang sinus. Gelombang sinus
dengan fase mempunyai pengertian yang
hampir sama dengan gelombang sinus
biasa. Hanya saja gelombang ini memiliki
fase tertentu. Flowchartnya sama persis
dengan flowchart jumlahan sinus biasa,
tetapi pada masukan dan pernyataannya
ditambah fase. Hasil yang didapat
adalah sebagai berikut :

figure;
plot(x,y);

%jumlahan fungsi sinus dengan beda


fase
f1 = 5;

f2 = 20;
b1 = 5;
b2 = 1.5;
fase = 90;
dt = 0.002;
n = 500;
for i = 1 : n;
a1(i) = b1*sin(2*pi*f1*(i-1)+fase);
a2(i) = b2*sin(2*pi*f2*(i-1)+fase);
a = a1+a2;
end;
figure
subplot(3,1,1);plot(a1);xlabel('
');ylabel(' ');
subplot(3,1,2);plot(a2);xlabel('
');ylabel(' ');
subplot(3,1,3);plot(a);xlabel('
');ylabel(' ');
title ('hasil jumlahan gelombang sinus
dengan beda fase 90 derajat');
xlabel('time (s)');ylabel('amplitudo');
5. Koreksi NMO dan Slant Stacking

% KOREKSI NMO (NORMAL MOVE OUT)


clc;
dt = 0.002;
% Sampling time (s)
f = 40;
% Frekuensi Ricker
Wavelet (Hz)
n = 50;
% Jumlah sampel
nk = n;
% Ricker Wavelet
for i=1:n
tr = (i-1)*dt;
kr = (1-2*pi^2*f^2*tr^2)*exp(pi^2*f^2*tr^2);
rk(n-i+1) = kr;
rk(n+1) = kr;

end
n = 2*n;
% Model Satu Lapis Mendatar
x = 7.5;
% Offset (m)
dx = 15;
% Interval Geophone (m)
trace = 24;
% Jumlah Coverage
v1 = 500;
% Kecepatan Lapisan 1
(m/s)
v2 = 2500;
% Kecepatan Lapisan 1
(m/s)
d = 200;
% Ketebalan Lapisan 1 (m)
m = 1200;
% Jumlah Sampel
r = (v2-v1)/(v2+v1);

% Koefisien Refraksi

k = n+m-1;
for i=1:trace
t0 = (2*d)/v1;
t = sqrt(t0^2 + (x^2/v1^2));
tx = x/v1;
l = round(t/dt);
lx = round(tx/dt);
for j=1:m
y(j) = 0.0;
end
y(l) = r;
z = conv(y,rk);
for j=1:k-nk
zx(j) = z(j);
end
for j=1:k-nk
b(j,i) = zx(j);
end
x = x+dx;
end
k = k-nk;
% Ploting Rekaman Seismik Sintetik

figure;
clf;
subplot(1,2,1);
title('Model Rekaman Seismik Pantul 1
Lapis');
xlabel('Jarak X (m)');
ylabel('Waktu t (s)');

end

for i=1:k
zs(i) = 0.0;
end

Tgeo(i) = t;
xoff = xoff + dx;
end

T=0:dt:2;

% Menghitung moveout untuk setiap trace


Dtn(1) = 0;
% Koreksi Moveout
geophone (trace) 1
% Trace 1 sebagai acuan
for i = 2:trace
% Rumus (4.53) dari Telford
(hal 163)
Dtn(i) = (Xgeo(i)^2/(2*v1^2*Tgeo(1)))*(1(Xgeo(i)/(4*d))^2);
end

for i=1:trace;
hold on;
axis ij;
for j=1:k
y(j) = b(j,i);
end
for j=1:k
zs(j) = zs(j) + y(j);
end
plot(y(1:800)+i, T(1:800));
end
subplot(1,2,2);
plot(zs(1:800), T(1:800));
grid on;
title('Hasil Stacking 24 Trace');
axis ij;
% NMO CORRECTION
x = 7.5;
% Offset (m)
% Colecting data geophone
Xgeo(1) = x;
% Jarak geophone 1 ke
source = offset
for i = 2:trace
Xgeo(i) = Xgeo(1) + ((i-1)*dx);

% Collecting data traveltime


xoff = x;
for i = 1:trace
t0 = (2*d)/v1;
t = sqrt(t0^2 + (xoff^2/v1^2));

% Traveltime setelah koreksi NMO


for i=1:trace
Tcorr(i) = Tgeo(i)-Dtn(i);
end
xoff = x;
k = n+m-1;
for i=1:trace
Tx = Xgeo(i)/v1;
Lcorr = round(Tcorr(i)/dt);
Lx = round(Tx/dt);
for j=1:m
Ycorr(j) = 0.0;
end
Ycorr(Lcorr) = r;
Zcorr = conv(Ycorr,rk);
for j=1:k-nk

% Plot Rekaman Seismik Sintetik Terkoreksi


NMO
figure;
clf;
subplot(1,2,1);
title('Model Rekaman Setelah Koreksi
NMO');
xlabel('Jarak X(m)');
ylabel('Waktu t(s)');

subplot(1,2,2);
plot(ZS(1:800), TT(1:800));
grid on;
title('Hasil Stacking 24 Trace');
axis ij;
Model Rekaman Seismik Pantul 1 Lapis
0

Waktu t (s)

ZXcorr(j) = Zcorr(j);
end
for j=1:k-nk
Bcorr(j,i) = ZXcorr(j);
end
xoff = xoff + dx;
end
k = k-nk;

0.2

0.2

0.4

0.4

0.6

0.6

0.8

0.8

1.2

1.2

1.4

1.4

1.6

for i=1:k
ZS(i) = 0.0;
end

plot(Ycorr(1:800)+i, TT(1:800));
end
6. Pencarian Nilai a,b dan c
Dengan Tranformasi Laplace
(s + 3s + 2) (s) = 10/s + 2s -4

Waktu t(s)

for i=1:trace;
hold on;
axis ij;
for j=1:k
Ycorr(j) = Bcorr(j,i);
end
for j=1:k
ZS(j) = ZS(j) + Ycorr(j);
end

10
20
Jarak X (m)

30

Model Rekaman Setelah Koreksi NMO


0

TT=0:dt:2;

Hasil Stacking 24 Trace


0

1.6
-1

0.4

0.4

0.6

0.6

0.8

0.8

1.2

1.2

1.4

1.4

10
20
Jarak X(m)

30

1.6
-10

(s2 + 3s + 2) (s) = 10 + 2s2 -4s


(s) =

Hasil Stacking 24 Trace

0.2

0.2

1.6

10

20

(s) =

(s) = +

% ====================
% Melipat Rekaman Data
% ====================
for i=1:24;
for j=1:700;
c(j,i)=b(j,24-i+1);
c(j,24+i)=b(j,i);
end;
end;
%
=================================
====
% Menggambar Hasil Melipat
Rekaman Data
%
=================================
====
figure;
for i=1:50;
hold on;
grid on;
axis ij;
for j=1:k; y(j)=c(j,i); end;
plot(y(1:k)+i,tt(1:k));
end;

(s) =
{

} {

} {

(s) =

(s) =

2a = 10 a = 5
a+b+c = 2
2

5+b+c =

b+c = -3
3a+2b+c = -4 15+2b+c = -4
2b+c = -19

= -16

b+c = -3 c = -3 + 16 = 13
Jadi a=5, b=-16, dan c=13 maka (s) =
+

7. Melipat data Hiperbola


load b;
k=700;
figure;
% ===============================
% Model seismik setengah bagian
% ===============================
for i=1:24;
hold on;
grid on;
axis ij;
for j=1:k; y(j)=b(j,i); end;
plot(y(1:k)+i,tt(1:k));
end;

0.2

0.4

0.6

0.8

1.2

1.4

10

15

20

25

30

35

40

45

50

8. Koreksi DMO

%membaca rekaman seismik


refleksi/lapisan miring (b)
%----------------------------------clc;
load b;
k=900;
dt=0.002;
tt=0:dt:2.0;
figure;
title('Rekaman data seismik
refleksi lapisan miring');
xlabel('geofon');
ylabel('time travel (ms)');
for i=1:24;
hold on;
grid on;
axis ij;
for j=1:k; y(j)=b(j,i);end;
plot(y(1:k)+i, tt(1:k));
end;

for i=1:trace;
l=tx(i);
for j=1:k;
c(j,i)=b(l+j,i);
end;
end;
%menampilkan hasil koreksi DMO
for i=1:trace;
hold on;
grid on;
axis ij;
for j=1:k; z(j)=c(j,i);end;
plot(z(1:k)+i,tt(1:k));
end;

Rekaman data seismik refleksi lapisan miring


0
0.2
0.4

%interval geophone
%jumlah geophone
%jumlah data per trace

0.6

time travel (ms)

x=0;
dx=20;
trace=24;
m=1200;

%melakukan koreksi DMO terhadap


data seismik
%-------------------------------------------

0.8
1
1.2

%proses koreksi DMO


%----------------------------------

1.4
1.6

t0=2*d/v1;
vnmo = 500/cos(dip);
%kecepatan NMO untuk lapisan
miring
figure;
title('Rekaman data seismik
setelah dikoreksi DMO');
xlabel('geofon');
ylabel('time travel');

1.8

10

15

20

25

geofon

Rekaman data seismik setelah dikoreksi DMO


0
0.2
0.4

for i=1:trace;
a=(x/(vnmo*t0))^2;
tnmo(i)=t0*(sqrt(1+a)-1);
tx(i)= round(tnmo(i)/dt);
x=x+dx;
end;

0.6

time travel

%menghitung koreksi DMO


%----------------------------------

0.8
1
1.2
1.4
1.6
1.8

10

15
geofon

20

25

You might also like