8
TEKNIK PENGOLAHAN ISYARAT DIGITAL Kuliah 8 – KONVOLUSI DAN KORELASI Indah Susilawati, S.T., M.Eng. Program Studi Teknik Elektro Program Studi Teknik Informatika Fakultas Teknik dan Ilmu Komputer Universitas Mercu Buana Yogyakarta 2009 1

Kuliah 8 Konvolusi Dan Korelasi

Embed Size (px)

Citation preview

Page 1: Kuliah 8 Konvolusi Dan Korelasi

TEKNIK PENGOLAHAN ISYARAT DIGITAL

Kuliah 8 – KONVOLUSI DAN KORELASI

Indah Susilawati, S.T., M.Eng.

Program Studi Teknik Elektro Program Studi Teknik Informatika

Fakultas Teknik dan Ilmu Komputer Universitas Mercu Buana Yogyakarta

2009

1

Page 2: Kuliah 8 Konvolusi Dan Korelasi

Kuliah 8 Teknik Pengolahan Isyarat Digital Teknik Elektro UMBY

KONVOLUSI DAN KORELASI

Contoh 1:

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.

-3 -2 -1 0 1 2 3-2

0

2

4

6

8

10

12

x(n)

62037011)5(3

]1[][)1(

=×+×+×+−×=

−−=− ∑k

khkxy

2

Page 3: Kuliah 8 Konvolusi Dan Korelasi

4122340)1()5(027111

]2[][)2(

=×+×+×−+−×+×+×=

−= ∑k

khkxy

-1 -0.5 0 0.5 1 1.5 2 2.5 3 3.5 4-5

-4

-3

-2

-1

0

1

2

3h(n)

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

3

Page 4: Kuliah 8 Konvolusi Dan Korelasi

ny = [-4 -3 -2 -1 0 1 2 3 4 5 6 7]

Hasil konvolusi dapat digambarkan sbb:

-4 -2 0 2 4 6 8-60

-40

-20

0

20

40

60hasil konvolusi, y[n]

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

4

Page 5: Kuliah 8 Konvolusi Dan Korelasi

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

5

Page 6: Kuliah 8 Konvolusi Dan Korelasi

KORELASI ANTARA DUA SEKUENS

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

∑∞

−∞=

−=n

yx nynxr ][][)(, ll (8.1)

Indeks l disebut parameter pergeseran. Jika y[n] = x[n] maka diperoleh autokorelasi dan

dinyatakan sbg

∑∞

−∞=

−=n

xx nxnxr ][][)( ll (8.2)

Autokorelasi menyatakan ukuran kesamaan terhadap dirinya sendiri (antara beberapa

penjajaran yang berbeda).

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

∑∞

−∞=

−=

=

kknhkx

nhnxny

][][

][*][][ (8.3)

Dengan membandingkan ketiga persamaan di atas, maka kros-korelasi dapat dinyatakan

kembali dalam bentuk

)(*)()( lll −= xyryx (8.4)

Dan autokorelasi dapat dinyatakan dalam bentuk

)(*)()( lll −= xxrxx (8.5)

Hal ini berarti bahwa korelasi dapat dihitung menggunnakan operasi konvolusi jika

isyarat atau sekuens merupakan sekuens dengan durasi yang berhingga.

Contoh 2:

Jika x[n] = [3 11 7 0 –1 4 2] dan y[n] adalah isyarat x[n] yang telah bergeser dan

tercampur derau yang dinyatakan dengan y[n] = x[n – 2] – w[n], dengan w[n] adalah

derau Gaussian dengan rerata nol dan varians 1. Tentukan kros-korelasi antara y[n] dan

x[n].

6

Page 7: Kuliah 8 Konvolusi Dan Korelasi

Penyelesaian:

Dengan memperhatikan isyarat y[n] maka dapat diperkirakan bahwa y[n] adalah sangat

mirip dengan x[n-2] dan dengan demikian dapat diperkirakan pula bahwa kros-korelasi

akan memperlihatkan kesamaan tertinggi saat l = 2.

% Menghitung korelasi antara dua sekuens % x[n] = [3 11 7 0 -1 4 2] % y[n] = x[n-2] + w[n] clear all; clc; x = [3 11 7 0 -1 4 2]; % sinyal x[n] nx = [-3:3]; % jangkauan n dari x[n] [y ny] = sigshift(x,nx,2); % menggeser x[n] sebanyak 2 satuan w = randn(1,length(y)); % membangkitkan derau Gaussian nw = ny; % panjang w[n] = panjang y[n] [y ny] = sigadd(y,ny,w,nw); % menambahkan sinyal y[n] dan w[n] [x nx] = sigfold(x,nx); % membalikkan sinyal x[n] [rxy nrxy] = conv_m(y,ny,x,nx); % mencari kros-korelasi x[n] & y[n] stem(nrxy,rxy) % menggambar hasil kros-korelasi axis([-5,10,-50,250]) xlabel('variabel pergeseran l') ylabel('rxy') title('Kros-korelasi x[n] dan y[n]')

Hasil eksekusi program:

-5 0 5 10-50

0

50

100

150

200

250

variabel pergeseran l

rxy

Kros-korelasi x[n] dan y[n]

7

Page 8: Kuliah 8 Konvolusi Dan Korelasi

Gambar hasil perhitungan menunjukkan bahwa kros-korelasi tertinggi pada saat l = 2.

Berikut adalah fungsi-fungsi yang digunakan pada program penyelesaian contoh 2.

% Membuat fungsi untuk menggeser sinyal x[n] % y[n] = x[n-n0] % m adalah jangkauan sinyal x[n ]% n0 adalah besarnya pergeseran function [y n]=sigshift(x,m,n0) n = m + n0; y = x

% Membuat fungsi untuk menambah sinyal x1[n] dan x2[n] % y[n] = x1[n]+x2[n] % n adalah jangkauan sinyal y[n] % n1 adalah jangkauan sinyal x1[n] % n2 adalah jangkauan sinyal x2[n] function [y n]=sigadd(x1,n1,x2,n2) n = (min(min(n1),min(n2)):max(max(n1),max(n2))); y1 = zeros(1,length(n)); y2 = y1; y1(find((n>=min(n1))&(n<=max(n1))==1))=x1 y2(find((n>=min(n2))&(n<=max(n2))==1))=x2 y = y1 + y2

% Membuat fungsi untuk membalik sinyal x[n] % y[n] = x[-n] % n adalah jangkauan sinyal x[n] function [y n]=sigfold(x,n) y = fliplr(x); n = -fliplr(n)

8