Kuliah 8 Konvolusi Dan Korelasi

Preview:

Citation preview

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

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

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

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

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

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

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

Recommended