Jelajahi eBook
Kategori
Jelajahi Buku audio
Kategori
Jelajahi Majalah
Kategori
Jelajahi Dokumen
Kategori
Program Studi Teknik Elektro Program Studi Teknik Informatika Fakultas Teknik dan Ilmu Komputer Universitas Mercu Buana Yogyakarta 2009
-2 -3
-2
-1
= 3 ( 5) + 11 0 + 7 3 + 0 2 =6
= 11 1 + 7 2 + 0 (5) + (1) 0 + 4 3 + 2 2 = 41
3 h(n) 2 1 0 -1 -2 -3 -4 -5 -1
-0.5
0.5
1.5
2.5
3.5
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]
20
-20
-40
-60 -4
-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; clc; x = [3 11 7 0 -1 4 2]; h = [2 3 0 -5 2 1]; y = conv(x,h) % % % % % membersihkan semua variabel membersihkan editor command window isyarat x[n] isyarat h[n] operasi konvolusi y[n]=x[n]*h[n]
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 % Fungsi % [y ny] % [x nx] % [h nh] [y ny] = conv_m(x,nx,h,nh) untuk memodifikasi rutin konvolusi conv = hasil konvolusi = sinyal pertama = sinyal kedua % % % % n terendah dari y[n] n tertinggi dari y[n] jaungkauan n dari y[n] 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; clc; x = [3 11 7 0 -1 4 2]; nx = [-3:3]; h = [2 3 0 -5 2 1]; nh = [-1:4]; [y ny] = conv_m(x, nx, h, nh) stem(ny, y) % % % % % % % % membersihkan semua variabel membersihkan editor isyarat x[n] jangkauan x[n] isyarat h[n] jangkauan h[n] konvolusi y[n]=x[n]*h[n] menggambar y[n]
Hasil eksekusi program sama dengan hasil konvolusi yang telah dilakukan di atas.
n =
x[n] y[n l]
(8.1)
Indeks l disebut parameter pergeseran. Jika y[n] = x[n] maka diperoleh autokorelasi dan dinyatakan sbg
rxx (l) =
n =
x[n]x[n l]
(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
y[ n] = x[n] * h[n] =
k =
x[k ]h[n k ]
(8.3)
Dengan membandingkan ketiga persamaan di atas, maka kros-korelasi dapat dinyatakan kembali dalam bentuk
ryx (l) = y (l) * x( l)
(8.4)
Dan autokorelasi dapat dinyatakan dalam bentuk rxx (l) = x(l) * x(l) (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]; % nx = [-3:3]; % [y ny] = sigshift(x,nx,2); % w = randn(1,length(y)); % nw = ny; % [y ny] = sigadd(y,ny,w,nw); % [x nx] = sigfold(x,nx); % [rxy nrxy] = conv_m(y,ny,x,nx); % stem(nrxy,rxy) % axis([-5,10,-50,250]) xlabel('variabel pergeseran l') ylabel('rxy') title('Kros-korelasi x[n] dan y[n]')
sinyal x[n] jangkauan n dari x[n] menggeser x[n] sebanyak 2 satuan membangkitkan derau Gaussian panjang w[n] = panjang y[n] menambahkan sinyal y[n] dan w[n] membalikkan sinyal x[n] mencari kros-korelasi x[n] & y[n] menggambar hasil kros-korelasi
200
150
rxy
100
50
-50 -5
0 variabel pergeseran l
10
% % % % %
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]
% 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)