Anda di halaman 1dari 11

MODUL PRAKTIKUM

ANALISIS SINYAL GEOFISIKA

Disusun Oleh:
Intan Andriani Putri, S.Si., M.T

PROGRAM STUDI TEKNIK GEOFISIKA


JURUSAN TEKNOLOGI PRODUKSI DAN INDUSTRI
INSTITUT TEKNOLOGI SUMATERA
2021
TUJUAN
Mahasiswa memahami teorema konvolusi dan mampu menjabarkannya secara grafis pada domain
waktu serta domain frekuensi.

TEOREMA KONVOLUSI

Teorema konvolusi adalah karakteristik penting dari Transformasi Fourier. Teorema ini
menyatakan bahwa Konvolusi pada domain waktu sama dengan perkalian pada domain frekuensi,
atau sebaliknya. Untuk memahami teorema tersebut, ambil dua sinyal sebagai contoh 𝑥(𝑡) dan
𝑦(𝑡).

𝐹{𝑥(𝑡) ∗ 𝑦(𝑡)}(𝑓) = 𝐹{𝑥(𝑡)}(𝑓) ∙ 𝐹{𝑦(𝑡)}(𝑓) .......................................................................... (1)


Di mana:
𝐹{𝑥(𝑡)}(𝑓) adalah hasil Transformasi Fourier dari 𝑥(𝑡) pada frekuensi 𝑓,
𝐹{𝑦(𝑡)}(𝑓) adalah hasil Transformasi Fourier dari 𝑥(𝑡) pada frekuensi 𝑓, dan
𝐹{𝑥(𝑡) ∗ 𝑦(𝑡)}(𝑓) adalah spectrum dari hasil konvolusi 𝑥(𝑡) dan 𝑦(𝑡).
Dengan kata lain kita dapat menyatakan bahwa spectrum hasil konvolusi dua sinyal sama dengan
perkalian spectrum masing – masing sinyal. Konvolusi dari 𝑥(𝑡) dan 𝑦(𝑡) yaitu:

𝑧(𝑡) = 𝑥(𝑡) ∗ 𝑦(𝑡)



𝑧(𝑡) = ∫−∞ 𝑥(𝜏)𝑦(𝑡 − 𝜏)𝑑𝜏
Pada praktiknya menjelaskan bahwa dalam melakukan konvolusi, mirroring dan shifting
dilakukan terhadap salah satu sinyal dalam domain waktu. Setelah itu, kedua sinyal dikalikan dan
integrasi dilakukan untuk bagian yang mengalami overlap.

A. TUGAS PENDAHULUAN
1. Sebutkan perbedaan DFT dan FT dalam hal periode
2. Buktikan persamaan (1)
3. Jelaskan yang dimaksud dengan konvolusi sirkular
4. Apa itu wavelet Ricker dan tuliskan persamaannya
B. PRAKTIKUM
B.1 KONVOLUSI DALAM DOMAIN WAKTU DAN PERKALIAN SPEKTRUM
SINYAL
Pada bagian ini, kita akan melakukan konvolusi dari dua sinyal serta mengamati hasilnya pada
domain waktu serta hasil perkalian sinyal tersebut dalam domain frekuensi. Di sini kita
menggunakan sinyal kontinu yang didisktitisasi pada domain waktu dengan sampling frequency
sebesar 𝑓𝑠 = 100 𝐻𝑧.
1. Buat script baru dengan nama convT01_NIM_nama
2. Definisikan sampling frequency, durasi waktu, dan deret waktu yang kita inginkan dengan
menjalankan script berikut pada Editor:
clc; clear all;
Fs = 100; % sampling frequency (Hz)
T = 10; % waktu (s)
t = -T:1/Fs:T; % vektor waktu (s)
f = linspace(-Fs/2, Fs/2, length(t)); % vektor frekuensi (Hz)
3. Definisikan dua sinyal input yang akan dikunvolusikan yaitu:
𝑥(𝑡) yang merupakan fungsi impuls causal, dan
𝑦(𝑡) yang merupakan sinc function dikuadratkan
dengan menjalankan script berikut pada Editor:
x = exp(-abs(t));
x(1:(length(x)-1)/2)=0;
y = (sinc(t)).^2;
4. Konvolusikan kedua sinyal 𝑥(𝑡) dan 𝑦(𝑡) untuk mendapatkan hasil konvolusi pada domain
waktu 𝑧(𝑡) dengan menjalankan script berikut pada Editor:
z = conv(x, y, 'same')/Fs;
5. Plot sinyal input 𝑥(𝑡) dan 𝑦(𝑡) serta hasil konvolusi pada domain waktu 𝑧(𝑡) dengan
menjalankan script berikut pada Editor:
subplot(2,2,1)
plot(t,x,'b','LineWidth',1.5)
xlabel('waktu (s)')
ylabel('Amplitude')
legend ('x(t)')
title('Sinyal x(t)')
grid on
subplot(2,2,2)
plot(t,y,'r','LineWidth',1.5)
xlabel('waktu (s)')
ylabel('Amplitude')
legend ('y(t)')
title('Sinyal y(t)')
grid on
subplot(2,2,3)
plot(t,z,'k','LineWidth',1.5)
xlabel('waktu (s)')
ylabel('Amplitude')
legend ('z(t)')
title('Hasil konvolusi x(t) dan y(t)')
grid on
Sehingga diperoleh gambar:

Gambar 1. Berurutan dari kiri atas ke kanan bawah: Sinyal input 𝑥(𝑡); sinyal input 𝑦(𝑡); dan
hasil konvolusi pada domain waktu 𝑧(𝑡)
6. Lakukan FFT terhadap sinyal input dan hasil konvolusi 𝑧(𝑡), lalu plot hasilnya dengan
menjalankan script berikut pada Editor:
X = abs(fftshift(fft(x)/Fs));
Y = abs(fftshift(fft(y)/Fs));
Z = abs(fftshift(fft(z)/Fs));
subplot(2,2,1)
plot(f,X,'b','LineWidth',1.5)
xlabel('frekuensi (Hz)')
ylabel('abs(X(f))')
xlim([-2 2])
ylim([0 1])
title('Spektrum amplitudo X(f)')
grid on
subplot(2,2,2)
plot(f,Y,'r','LineWidth',1.5)
xlabel('frekuensi (Hz)')
ylabel('abs(Y(f))')
legend ('Y(f)')
title('Spektrum amplitudo Y(f)')
xlim([-2 2])
ylim([0 1])
grid on
subplot(2,2,3)
plot(f,Z,'k','LineWidth',1.5)
xlabel('frekuensi (Hz)')
ylabel('abs(Z(f))')
legend ('Z(f)')
xlim([-2 2])
ylim([0 1])
title('Spektrum hasil konvolusi Z(f)')
grid on
Sehingga diperoleh gambar:

Gambar 2. Berurutan dari kiri atas ke kanan bawah: Spektrum sinyal input 𝑋(𝑓); spektrum sinyal
input 𝑌(𝑓); dan spektrum hasil konvolusi pada domain waktu 𝑍(𝑓)
7. Kalikan spektrum kedua input sehinggal menghasilkan 𝐴(𝑓) lalu plot hasilnya dengan
𝑍(𝑓) dengan menjalankan script berikut pada Editor:
A = X.*Y;
subplot(2,2,1)
plot(f,Z,'k','LineWidth',1.5)
xlabel('frekuensi (Hz)')
ylabel('abs(Z(f))')
legend ('Z(f)')
grid on
xlim([-2 2])
ylim([0 1])
title('Spektrum hasil konvolusi Z(f)')
subplot(2,2,2)
plot(f,A, 'b', 'LineWidth', 1.5)
xlabel('frekuensi (Hz)')
ylabel('abs(Z(f))')
legend ('A(f)')
grid on
xlim([-2 2])
ylim([0 1])
title('Hasil kali spektrum X(f) dan Y(f)')
Sehingga diperoleh gambar:

(a) (b)
Gambar 3. (a) Spektrum hasil konvolusi pada domain waktu 𝑍(𝑓); dan (b) Hasil perkalian
spektrum input pada domain frekuensi
8. Amati hasil dan tuliskan kesimpulan yang diperoleh dari percobaan ini pada laporan
sementara
9. Kumpulkan script yang dibuat

B.2 KONVOLUSI DALAM DOMAIN WAKTU DAN FREKUENSI


Pada bagian ini, kita akan melakukan konvolusi dari dua sinyal serta mengamati hasilnya pada
domain waktu dan frekuensi. Di sini kita menggunakan dua sinyal causal yang merupakan fungsi
eksponensial dan sinusoidal.
1. Buat script baru dengan nama convT02_NIM_nama
2. Definisikan sinyal input 𝑥(𝑡) dan 𝑦(𝑡) serta lakukan konvolusi pada domain waktu untuk
memperoleh 𝑧(𝑡) dengan menjalankan script berikut pada Editor:
clc; clear all;
t = 0:1:128; % vektor waktu dalam sekon
x = exp(-.1*t); % sinyal x
y = sin(2*pi*t/32); % sinyal y
z = conv(x, y); % hasil konvolusi x dan y dalam domain
waktu
3. Lakukan konvolusi pada domain frekuensi dengan menjalankan script berikut pada Editor:
z_fft = real(ifft(fft(x).*fft(y)));
4. Plot sinyal input, hasil yang diperoleh melalui konvolusi pada domain waktu juga pada
domain frekuensi dengan menjalankan script berikut pada Editor:
subplot(2,1,1)
plot(x, 'k', 'LineWidth', 1.5)
hold on
plot(y, 'b', 'LineWidth', 1.5)
hold on
plot(z, 'r', 'LineWidth', 1.5)
hold off
xlabel('waktu (s)')
ylabel('amplitude')
xlim([0 200])
ylim([-6 6])
legend ('x(t)', 'y(t)', 'z(t)')
title('Konvolusi x(t) dan y(t) pada domain waktu menghasilkan
z(t)')
grid on
subplot(2,1,2)
plot(x, 'k', 'LineWidth', 1.5)
hold on
plot(y, 'b', 'LineWidth', 1.5)
hold on
plot(z_fft, 'r', 'LineWidth', 1.5)
hold off
xlabel('waktu (s)')
ylabel('amplitude')
xlim([0 200])
ylim([-6 6])
legend ('x(t)', 'y(t)', 'z(t)')
title('Konvolusi x(t) dan y(t) pada domain frekuensi melalui
perkalian spektrum')
grid on
Sehingga diperoleh gambar:

Gambar 4. Atas: sinyal input serta hasil konvolusi pada domain waktu; dan bawah: sinyal input
serta hasil konvolusi pada domain frekuensi
5. Amati hasil dan tuliskan kesimpulan yang diperoleh dari percobaan ini pada laporan
sementara
6. Kumpulkan script yang dibuat
B.3 KONVOLUSI DALAM DOMAIN WAKTU DAN FREKUENSI DENGAN ZERO
PADDING
Ketika kita melakukan transformasi fourier diskrit, kita menggunakan asumsi bahwa sinyal input
merupakan satu periode. Maka dari itu, pada saat melakukan konvolusi pada domain frekuensi
yang dilakukan bukan konvolusi linier namun konvolusi sirkular. Untuk mengatasi isu tersebut,
kita dapat melakukan zero padding pada domain waktu. Jika input sinyal kita memiliki panjang
L1 dan L2, zero padding perlu dilakukan sepanjang 2𝛾
1. Buat script baru dengan nama convT03_NIM_nama
2. Definisikan sinyal input 𝑥(𝑡) dan 𝑦(𝑡) serta lakukan konvolusi pada domain waktu untuk
memperoleh 𝑧(𝑡) dengan menjalankan script berikut pada Editor:
clc; clear all;
t = 0:1:128;
x = exp(-.1*t);
y = sin(2*pi*t/32);
z = conv(x, y);
3. Lakukan zero padding pada sinyal input untuk memperoleh 𝑥2 (𝑡) dan 𝑦2 (𝑡) yang telah
dillakukan zero padding dengan menjalankan script berikut pada Editor:
a = length(x);
b = length(y);
nfft = 2^nextpow2(a+b-1);
x2 = [x, zeros(1, nfft-a)];
y2 = [y, zeros(1, nfft-b)];
t2 = [0:1:length(x2)-1];
4. Lakukan konvolusi melalui FFT pada 𝑥2 (𝑡) dan 𝑦2 (𝑡) lalu plot hasilnya dengan
menjalankan script berikut pada Editor:
z_fft = real(ifft(fft(x2).*fft(y2)));
subplot(2,1,1)
plot(x, 'k', 'LineWidth', 1.5)
hold on
plot(y, 'b', 'LineWidth', 1.5)
hold on
plot(z, 'r', 'LineWidth', 1.5)
hold off
xlabel('waktu (s)')
ylabel('amplitude')
xlim([0 200])
legend ('x(t)', 'y(t)', 'z(t)')
title('Konvolusi x(t) dan y(t) pada domain waktu menghasilkan
z(t)')
grid on
subplot(2,1,2)
plot(x2, 'k', 'LineWidth', 1.5)
hold on
plot(y2, 'b', 'LineWidth', 1.5)
hold on
plot(z_fft, 'r', 'LineWidth', 1.5)
hold off
xlabel('waktu (s)')
ylabel('amplitude')
xlim([0 200])
legend ('x(t)', 'y(t)', 'z(t)')
title('Konvolusi x(t) dan y(t) pada domain frekuensi melalui
perkalian spektrum')
grid on
Sehingga diperoleh gambar:

Gambar 5. Atas: sinyal input serta hasil konvolusi pada domain waktu setelah dilakukan zero
padding; dan bawah: sinyal input serta hasil konvolusi pada domain frekuensi setelah dilakukan
zero padding
5. Amati hasil dan tuliskan kesimpulan yang diperoleh dari percobaan ini pada laporan
sementara
6. Kumpulkan script yang dibuat

B.4 MEMBUAT TRACE MELALUI KONVOLUSI PADA DOMAIN WAKTU DAN


FREKUENSI
Pada bagian ini mahasiswa akan membuat trace seismik melalui konvolusi dari satu buah reflector
dan beberapa reflector dengan wavelet Ricker.
1. Buat script baru dengan nama convT04_NIM_nama
2. Buat vector koefisien refleksi dengan koefisien refleksi pada kedalaman 50 m sebesar 1
dengan menjalankan script berikut pada Editor:
KR = zeros(1, 150);
KR(50) = 1;
3. Buat vector wavelet Ricker dengan sampling rate 2 ms yang memiliki frekuensi dominan
sebesar 35 Hz dengan perekaman selama 0,1 s. Ketikan script berikut pada Editor:
dt = 0.002; % Sampling rate (s)
fs = 1/dt; % Sampling frequency (Hz)
fd = 35; % Dominant frequency (Hz)
RL = .1; % Record length (s)
tw = -RL/2:dt:RL/2; % time vector (s))
tw = tw'; % time vector that transposed
a = 1-2*pi^2*fd^2*(tw).^2;
b = exp(-pi^2*fd^2*(tw).^2);
w = a.*b;
4. Lakukan konvolusi pada domain waktu dan frekuensi seperti pada contoh sebelumnya.
5. Potong hasil konvolusi pada bagian awal sebanyak 𝑑 di mana:
𝑙𝑒𝑛𝑔𝑡ℎ(𝑤) + 1
𝑑=
2
Untuk menempatkan peak gelombang tepat pada reflector.
6. Plot hasil yang diperoleh sebagai berikut

Gambar 6. Atas: trace seismik hasil konvolusi pada domain waktu; dan Bawah: trace seismik
hasil konvolusi pada domain frekuensi
7. Buat trace seismik yang merupakan hasil konvolusi wavelet Ricker pada bagian sebelumnya
dengan koefisien refleksi yang diperoleh dari parameter fisis sebagai berikut:
Lapisan ke-1 Kedalaman (m) Kecepatan (m/s) Densitas (gr/cc)
1 0 – 50 500 1,2
2 50 – 100 1600 1,68
3 100 – 150 1800 2,15
4 150 - 200 1600 1,68

8. Amati hasil dan tuliskan kesimpulan yang diperoleh dari percobaan ini pada laporan akhir
beserta script yang dibuat.

Anda mungkin juga menyukai