Konvolusi, Korelasi Dan Fast Fourier Transform (FFT) [PDF]

  • Author / Uploaded
  • Kinan
  • 0 0 0
  • Suka dengan makalah ini dan mengunduhnya? Anda bisa menerbitkan file PDF Anda sendiri secara online secara gratis dalam beberapa menit saja! Sign Up
File loading please wait...
Citation preview

Makalah Pengolahan Sinyal



KONVOLUSI, KORELASI DAN FAST FOURIER TRANSFORM (FFT)



OLEH KELOMPOK 4



SIDRATUL AKBAR (F1H1 14 029) ERWIN CHAERUL ACHMAD (F1H1 14 045) MUH. OLGA ALFIADI (F1H1 14 061) MUH. IKBAL (F1H1 14 065) RISMAN (F1H1 14 075) SAKINA (F1H1 14 077) WAHYU APRISTA TAJUDDIN (F1H1 14 087) WD. SITTI NUR ARSHA (F1H1 14 091)



JURUSAN TEKNIK GEOFISIKA FAKULTAS ILMU DAN TEKNOLOGI KEBUMIAN UNIVERSITAS HALU OLEO KENDARI 2017



BAB I PENDAHULUAN



A. Latar Belakang Perkembangan ilmu pengetahun saat ini sangat pesat. Hal ini dibuktikan dengan banyaknya program-program yang dikembangkan, salah satunya adalah MATLAB. Melalui program ini dapat membantu menyelesaikan masalah-masalah yang dalam pengerjaan analitiknya cukup rumit. Beberapa konsep yang dapat diselesaikan dengan menggunakan MATLAB adalah konsep konvolusi, korelasi dan Fast Fourier Transform (FFT). Secara analitik ketiga konsep ini dapat diselesaikan, namun untuk lebih memudahkan dapat diselesaikan secara numerik. Oleh karena itu, untuk menyelesaikan secara numerik konsep-konsep tersebut maka perlu memahami konsep dasar dari



konvolusi, korelasi dan Fast Fourier



Transform (FFT) sehingga dibuatlah makalah tentang “Konvolusi, Korelasi dan Fast Fourier Transform (FFT)” untuk mengetahui proses penyelesaiannya baik secara analitik maupun numeriknya.



B. Tujuan Tujuan dari pembuatan makalah “Konvolusi, Korelasi dan Fast Fourier Transform (FFT) adalah sebagai berikut. 1. Untuk memahami secara konsep maupun numerik tentang konvolusi. 2. Untuk memahami secara konsep maupun numerik tentang korelasi. 3. Untuk memahami secara konsep maupun numerik tentang Fast Fourier Transform (FFT).



BAB II KONVOLUSI, KORELASI DAN FAST FOURIER TRANSFORM (FFT)



A. Konvolusi Konvolusi didefinisikan sebagai operasi penjumlahan dua fungsi setelah fungsi satu dicerminkan dan digeser. Konvolusi antara dua sinyal diskrit x[n] dan h[n] dapat dinyatakan sebagai



(2.1) Contoh 1:



Panjang konvolusi P = M + L – 1= 6 + 6 – 1 = 11 Dimana M = ukuran sinyal x L = ukuran sinyal h



langkah-langkah konvolusi :



Gambar 2.1 Sinyal-sinyal diskrit pada contoh 1



Contoh 2: Diberikan dua isyarat diskrit sbb x[n] = [3 11 7 0 -1 4 2] dengan -3 ≤ n ≤ 3 dan



h[n] = [2 3 0 -5 2 1] dengan -1 ≤ n ≤ 4 maka tentukanlah konvolusi kedua isyarat yaitu y[n] = x[n] * h[n]



Penyelesaian: Kedua isyarat dapat digambarkan pada kedua gambar berikut ini.



Gambar 2.2 Sinyal diskrit x(n) pada contoh 2



Gambar 2.3 Sinyal diskrit h(n) pada contoh 2



Dengan mencari semua nilai y[n] yang ada maka akan dihasilkan isyarat y[n] sbb: y[n] = [6 31 47 6 -51 -5 41 18 -22 -3 8 2] Bilangan bergaris bawah menyatakan data yang berada pada posisi n = 0. Untuk mencari nilai n terendah dan tertinggi pada y[n] dimana y[n] ada digunakan rumus nyb = nxb + nhb nye = nxe + nhe dengan nyb : nilai n terendah pada y[n] nye : nilai n tertinggi pada y[n] nxb : nilai n terendah pada x[n] nxe : nilai n tertinggi pada x[n] nhb : nilai n terendah pada h[n] nhe : nilai n tertinggi pada h[n] Sehingga dapat diketahui nyb = -3 + (-1) = -4 nye = 3 + 4 = 7 atau ny = [-4 -3 -2 -1 0 1 2 3 4 5 6 7] Hasil konvolusi dapat digambarkan sbb:



Gambar 2.4 Hasil konvolusi sinyal x(n) dan h(n) pada contoh 2



Contoh soal di atas dapat diselesaikan menggunakan bantuan program Matlab. Matlab menyediakan fungsi untuk melakukan operasi konvolusi yaitu conv.m. Sintaks penulisannya adalah y = conv(x,h) dengan y adalah hasil konvolusi, x dan h adalah dua isyarat yang dikonvolusikan. Untuk contoh soal di atas dapat diselesaikan dengan program Matlab sbb.



% Konvolusi menggunakan Matlab % x[n] = [3 11 7 0 -1 4 2] % h[n] = [2 3 0 -5 2 1] clear all; % membersihkan semua variabel clc; % membersihkan editor command window x = [3 11 7 0 -1 4 2]; % isyarat x[n] h = [2 3 0 -5 2 1]; % isyarat h[n] y = conv(x,h) % operasi konvolusi y[n]=x[n]*h[n] Hasil eksekusi program tsb adalah y = 6 31 47 6 -51 -5 41 18 -22 -3 8 2 Namun Matlab menganggap bahwa semua isyarat dimulai pada saat n = 0, dan pada kenyataannya tidak selalu demikian (seperti pada contoh soal di atas). Untuk mengetahui pewaktuannya maka dapat digunakan rumus untuk mencari nilai n terendah dan tertinggi pada y[n] seperti telah dijelaskan di atas. Dapat dibuat fungsi untuk melakukan operasi konvolusi sekaligus mengetahui pewaktuannya.



function [y ny] = conv_m(x,nx,h,nh) % Fungsi untuk memodifikasi rutin konvolusi conv % [y ny] = hasil konvolusi % [x nx] = sinyal pertama % [h nh] = sinyal kedua nyb = nx(1) + nh(1) % n terendah dari y[n] nye = nx(length(x)) + nh(length(h)) % n tertinggi dari y[n] ny = [nyb:nye] % jaungkauan n dari y[n]



y = conv(x,h) % mencari y[n]= x[n]*h[n] Fungsi yang telah dibuat dapat dipanggil dalam program lain, seperti contoh berikut untuk memanggil fungsi conv_m.m. % Konvolusi menggunakan fungsi yang telah dimodifikasi % x[n] = [3 11 7 0 -1 4 2] % h[n] = [2 3 0 -5 2 1] clear all; % membersihkan semua variabel clc; % membersihkan editor x = [3 11 7 0 -1 4 2]; % isyarat x[n] nx = [-3:3]; % jangkauan x[n] h = [2 3 0 -5 2 1]; % isyarat h[n] nh = [-1:4]; % jangkauan h[n] [y ny] = conv_m(x, nx, h, nh) % konvolusi y[n]=x[n]*h[n] stem(ny, y) % menggambar y[n] Hasil eksekusi program sama dengan hasil konvolusi yang telah dilakukan di atas.



B. Korelasi Korelasi adalah operasi yang digunakan dalam berbagai aplikasi dalam bidang pengolahan isyarat secara digital. Korelasi merupakan ukuran derajat kesamaan antara dua isyarat atau sekuens. Jika diketahui x[n] dan y[n] dengan energi yang terbatas maka kros-korelasi antara x[n] dan y[n] didefinisikan sbb (2.2) Indeks l disebut parameter pergeseran. Jika y[n] = x[n] maka diperoleh autokorelasi dan dinyatakan sbg



(2.3) Autokorelasi menyatakan ukuran kesamaan terhadap dirinya sendiri (antara beberapa penjajaran yang berbeda).



Konvolusi antara dua isyarat x[n] dan h[n] dinyatakan sbb



(2.4) Dengan membandingkan ketiga persamaan di atas, maka kros-korelasi dapat dinyatakan kembali dalam bentuk (2.5) Dan autokorelasi dapat dinyatakan dalam bentuk (2.6)



C. Fast Fourier Transform (FFT) Fast Fourier Transform (FFT) yang ditemukan tahun 1965 merupakan pengembangan dari Fourier Transform (FT). Penemu FT adalah J. Fourier pada tahun 1822. FT membagi sebuah sinyal menjadi frekuensi yang berbeda-beda dalam fungsi eksponensial yang kompleks. Definisi Fast Fourier Transform (FFT) adalah metode yang sangat efisien untuk menghitung koefisien dari Fourier diskrit ke suatu finite sekuen dari data yang komplek. Karena substansi waktu yang tersimpan lebih dari pada metoda konvensional, fast fourier transform merupakan aplikasi temuan yang penting didalam sejumlah bidang yang berbeda seperti analisis spectrum, speech and optical signal processing, design filter digital. Algoritma FFT berdasarkan atas prinsip pokok dekomposisi perhitungan discrete fourier transform dari suatu sekuen sepanjang N kedalam transformasi diskrit Fourier secara berturut-turut lebih kecil. Cara prinsip ini diterapkan memimpin ke arah suatu variasi dari algortima yang berbeda, di mana semuanya memperbandingkan peningkatan kecepatan perhitungan. Fast Fourier Transform, adalah suatu algoritma untuk menghitung transformasi fourier diskrit dengan cepat dan efisien. Karena banyak sinyal-sinyal dalam sistem komunikasi yang bersifat kontinyu, sehingga untuk kasus sinyal kontinyu kita gunakan transformasi fourier. Transformasi Fourier didefinisikan oleh rumus:



(2.7) Dimana s(f) adalah sinyal dalam domain frekuensi (frequency domain), s(t) adalah sinyal dalam domain waktu (time domain), dan



adalah konstanta dari nilai



sebuah sinyal, f adalah frekuensi dan t adalah waktu. FFT (Fast Fourier Transform) merupakan salah satu metode untuk transformasi sinyal suara dalam domain waktu menjadi sinyal dalam domain frekuensi, artinya proses perekaman suara disimpan dalam bentuk digital berupa gelombang spectrum suara yang berbasis frekuensi sehingga lebih mudah dalam menganalisa spectrum frekuensi suara yang telah direkam.



Transformasi Fourier Diskrit (Discrete Fourier Transform) Untuk mengimplementasikan teknik Discrete Fourier Transform (DFT) pada suatu computer digital, perlu terlebih dahulu dilakukan diskritisasi dalam domain frekuensi. Berikut ini akan diilustrasikan konsep DFT dengan mengambil contoh sinyal disrete time x[n] sama dengan nol untuk semua bilangan bulat n < 0 dan semua bilangan bulat n ≥ N, dimana N adalah bilangan bulat positif. Pada dasarnya bilangan bulat N dapat dipilih menjadi sangat besar. Sebagai contoh N = 210 = 1024. Transformasi Fourier Diskrit Xk untuk sejumlah N titik data dari sinyal x[n] didefiniksikan oleh: 𝑁−1



𝑋𝑘 = ∑ 𝑥[𝑛]𝑒 −𝑗2𝜋𝑓𝑛/𝑁 , 𝑘 = 0,1,2, … , 𝑁 − 1



(2.8)



𝑛=0



Diman j adalah bilangan imajiner



(𝑗 = √1). Indeks n pada persamaan di atas



menyatakan variabel waktu t dalam bentuk diskrit dan pasangan transformasi frekuensi f dinyatakan dengan indeks k. dari pers. (2,8) tampak bahwa DFT Xk merupakan fungsi variabel diskrit (integer) k. dalam hal ini, Transformasi Fourier diskrit Xk dikarakterisasi dengan nilai N yakni X0, X1, X2,…,XN-1. Pada umumnya nilai-nilai pada pers. (2.8) merupakan bilangan kompleks, sehingga Xk dapat dituliskan sebagai: 𝑋𝑘 = |𝑋𝑘 |𝑒𝑥𝑝[𝑗/< 𝑋𝑘 ], 𝑘 = 0,1, … , 𝑁 − 1



(2.9)



Dimana |𝑋𝑘 | adalah magniutdo atau nilai mutlak dari 𝑋𝑘 dan < 𝑋𝑘 adalah besarnya sudut 𝑋𝑘 , sedangkan dalam bentuk kartesian 𝑋𝑘 dapat dituliskan sebagai: 𝑋𝑘 = 𝑅𝑘 + 𝑗𝐼𝑘 , 𝑘 = 0,1, … , 𝑁 − 1



(2.10)



Dimana 𝑅𝑘 adalah bagian riil dari 𝑋𝑘 dan mempunyai bentuk 𝑁−1



𝑅𝑘 = 𝑥(0) + ∑ 𝑥[𝑛]𝑐𝑜𝑠 𝑛=1



2𝜋𝑘𝑛 𝑁



(2.11)



Sedang 𝐼𝑘 adalah bagian dari imajiner dari 𝑋𝑘 dan mempunyai bentuk 𝑁−1



𝐼𝑘 = − ∑ 𝑥[𝑛]𝑠𝑖𝑛 𝑛=1



2𝜋𝑘𝑛 𝑁



(2.12)



Karena penjumlahan pada pers. (2.8) mempunyai nilai berhingga, maka DFT 𝑋𝑘 selalu dapat ditentukan. Penentuan nilai-nilai 𝑋𝑘 dapat dihitung dengan menggunakan penjumlahan berhingga pers. (2.8) melalui implementasi bahasa pemrograman MATLAB. Jika 𝑋𝑘 merupakan hasil DFT dengan jumlah titik data N dari x[n], maka x[n] dapat dicari dari 𝑋𝑘 dengan menerapkan Invers Discrete Fourier Transform (IDFT) yaitu 𝑁−1



𝑥[𝑛] = ∑ 𝑋𝑘 𝑒 𝑗2𝜋𝑘𝑛/𝑁 , 𝑘 = 0,1,2, … , 𝑁 − 1



(2.13)



𝑘=0



Karena penjumlahan pada pers. (2.13) juga merupakan penjumlahan berhingga, maka invers DFT dapat dihitung dengan melakukan evaluasi penjumlahan dalam pers. (2.13).



BAB III SKRIPT PROGRAM



A. Konvolusi 



Skript 1



% Konvolusi menggunakan Matlab % x[n] = [3 11 7 0 -1 4 2] % h[n] = [2 3 0 -5 2 1] clear all; % membersihkan semua variabel clc; % membersihkan editor command window x = [3 11 7 0 -1 4 2]; % isyarat x[n] h = [2 3 0 -5 2 1]; % isyarat h[n] y = conv(x,h) % operasi konvolusi y[n]=x[n]*h[n] 



Skript 2



function [y ny] = conv_m(x,nx,h,nh) % Fungsi untuk memodifikasi rutin konvolusi conv % [y ny] = hasil konvolusi % [x nx] = sinyal pertama % [h nh] = sinyal kedua nyb = nx(1) + nh(1) % n terendah dari y[n] nye = nx(length(x)) + nh(length(h)) % n tertinggi dari y[n] ny = [nyb:nye] % jaungkauan n dari y[n] y = conv(x,h) % mencari y[n]= x[n]*h[n]



% Konvolusi menggunakan fungsi yang telah dimodifikasi % x[n] = [3 11 7 0 -1 4 2] % h[n] = [2 3 0 -5 2 1] clear all; % membersihkan semua variabel clc; % membersihkan editor x = [3 11 7 0 -1 4 2]; % isyarat x[n]



nx = [-3:3]; % jangkauan x[n] h = [2 3 0 -5 2 1]; % isyarat h[n] nh = [-1:4]; % jangkauan h[n] [y ny] = conv_m(x, nx, h, nh) % konvolusi y[n]=x[n]*h[n] stem(ny, y) % menggambar y[n]



B. Korelasi 



Skript Autokorelasi



W1=[0 0 2 1 -1]; % z=xcorr(W1) n=[-4:1:4]; % n=[-7:1:7]; [output,lags] = xcorr(W1) stem(n,'sb','LineWidth',2); xlabel('n(sample ke n)','FontSize',14); ylabel('W1*W1','FontSize',14); grid on; set(gca,'Ygrid','on','XTick',n); set(gca,'Xgrid','on','YTick',-2:1:6);



W2=[0 0 2 1 -1]; % z=xcorr(W2) n=[-4:1:4]; % n=[-7:1:7]; [output,lags] = xcorr(W2) stem(n,'sb','LineWidth',2); xlabel('n(sample ke n)','FontSize',14); ylabel('W2*W2','FontSize',14); grid on; set(gca,'Ygrid','on','XTick',n); set(gca,'Xgrid','on','YTick',-2:1:6);







Skript Kroskorelasi



W1=[2 1 -1 0 0]; W2=[0 0 2 1 -1]; % z=xcorr(W1,W2) n=[-4:1:4]; % n=[-7:1:7]; [output,lags] = xcorr(W1,W2) stem(n,'sb','LineWidth',2); xlabel('n(sample ke n)','FontSize',14); ylabel('W1*W2','FontSize',14); grid on; set(gca,'Ygrid','on','XTick',n); set(gca,'Xgrid','on','YTick',-2:1:6);



W2=[0 0 2 1 -1]; W1=[2 1 -1 0 0]; % z=xcorr(W2,W1) n=[-4:1:4]; % n=[-7:1:7]; [output,lags] = xcorr(W2,W1) stem(n,'sb','LineWidth',2); xlabel('n(sample ke n)','FontSize',14); ylabel('W2*W1','FontSize',14); grid on; set(gca,'Ygrid','on','XTick',n); set(gca,'Xgrid','on','YTick',-2:1:6);



C. Fast Fourier Transform (FFT) 



Skript Program



%Transformasi Fourier Diskrit %Discrete Fourier Transform (DFT) %===================================== function Xk=dft(xn) [N,M]=size(xn); if M~=1 %Pastikan bahwa xn merupakan vektor kolom xn=xn';N=M; end Xk=zeros(N,1); n=0:N-1 for k=0:N-1 Xk(k+1)=exp(-j*2*pi*k*n/N)*xn; end %end of function %Created by:La Hamimu @2005



clear all clc xn=[0 1 1 1 1 1 1 1 1 1 1 1 0 0]'; Xk=dft(xn) magXk=abs(Xk) sudutXk=angle(Xk) x=0:length(xn)-1; subplot(1,2,1) stem(x,magXk) title('Bagian Magnitudo') xlabel('frekuensi dalam unit x') ylabel('Magnitudo (|Xk|)') subplot(1,2,2)



stem(x,sudutXk) title('Bagian Fase Sudut') xlabel('frekuensi dalam unit x') ylabel('Sudut')



DAFTAR PUSTAKA Hamimu, La. 2017. “Implementasi Transformasi Fourier Diskrit (Discrete Fourier Transform)”. Kendari: Universitas Halu Oleo. Kurniawan, Irwan. Tth. “Diktat / Bahan Ajar Mata Kuliah Pengolahan Sinya”. Jambi: Politeknik Jambi. Susilawati, Indah. 2009. Kuliah 8–Konvolusi dan Korelasi. Yogyakarta: Universitas Mercu Buana. Yohanes Sipasultra, Reonaldo, dkk. 2014. Simulasi Sistem Pengacak Sinyal Dengan Metode FFT (Fast Fourier Transform). E-journal Teknik Elektro dan Komputer (2014), ISSN 2301-8402.