Lab.2: Convolution
I. Tujuan
Mahasiswa memahami mekanisme konvolusi sdan aplikasinya serta dapat mendisain aplikasi
konvolusi pada sinyal 1-dimensi dan sinyal 2-dimensi.
II. Pendahuluan
Konvolusi merupakan operasi matematika pada dua sinyal yang menghasilkan sinyal ketiga
yang mengekspresikan bagaimana bentuk sinyal satu diubah oleh sinyal yang lain. Konvolusi
dua sinyal diskrit (a[n] * b[n]) dirumuskan sebagai:
c[n] a[k]b[n k]
k
Tahap kedua, menggerakkan salah satu sinyal dan menjumlahkan hasil perkalian dua sinyal
pada titik-titik yang seletak.
sinyal pertama 3 2 1
sinyal kedua 2 1 3
hasil kali 0 0 2 0 0 0 0
jumlah 2 <---------------
sinyal pertama 3 2 1
sinyal kedua 2 1 3
hasil kali 0 0 4 1 0 0 0
jumlah 5 <---------------
sinyal pertama 3 2 1
sinyal kedua 2 1 3
hasil kali 0 0 6 2 3 0 0
jumlah 11 <---------------
sinyal pertama 3 2 1
sinyal kedua 2 1 3
hasil kali 0 0 0 3 6 1 0
jumlah 9 <---------------
sinyal pertama 3 2 1
sinyal kedua 2 1 3
hasil kali 0 0 0 0 9 0 0
jumlah 9 <---------------
Konvolusi dapat dimanfaatkan untuk menggabungkan dua array menjadi satu, memodifikasi
sinyal dengan menghilangkan atau menguatkan beberapa sifatnya (filtering), menghitung hasil
kali dua persamaan polinomial, dan menciptakan pulsa yang berulang. Anda akan mencobanya
sesaat lagi.
III. Peralatan
Satu unit PC dengan software Octave (modul praktikum ini menggunakan Octave 5.2.0).
a = [ 0 0 0 1 1 1 1 0 0 0];
b = [1 -1];
c = conv(a,b);
subplot(2,1,1);stem(a);
title('Sinyal yang akan
dideteksi');
subplot(2,1,2);stem(c);
title('Sinyal hasil deteksi');
3. Berikutnya anda akan mencoba konvolusi untuk menghaluskan sinyal. Ketikkan perintah berikut
didalam jendela Editor. Jalankan program tersebut, maka anda akan mendapatkan hasil berikut.
Proses ini sama dengan melakukan filter low-pass pada sinyal a, dimana tiap titik sinyal a akan
menjadi rata-rata dari nilai sesudahnya dengan nilai berikutnya.
a = [ 0 0 0 1 1 1 1 0 0 0];
b = [1/3 1/3 1/3];
c= conv(a,b);
subplot(2,1,1);stem(a);
title('Sinyal yang akan
dihaluskan');
subplot(2,1,2);stem(c);
title('Sinyal hasil penghalusan');
4. Kemudian anda akan mencoba konvolusi untuk menghitung hasil kali persamaan polinomial.
Contoh: Persamaan 1: 1 + 2x + 3x2
Persamaan 2: 2 + x + 3x2
Perkalian kedua persamaan tersebut dapat dengan mudah dihasilkan menggunakan konvolusi.
Ketikkan perintah berikut didalam jendela Command Window.
koef_hasil_kali =
2 5 11 9 9
Ini berarti bahwa hasil kali dua persamaan polinomial diatas adalah:
( 1+ 2x + 3x2 ) x ( 2 + x + 3x2 ) = 2 + 5x + 11x2 + 9x3 + 9x4
5. Selanjutnya anda akan mencoba konvolusi untuk memfilter sinyal rekam jantung (EKG – Electro
Kardio Graph). Sangat menarik untuk menghilangkan komponen frekuensi rendah yang dapat
mengganggu proses pendeteksian sinyal komplek QRS. Ketikkan perintah berikut didalam jendela
Editor.
ekg=[29 31 35 35 33 28 22 19 20 21 22 23 24 24 24 23 23 24 24 28 33 33
30 23 22 47 58 5 25 29 31 31 33 35 36 33 28 23 19 20 21 22 22 22 22 22
22 23 23 25 31 34 32 28 19 25 52 39 18 28 31 32 33 34 35 34 30 26 19 17
19 22 24 24 24 23 23 22 23 23 29 34 33 29 19 22 43 44 12 24 29 31 31 34
36 36 33 30 20 15 17 19 21 22 22 22 22 21 25 32 33 31 23 19 33 46 -14 28
35 39 38 39 41 42 42 38 28 16 17 17 20 21 22 22 23 22 30 33 33 29 19 23
44 38 13 33 35 36 36 39 42 43 40 31 21 18 20 22 24 25 25 26 27 33 35 35
30 20 25 56 52 18 29 33 34 35 37 39 38 33 25 18 19 21 21 22 23 23 27 30
33 30 21 18 39 60 11 23 28 29 30 32 35 36 34 28 20 16 19 20 21 21 23 23
25 30 34 34 25 18 20 56 60 11 25 28 30 31 33 35 35 32 26 17 16 18 19 19
20 21 20 19 19 20 26 32 31 23 16 21 48 41 11 32 35 35 35 37 40 39 36 31
21 15 14 17 18 19 19 20 21 28 31 33 29 19 18 38 46 -11 31 37 39 38 39 42
43 41 34 24 16 17 19 21 22 23 26 30 33 31 21 17 31 50 26 24 36 38 39 39
42 43 44 38 28 19 19 22 25 27 27 33 34 35 30 21 19 42 60 10 24 28 30 30
32 36 37 35 30 21 17 19 20 22 22 22 22 23 23 27 31 33 30 22];
ekgconv=conv(ekg, [1 -1]);
subplot(2,1,1),plot(ekg(1:200));
title('Sinyal EKG yang belum di-filter');
subplot(2,1,2),plot(ekgconv(1:200));
title('Sinyal EKG setelah di-filter');
6. Berikutnya anda akan mencoba konvolusi untuk mensintesa pengulangan sinyal. Contoh berikutnya
menggambarkan konvolusi dua sinyal, sinyal pertama mewakili bentuk yang mirip dengan sebuah
potensial gerak otot dan sinyal kedua mewakili kecepatan munculnya potensial gerak otot.
Tujuannya adalah menghasilkan bentuk yang mirip dengan sinyal elektromiograp (EMG) secara
sederhana. Ketikkan perintah berikut didalam jendela Editor.
%konvolusikan
emg=conv(rate,mup);
%tampilkan
subplot(2,2,1),plot(t(1:length(mup)),mup);
axis([0 7 -1 1]);title('Motor unit potential ');xlabel('t(ms)');
subplot(2,2,2),plot(t(1:length(rate)),rate);
axis([0 500 0 2]);title('Discharge rate');xlabel('t(ms)');
subplot(2,2,[3 4]),plot(t(1:10000),emg(1:10000));
title('Sinyal EMG');xlabel('t(ms)');
Setiap nilai discharge-rate bernilai ‘1’ menjadi unit potensial gerak pada sinyal EMG. Bila
ditambahkan beberapa unit dengan pola berbeda akan didapat sinyal EMG yang lebih mendekati
kenyataan.
Kebalikan (inverse) dari proses konvolusi adalah proses ‘dekonvolusi’ yang secara tidak langsung
memisahkan bentuk-bentuk unit sinyal potensial gerak otot yang terdapat didalam sinyal EMG.
Unit potensial gerak otot mengandung informasi struktur gerakan otot sedangkan pola discharge
berisi informasi organisasi aktifitas otot. Kedua aspek ini digunakan pada diagnosa lebih
neuromuscular lanjut.
7. Kemudian anda akan mencoba konvolusi dua dimensi untuk sinyal gambar (image). Ketikkan perintah
berikut didalam jendela Editor.
x=imread('pus.jpg');
y=rgb2gray(x);
z1=edge(y,'sobel');
z2=edge(y,'roberts');
z3=edge(y,'prewitt');
z4=edge(y,'kirsch');
z5=edge(y,'canny');
z6=conv2(y,[-1 0.89],'same');
subplot(2,4,1),imshow(x),title('RGB image');
subplot(2,4,2),imshow(y),title('Gray image');
subplot(2,4,3),imshow(z1),title('Sobel');
subplot(2,4,4),imshow(z2),title('Roberts');
subplot(2,4,5),imshow(z3),title('Prewitt');
subplot(2,4,6),imshow(z4),title('Kirsch');
subplot(2,4,7),imshow(z5),title('Canny');
subplot(2,4,8),imshow(z6),title('Coba-coba');
Sebelum menjalankan program tersebut, lakukan crop gambar berikut menggunakan aplikasi
Snipping Tool (Windows 10), lalu save pada direktori yang sama dengan program diatas dengan
nama pus.jpg.
Program diatas menggunakan fungsi edge yang merupakan bagian dari image package. Image
package ini harus diaktifkan terlebih dahulu dengan cara mengetikkan “pkg load image” pada
jendela Command Window. Kembali ke jendela Editor, jalankan program tersebut maka anda akan
mendapatkan hasil berikut.
V. Tugas
Hitunglah hasil perkalian antara (2 + x + 3x2) dengan (x – x2 – 2x3) diatas kertas, kemudian
bandingkan hasilnya dengan menggunakan metode konvolusi.
Analisa : Dari hasil percobaan diatas dapat dilihat bahwa kita membuat program konvolusi
yang digunakan untuk menghaluskan sinyal. Dimana sinyal yang akan dialuskan hampir sama
dengan sinyal awal pada langkah kedua. Lalu ketika sinya dihaluskan maka akan berubah
seperti gambar dibawahnya. Pada percobaan langkah ketiga ini juga bisa disebut melakukan
filter low-pass pada sinyal a (Sinyal yang akan dihaluskan). Dimana tiap titik sinyal a akan
menjadi rata-rata dari nilai sesudahnya dengan nilai berikutnya. Untuk hasil percobaan diatas
sama dengan apa yang dicontohkan pada prosedur percobaan langkah 3.
Analisa : Dari hasil percobaan diatas dapat dilihat bahwa kita membuat program konvolusi untuk
Hary Oktavianto, Ardik Wijayanto.
Politeknik Elektronika Negeri Surabaya. 2021. [8]
PRAKTIKUM PENGOLAHAN SINYAL
Lab.2: Convolution
menghitung hasil kali persamaan polinomial. Dimana ada dua persamaan yaitu pada
persamaan pertama adalah 1 + 2x + 3x2 dan pada persamaan kedua adalah 2 + x + 3x2.
Sehingga didapat bentuk persamaan 1 [ 1 2 3 ] dan persamaan 2 [ 2 1 3 ] yang kemudian di
konvolusi sehingga mendapatkan nilai [ 2 5 11 9 9 ] atau 2 + 5x + 11x2 + 9x3 + 9x4. Untuk
percobaan yang telah dilakukan diatas hasilnya sama dengan apa yang dicontohkan pada
prosedur percobaan langkah 4.
4. Langkah 5 (konvolusi untuk memfilter sinyal rekam jantung atau EKG – Electro Kardio Graph)
Analisa : Dari hasil percobaan diatas dapat dilihat bahwa kita membuat program konvolusi
untuk memfilter sinyal rekam jantung atau EKG – Electro Kardio Graph. Dimana terdapat
sinya EKG awal yang atas berbentuk beraturan. Namun seteah difilter akan mengahsilkan
bentuk sinyal EKG atau rekam jantung yang beraturan seperti pada gambar grafik sinyal
kedua. Untuk hasil percobaan ini juga sama dengan apa yang ada pada prosedur percobaan
langkah 5.
Analisa : Dari hasil percobaan diatas dapat dilihat bahwa kita membuat program konvolusi
Analisa : Dari hasil percobaan diatas dapat dilihat bahwa kita membuat konvolusi dua
dimensi untuk sinyal gambar atau image. Sebelum menjalankan program kita harus
mengetikkan “pkg load image” pada command window. Setelah itu jalankan program dan
akan tampil hasil seperti gambar diatas. Namun pada percobaan yang saya lakukan saya
menggunakan png karena snipping tool pada laptop saya menggunakan windows 7 sehingga
hasilnya JPEG. Tetapi pada program tidak bisa membaca file JPEG, maka saya convert ke png.
Namun hasilnya tetap sama dengan yang ada pada langkah percobaan. Untuk hasil
percobaan ini juga masih sama dengan apa yang ada pada prosedur percobaan langkah 7.
VII. Kesimpulan
Dari setiap langka percobaan yang telah dilakukan dan dianalisa dapat disimpulkan bahwa pada
praktikum konvolusi ini kita dapat menggunakannya dalam membuat low pass filter, high pass
filter, perkalian persamaan polinomial, memfilter sinyal rekam jantung (EKG), mensintesa
pengulangan sinyal, serta untuk menampilkan sinyal gambar (image). Untuk menampilkan
sinyal image kita perlu mengetikkan “pkg load image” pada command windows sebelum
memnajalankan program.
Pada hasil tugas diatas dapat dilihat bahwa saat hasil perhitungan menggunakan sistem
manual dan secara program hasilnya sama yaitu [ 0 2 -1 -2 -5 -6 0 ] atau 2x - x2 - 2x3 - 5x4 - 6x5.
IX. Referensi
http://www.neurotraces.com/scilab/scilab2/node34.html