Konvolusi
A. Tujuan
1. Mahasiswa dapat menjelaskan proses konvolusi pada sistem
linear
2. Mahasiswa dapat melakukan konvolusi pada sinyal 1D dan 2D
3. Mahasiswa dapat menjelaskan pengaruh konvolusi terhadap
sinyal
B. Dasar Teori
Konvolusi adalah penggabungan atau penjumlahan 2 sinyal yang
menghasilkan sinyal baru. Konvolusi antara 2 sinyal diskrit x[n]
dan h[n] dinyatakan dengan persamaan :
dengan :
x[i]= 1 2 3
S2 :
h[i]= 1 2 2
x[i] = 1 2 3
S2 :
h[-i]= 2 2 1
x[i]=
123
S2 :
h[-i]= 2 2 1
-------------- x
00100
Produk
SUM
=1
(dijumlah)
x[i]=
123
S2 :
h[-i]= 2 2 1
-------------- x
02 2 0
=4
(dijumlah)
x[i]=
123
S2 :
h[-i]=
221
-------------- x
2 4 3
=9
(dijumlah)
x[i]=
S2 :
h[-i]=
123
22 1
-------------- x
0 4 6 0 = 10
(dijumlah)
x[i]=
h[-i]=
123
2 2 1
-------------- x
0 0 60 0=6
(dijumlah)
x[i]=
h[-i]=
12 3
2 2 1
-------------- x
0 0 0 0 0 0 =0
(dijumlah)
P1
P2
P3
P5
Kernel =
g(x,y)
P4
P6
f(x,
y)
P7
P8
P9
P1
0
P1
1
P1
2
P1
3
P1
4
P1
5
P1
6
P1
7
P1
8
P1
9
P2
0
P2
1
P2
2
P2
3
P2
4
P2
5
c(2,
2)
Hasil
konvolusi
Hasil
konvolusi
15
Sinyal 1D
Tuliskan baris kode berikut di matlab dan jalankan!
Pada percobaan pertama ini adalah membuat convolusi sinyal dari input sinyal x yang
berisi [1 1 2 2 1 1] lalu di convolusi dengan sinyal h yang berisi [0 2 1 3 1 1] maka yang
terjadi adalah pertama sinyal h dibalik menjadi [1 1 3 1 2 0] setelah itu di kalikan dengan
sinyal x dan ditambahkan lalu bergeser ke kanan satu kali seterusnya sampai semua sinyal
sudah dikali dan dijumlahkan maka selesai
function a = konv()
clc;
clear all;
% Pembangkitan Sinyal x
n=20;
n0=-0.5*n:0.5*n;
n1=1:(n+1);
u1(n1)=(n1-15)>=0;
f1(n1)=(-1/2).^n0;
x1(n1)=f1(n1).*u1(n1);
% Pembangkitan Sinyal h
u2(n1)=(13-n1)>=0;
f2(n1)=(4).^n0;
h(n1)=f2(n1).*u2(n1);
% Proses Algoritma Konvolusi
y1=conv(x1,h);
% Tampilan
n3=1:n+1;
n5=-0.5*n:0.5*n;
n6=-n:n;
figure(1);
clf;
subplot(2,2,1);
stem(n5,x1(n3),'filled')
xlabel('k');
ylabel('x(k)');
title('Input Sistem')
grid
subplot(2,2,2);
stem(n5,h(n3),'filled')
xlabel('k');
ylabel('h(k)');
title('Respon Sistem')
grid
subplot(2,2,3);
stem(n6,y1,'filled')
xlabel('k');
ylabel('y(k)');
title('Output Sistem')
grid
Pada percobaan kali ini kita membuat sinyal input system yang bernilai pada x(k) lalu di
konvolusi dengan sinyal respon system h(k) jadi disini prosesnya hapir sama dengan
percobaan pertama tapi disini kita gunakan lebih banyak sinyal sehingga output sinyal yang
dihasilkan juga semakin panjang.
function a = konv_sin1()
clc;
clear all;
% Pembangkitan Sinyal x
n=20;
n0=-0.5*n:0.5*n;
n1=((0.5*n)+1):(n+1);
f=1/(0.5*n);
x1(n1)=sin(2*pi*f*n1);
% Pembangkitan Sinyal h
n1=1:(n+1);
u2(n1)=(13-n1)>=0;
f2(n1)=(4).^n0;
h(n1)=f2(n1).*u2(n1);
% Proses Algoritma Konvolusi
y1=conv(x1,h);
% Tampilan
n3=1:n+1;
n5=-0.5*n:0.5*n;
n6=-n:n;
n7=1:n+1;
n8=1:2*n+1;
figure(1);
clf;
subplot(2,2,1);
stem(n5,x1(n3),'filled')
xlabel('k');
ylabel('x(k)');
title('Input Sistem')
grid
subplot(2,2,2);
stem(n5,h(n3),'filled')
xlabel('k');
ylabel('h(k)');
title('Respon Sistem')
grid
subplot(2,2,3);
stem(n6,y1,'filled')
xlabel('k');
ylabel('y(k)');
title('Output Sistem')
grid
Pada percobaan kali ini kita membuat sinyal input system yang bernilai pada x(k) lalu di
konvolusi dengan sinyal respon system h(k) jadi disini prosesnya hapir sama dengan
percobaan pertama tapi disini kita gunakan sinyall input dan respon system yang berbeda
sehingga output system yang dihasilkan juga akan berbeda.
function x = konv_square()
clc;
clear all;
% Pembangkitan Sinyal x
n=20;
n0=-0.5*n:0.5*n;
for n1=1:(n+1)
if (n1>0.5*n & n1<0.5*n+7)
x1(n1)=1;
else
x1(n1)=0;
end
end
% Pembangkitan Sinyal h
for n1=1:(n+1)
if (n1>0.5*n & n1<0.5*n+7)
h(n1)=1;
else
h(n1)=0;
end
end
% Proses Algoritma Konvolusi
y1=conv(x1,h);
% Tampilan
n3=1:n+1;
n5=-0.5*n:0.5*n;
n6=-n:n;
n7=1:n+1;
n8=1:2*n+1;
figure(1);
clf;
subplot(2,2,1);
stem(n5,x1(n3),'filled')
xlabel('k');
ylabel('x(k)');
title('Input Sistem')
grid
subplot(2,2,2);
stem(n5,h(n3),'filled')
xlabel('k');
ylabel('h(k)');
title('Respon Sistem')
grid
subplot(2,2,3);
stem(n6,y1,'filled')
xlabel('k');
ylabel('y(k)');
title('Output Sistem')
grid
Lalu selanjutnya kita akan membuat input system dan reson system yang sama dan kedua
sinyal tadi akan dikonvolusi sehingga membentuk sinyal seperti segitiga disini terlihat jelas
bahwa sinyal konvolusi prosesnya adalah mencermnkan dalah satu sinya bisa input system
atau biasanya respon system lalu enjumlahkan semua perkalian disetiap pergeserannya.
Mask =[1 1 1; 1 2 1; 1 1 1]
Mask = [0 0 0;0 1 0; 0 0 0]
Mask = [1 4 1; 1 4 1 ; 1 4 1]
Disini kita akan membuat sebuah gambar menjadi bentuk hitam putih dan
disini kita menggunakan proses pergantian ini dalam bentuk biner dalam
program dapat di jelaskan bahwa
imshow(gray)
Tugas
function x = konv_square()
clc;
clear all;
% Pembangkitan Sinyal x
n=20;
n0=-0.5*n:0.5*n;
for n1=1:(n+1)
Pada tugas kali ini kita membuat sinyal dengan kategori if (n1>0.5*n & n1<0.5*n+7)
x1(n1)=1;
else
Jumlah N=200
x1(n1)=0;
Sinus 1 : Amplitudo = 5, Frekuensi = 10 sebagai x1 end
end
% Pembangkitan Sinyal h
for n1=1:(n+1)
Sinyal gabungan : x3 = x1 + x2
if (n1>0.5*n & n1<0.5*n+7)
h(n1)=1;
Kemudian, sinyal tersebut dikonvolusikan dengan sebuah
respon sistem
else
h(n1)=0;
h = {0, 0.5, 1, 1.5, 2, 1.5, 1, 0.5, 0, 0, 0, 0}
end
jadi disini dibuat sinyal x1 dan x2 lalu dijumlahkan padaend
x3 dan sinyal x3 di konvolusikan
% Tampilan
n3=1:n+1;
n5=-0.5*n:0.5*n;
n6=-n:n;
n7=1:n+1;
n8=1:2*n+1;
figure(1);
clf;
subplot(2,2,1);
stem(n5,x1(n3),'filled')
xlabel('k');
ylabel('x(k)');
title('Input Sistem')
grid
subplot(2,2,2);
stem(n5,h(n3),'filled')
xlabel('k');
ylabel('h(k)');
title('Respon Sistem')
grid
subplot(2,2,3);
stem(n6,y1,'filled')
xlabel('k');
ylabel('y(k)');
title('Output Sistem')
grid