Anda di halaman 1dari 15

PERCOBAAN 1 PENGENALAN MATLAB

Marthin Lumban Gaol (14S14009) Tanggal Percobaan: 23 September 2016 ELS3104 Praktikum Pengolahan Sinyal Digital Laboratorium Sistem Digital Institut Teknologi Del

Abstrak

Pada percobaan ini, akan dilakukan pengenalan aplikasi MATLAB untuk pengolahan sinyal digital dan menggunakan MATLAB untuk membuat sinyal input filter yang yang berasal dari hasil superposisi tiga buah sinyal sinusoidal dengan frekuensi yang berbeda-beda dan akan diplot kedalam sebuah grafik dan diamati pula respon frekuensinya serta pembuatan filter dengan fungsi FIR1 berorde 32 yang terdiri dati filter low-pass, band-pass, dan high-pass filter. Dan juga membandingkan hasil konvolusi (input hasil superposisi pada percobaan 1 dengan salah satu filter pada percobaan 2) yang berasal dari source code yang dibuat dibandingkan dengan filter yang telah ada pada MATLAB. Kemudian diperkenalkan juga bagaimana kita dapat merepresentasikan filter tersebut dalam bentuk m-file. Kata kunci: MATLAB, filter, FIR1, FIR2, m-file, frekuensi respons.

1.

PENDAHULUAN

Kini tidak perlu lagi adanya kekhawatiran karena zaman sudah mengikuti perkembangan teknologi. Berbagai aplikasi dan pemrograman telah ada, contohnya saja MATLAB yang merupakan akronim dari Matrix Laboratory yang berfungsi memudahkan dalam menghitung matematika seperti fungsi, dan lain-lain. MATLAB muncul di dunia bahasa pemrograman yang cenderung dikuasai oleh bahasa yang telah mapan dengan dikembangkan sebagai bahasa pemrograman sekaligus alat visualisasi, yang menawarkan banyak kemampuan mengintegrasikan komputasi, visualisasi dan pemrograman dalam sebuah lingkungan yang tunggal dan mudah digunakan. MATLAB menyediakan beberapa pilihan untuk dipelajari, mempelajari metode visualisasi saja, pemrograman saja atau kedua-duanya. Program MATLAB ini terbagi dalam bermacam-macam toolbox yang digunakan untuk menyelesaikan suatu persoalan. Toolbox tersebut antara lain: Sinyal Processing, Control System, Symbolic Math. Toolbox Signal Processing akan sering digunakan dalam pratikum Pengolahan Sinyal Digital. Cara termudah untuk memberikan gambaran tentang program MATLAB adalah dengan menganggap program MATLAB seperti kalkulator. Kalkulator tersebut dapat berfungsi sebagai kalkulator biasa yang digunakan untuk proses perhitungan matematika. Jika difungsikan sebagai sebuah kalkulator sains maka dapat digunakan untuk menyelesaikan operasi bilangan kompleks, logaritma, akar, dan pangkat serta trigonometri. MATLAB juga dapat berfungsi seperti kalkulator yang dapat diprogram dan dapat digunakan untuk menggambar hasil dari suatu persamaan. Percobaan yang dilakukan dalam modul ini memberikan pengetahuan dasar dalam pengenalan MATLAB. Modul ini memberikan tinjauan singkat mengenai MATLAB dengan menekankan pada pemrogramannya. Dalam praktikum ini kita akan mencoba membuat sinyal input filter

berupa rata-rata dari superposisi beberapa sinyal sinusoidal dengan frekuensi berbeda, mencoba membuat desain dan melakukan simulasi filter FIR 1 dan FIR2, dan membuat m-file untuk melakukan pem-filter-an FIR. Adapun tujuan dari percobaan pada modul 1 ini adalah :

1. Mempelajari penggunaan sistem help untuk mengetahui commands dan syntax dasar MATLAB

2. Dapat menggunakan MATLAB untuk desain filter

3. Mempelajari bagaimana menulis fungsi dan m-file pada MATLAB

4. Merancang pem-filter-an FIR dengan MATLAB

2. STUDI PUSTAKA MATLAB bersifat extensible, dalam arti bahwa seorang pengguna dapat menulis fungsi baru untuk ditambahkan pada library ketika fungsi-fungsi built-in yang tersedia tidak dapat melakukan tugas tertentu. Kemampuan pemrograman yang dibutuhkan tidak terlalu sulit bila Anda telah memiliki pengalaman dalam pemrograman bahasa lain seperti C, PASCAL, atau FORTRAN.

2.1. MATLAB HELP MATLAB menyediakan sistem help on-line yang dapat diakses dengan perintah help. Contoh:

on-line yang dapat diakses dengan perintah help. Contoh: Perintah di atas akan menampilkan informasi dalam bentuk

Perintah di atas akan menampilkan informasi dalam bentuk teks pada layar MATLAB.

2.2. VARIABEL DAN OPERASI MATRIKS Tipe variable pada MATLAB adalah matriks. Untuk mendeklarasikan sebuah variable, kita perlu memberikan nilai tertentu padanya pada MATLAB prompt. Sebagai contoh :

tertentu padanya pada MATLAB prompt. Sebagai contoh : Ketika definisi sebuah matriks melibatkan sebuah rumus yang

Ketika definisi sebuah matriks melibatkan sebuah rumus yang panjang atau banyak entri, maka sebuah perintah MATLAB yang sangat panjang dapat dipecah menjadi dua (atau lebih) baris dengan cara menempatkan sebuah tanda (…) paa akhir dari sebuah baris yang ingin dilanjutkan. Sebagai contoh :

dari sebuah baris yang ingin dilanjutkan. Sebagai contoh : Ada dua jenis variabel matriks pada MATLAB,

Ada dua jenis variabel matriks pada MATLAB, yakni skalar (scalars) dan vektor (vectors). Sebuah skalar adalah sebuah matriks yang hanya berisi satu elemen, jadi berukuran 1 x 1. Sebuah vektor adalah sebuah matriks yang hanya berisi satu baris atau kolom.

2.2.1.Operator Colon Operator colon (:) sangat berguna untuk membuat index arrays. Notasi colon didasarkan pada ide bahwa sebuah selang indeks dapat dihasilkan dengan memberikan sebuah nilai awal, interval, dan sebuah nilai akhir. Karena itu, sebuah vektor yang terpartisi secara teratur dapat diperoleh dengan perintah

2.2.2.Operasi Matriks dan Array Operasi default pada MATLAB adalah operasi matriks. Jadi A*B berarti perkalian matriks, yang akan dibahas pada bagian berikut.

2.2.2.1. Tinjauan Perkalian Matriks

Operasi perkalian matriks AB hanya dapat dilakukan bila kedua matriks tersebut memiliki dimensi yang kompatibel, yakni jumlah kolom matriks A harus sama dengan jumlah baris matriks B. Sebagai contoh, sebuah matriks 5 x 8 dapat mengalikan sebuah matriks 8 x 3 untuk menghasilkan sebuah matriks AB 5 x 3. Secara umum, bila A adalah m x n, maka B haruslah n x p, dan hasil perkalian AB akan memiliki dimensi m

x p. Umumnya perkalian matriks tidak bersifat komutatif, yakni AB BA. Bila p = m, maka perkalian AB tidak terdefinisi. Beberapa kasus khusus untuk perkalian matriks adalah outer product dan inner product. Pada outer product, sebuah vektor kolom mengalikan sebuah vektor baris untuk menghasilkan sebuah matriks. Bila kita membiarkan semua elemen salah satu vektor tersebut berupa ‘1’ , maka kita akan memperoleh hasil yang berulang. Untuk inner product, sebuah vektor baris mengalikan sebuah vektor kolom, jadi hasilnya berupa skalar. Bila kita membiarkan semua elemen salah satu vektor tersebut berupa ‘1’, maka kita akan memperoleh penjumlahan semua elemen vektor lainnya.

2.2.2.2. Operasi Pointwise Array

Bila kita ingin melakukan perkalian pointwise, ada beberapa kebingungan yang bisa

muncul. Pada kasus pointwise, kita ingin mengalikan matriks secara elemen per elemen, jadi mereka harus memiliki dimensi yang sama. Sebagai contoh, dua matriks 5 x 8 dapat dikalikan secara pointwise, walaupun keduanya tidak bisa melakukan perkalian matriks biasa. Untuk melakukan perkalian pointwise pada MATLAB, kita menggunakan operator “point-star”A .* B.

2.2.2.3. Operasi concatenatio

Operasi ini digunakan untuk menempelkan dua atau lebih array dengan syarat syarat tertetu sesuai dengan operasi concatenation yangdiinginkan. Dalam MATLAB terdapat dua buah fungsi yang dapat digunakan untuk melakukan proses concatenation (penempelan) arrays. Fungsi tersebut adalah vertcat dan horzcat. Penjelasan lanjut dapat dilihat pada help MATLAB untuk fungsi-fungsi tersebut.

2.3. PLOT DAN GRAFIK MATLAB dapat menghasilkan plot dua dimensi x-y dan plot tiga dimensi, menayangkan citra, dan bahkan membuat dan memutar video. Dua fungsi yang yang sering digunakan pada praktikum ini adalah plot dan stem. Untuk memanggil fungsi ini, umumnya kita membutuhkan dua vektor (satu vektor juga bisa, namun untuk definisi yang berbeda, gunakan perintah help untuk melihat informasi yang lebih lengkap), untuk sumbu x dan sumbu y. Pemanggilan fungsi plot(x,y) akan menghasilkan suatu plot yang terkoneksi dengan garis lurus untuk setiap dua titik seperti yang ditunjukkan pada gambar di bawah.

dua titik seperti yang ditunjukkan pada gambar di bawah. Pemanggilan fungsi stem(x,y) akan menghasilkan presentasi

Pemanggilan fungsi stem(x,y) akan menghasilkan presentasi seperti yang ditunjukkan pada Gambar di bawah

gambar di bawah. Pemanggilan fungsi stem(x,y) akan menghasilkan presentasi seperti yang ditunjukkan pada Gambar di bawah

2.4.

KONSTRUK PEMROGRAMAN

MATLAB mendukung paradigma pemrograman fungsional, di mana Anda dapat menyusun fungsi-fungsi secara nested. Perhatikan persamaan di bawah

fungsi-fungsi secara nested. Perhatikan persamaan di bawah yang dapat diimplementaskan dengan hanya menggunakan satu

yang dapat diimplementaskan dengan hanya menggunakan satu baris kode MATLAB, yakni

dengan hanya menggunakan satu baris kode MATLAB, yakni di mana x adalah sebuah vektor yang berisi

di mana x adalah sebuah vektor yang berisi elemen-elemen xn. Contoh ini mengilustrasikan MATLAB dalam bentuk yang paling efisien, di mana fungsi-fungsi individu dikombinasikan untuk menghasilkan keluaran. Penulisan kode-kode MATLAB yang efisien memerlukan gaya pemrograman yang menghasilkan fungsi-fungsi kecil yang divektorisasi. Loop-loop harus dihindari. Cara utama untuk menghindari loop adalah memanggil fungsi-fungsi toolbox sebanyak mungkin.

2.5. MATLAB SCRIPTS

Setiap perintah/pernyataan yang dapat dimasukkan pada window prompt dapat disimpan pada sebuah file teks dan dieksekusi sebagai script. File teks tersebut dapat dibuat dengan menggunakan sembarang editor ASCII seperti program Notepad atau pada editor teks MATLAB. Ekstensi file harus berupa .m dan script tersebut dieksekusi pada MATLAB dengan hanya mengetikkan nama file (dengan atau tanpa ekstensi). Program-program tersebut umumnya dikenal dengan istilah m-file.Berikut merupakan contoh sebuah m-file:

istilah m-file.Berikut merupakan contoh sebuah m-file: Bila perintah-perintah ini disimpan dengan file bernama

Bila perintah-perintah ini disimpan dengan file bernama plotstem.m maka pengetikan plotstem pada command prompt akan menjalankan file tersebut, dan kedelapan baris perintah akan dieksekusi sama halnya bila mereka diketikkan baris per baris pada command prompt. Hasilnya adalah dua buah plot grafik.

2.6. MENULIS FUNGSI MATLAB

Kita dapat menulis fungsi sendiri dan kemudian ditambahkan pada environment MATLAB. Fungsi-fungsi ini merupakan jenis lain dari m-file, dan dibuat sebagai sebuah file ASCII menggunakan editor teks. Kata pertama pada m-file tersebut haruslah keywordfunction untuk memberitahukan MATLAB bahwa file tersebut diperlakukan sebagai sebuah fungsi dengan argumen. Pada baris yang sama juga berisi calling template yang menyatakan argumen input

dan output dari fungsi. Nama file untuk m-file tersebut haruslah berekstensi .m dan nama fungsi tersebut akan menjadi nama dari perintah baru pada MATLAB. Sebagai contoh, perhatikan file berikut, yang mengekstrak L buah elemen terakhir dari sebuah vector.

yang mengekstrak L buah elemen terakhir dari sebuah vector. Bila file ini disimpan dengan nama foo.m,

Bila file ini disimpan dengan nama foo.m, operasi ini dapat dipanggil dari MATLAB command line dengan cara mengetikkan aa = foo( (1:2:37), 7 );Outputnya akan berupa tujuh elemen terakhir dari vektor (1:2:37), yakni aa = [ 25 27 29 31 33 35 37 ]

3.

METODOLOGI

Pada percobaan 1 ini, alat dan bahan yang digunakan yaitu :

1. 1 unit PC/laptop dalam kondisi baik

2. Software MATLAB yang telah terinstall di PC/laptop

Tahap-tahap Percobaan:

3.1. Percobaan membuat sinyal input filter berupa superposisi beberapa sinyal sinusoid dengan frekuensi berbeda

Pada Matlab, direpresentasikan sinyal dalam vekor (matriks 1 x N, N panjang vektor). Akan direpresentasikan sumbu waktu dimana untuk 0<t<2, diberi panjang vektor 100 sampel dengan perintah >>i = 1:100

Dibuat 3 sinyal sinusoidal pada frekuensi pencuplikan fs = 16 kHz untuk masing-masing frekuensi sinyal f1 = 200 Hz, fs = 1 kHz, f3 = 5 kHz. Diketikan : >>sin1 = sin (2*pi*i*f1/fs); sin2 = sin (2*pi*i*f2/fs); sin3 = sin (2*pi*i*f3/fs);

Dijumlahkan ketiga sinyal tersebut menjadi satu sinyal sinusoidal rusak dengan perintah >>sintot = (sin1+sin2+sin3)/3;

Dicoba lot gambarnya dengan perintah >>plot (sintot)

Dilihat juga respon frekuensinya dengan peritah freqz.

3.2. Percobaan desain dan simulasi filter FIR 1

Dibuat beberapa filter dengan spesifikasi sebagai berikut:

a. Filter FIR low-pass orde 32 dengan frekuensi cut-off 800 Hz

b. Filter FIR band-pass orde 32 dengan frekuensi pass 1 -3 kHz

c. Filter FIR high-pass orde 32 dengan frekuensi cut-off 6 kHz

Dirancang ketiga filter tersebut, dicari koefisien filternya dengan perintah yang sesuai (fir1). Dicatat masing-masing koefisien filter.

Dilihat frekuensi respon masing-masing filter dengan perintah freqz. Digambarkan hasilnya. Dianalisis pada frekuensi cut-off

3.3. Percobaan desain dan simulasi filter FIR 2

Dibuat desain filter FIR dengan metoda frekuensi sampling dengan respon frekuensi seperti apda gambar dibawah (Respon Frekuensi Filter)

Dirancang filter diatas, dicari koefisien filternya dengan perintah yang sesuai (fir2). Dicatat koefisien filter. Digunakan orde 16.

Dilihat frekuensi respon filter dengan perintah freqz. Digambarkan hasilnya. Dilakukan untuk orde yang lebih besar misalnya 128. Dibandingkan dengan hasil sebelumnya.

3.4. Percobaan membuat m-file untuk melakukan pem-filter-an FIR Pada bagian ini dibuat m-file untuk melakukan pemfilteran FIR saja, untuk m-file tersebut tidak diperbolehkan memanggil fungsi internal MATLAB. Dibandingkan hasilnya dengan percobaan dengan menggunakan perintah filter dari MATLAB.

4. HASIL DAN ANALISIS

4.1. Perancangan Filter Dengan MATLAB

Plot Sinyal Input

Sinyal Input Respon Frekuensi
Sinyal Input
Respon Frekuensi

Gambar diatas merupakan hasil percobaan yang telah diperoleh sebuah sinyal input filter yaitu berupa sinyal total hasil penjumlahan 3 buah sinyal sinusoidal dengan frekuensi yang berbeda- beda. Dapat dilihat bahwa nilai-nilai sinyal total (mulai dari i = 1 hingga i = 100) merupakan hasil superposisi nilai-nilai sinyal 1, sinyal 2 dan sinyal 3.

4.2. Desain Filter FIR 1

Low-pass orde 31 f Cut-off 800 Hz

-0.0015

-0.0019

-0.0025

-0.0032

-0.0034

-0.0026

0.0000

0.0050

 

0.0128

0.0234

0.0365

0.0512

0.0661

0.0800

0.0912

0.0985

0.1010

0.0985

0.0912

0.0800

0.0661

0.0512

0.0365

0.0234

0.0128 0.0050 0.0000 -0.0026 -0.0034 -0.0032 -0.0025 -0.0019 -0.0015 Koefisen Filter Respon Frekuensi Filter
0.0128
0.0050
0.0000
-0.0026
-0.0034
-0.0032
-0.0025
-0.0019
-0.0015
Koefisen Filter
Respon Frekuensi Filter
Band-pass orde 31 f
Cut-off 1000-3000 Hz
-0.0000
-0.0010
0.0000
0.0050
0.0113
0.0107
-0.0000
-0.0086
0.0000
0.0154
-0.0000
-0.0659
-0.1371
-0.1273
0.0000
0.1700
0.2489
0.1700
0.0000
-0.1273
-0.1371
-0.0659
-0.0000
0.0154
0.0000
-0.0086
-0.0000
0.0107
0.0113
0.0050
0.0000
-0.0010
-0.0000
Koefisien filter
Respon Frekuensi Filter High-pass orde 31 f Cut-off 600 Hz -0.0000 0.0013 -0.0026 0.0027 -0.0000
Respon Frekuensi Filter
High-pass orde 31 f
Cut-off 600 Hz
-0.0000
0.0013
-0.0026
0.0027
-0.0000
-0.0058
0.0116
-0.0113
-0.0000
0.0203
-0.0381
0.0359
-0.0000
-0.0694
0.1539
-0.2236
0.2506
-0.2236
0.1539
-0.0694
-0.0000
0.0359
-0.0381
0.0203
-0.0000
-0.0113
0.0116
-0.0058
-0.0000
0.0027
-0.0026
0.0013
-0.0000
Koefisien filter
Respon Frekuensi Filter

Dari gambar pada tabel menunjukkan filter low-pass, band-pass, dan high-pass.

4.3. Desain Filter FIR 2

Dengan orde 16

0.0001

0.0021

0.0081

0.0212

0.0423

0.0691

0.0958

0.1157

0.1230

0.1157

0.0958

0.0691

0.0423

0.0212

0.0081

0.0021

0.0001

Koefisen Filter

 
0.0212 0.0081 0.0021 0.0001 Koefisen Filter   Respon Frekuensi Filter   Dengan orde 128 0.0000

Respon Frekuensi Filter

 

Dengan orde 128

0.0000

0.0001

0.0001

0.0001

0.0001

0.0001

0.0000

0.0000

-0.0000

-0.0001

-0.0001

-0.0002

-0.0002

-0.0001

-0.0001

-0.0000

0.0000

0.0001

0.0001

0.0001

0.0001

0.0000

-0.0000

-0.0000

0.0000

0.0002

0.0004

0.0005

0.0007

0.0007

0.0006

0.0003

-0.0003

-0.0011

-0.0019

-0.0026

-0.0030

-0.0030

-0.0024

-0.0011

0.0008

0.0030

0.0054

0.0074

0.0085

0.0084

0.0067

0.0034

-0.0013

-0.0070

-0.0130

-0.0181

-0.0214

-0.0217

-0.0182

-0.0104

0.0018

0.0179

0.0369

0.0574

0.0777

0.0960

0.1105

0.1198

0.1230

0.1198

0.1105

0.0960

0.0777

0.0574

0.0369

0.0179

0.0018

-0.0104

-0.0182

-0.0217

-0.0214

-0.0181

-0.0130

-0.0070

-0.0013

0.0034

0.0067

0.0084

0.0085

0.0074

0.0054

0.0030

0.0008

-0.0011

-0.0024

-0.0030

-0.0030

-0.0026

-0.0019

-0.0011

-0.0003

0.0003

0.0006

0.0007

0.0007

0.0005

0.0004

0.0002

0.0000

-0.0000

-0.0000

0.0000

0.0001

0.0001

0.0001

0.0001

0.0000

-0.0000

-0.0001

-0.0001

-0.0002

-0.0002

-0.0001

-0.0001

-0.0000

0.0000

0.0000 0.0001

0.0001

0.0001

0.0001

0.0001

0.0000

Koefisien filter

 
0.0001 0.0001 0.0000 Koefisien filter   Respon Frekuensi Filter Dari gambar pada tabel diatas,

Respon Frekuensi Filter

Dari gambar pada tabel diatas, perbedaan gambar pada filter FIR 2 terlihat pada jumlah gelombang yang berpengaruh pada jumlah orde, dimana semakin banyak jumlah orde, maka semakin besar koefisiennya.

4.4. M-file untuk melakukan pem-filteran FIR

1 2
1
2

Keterangan:

1. Code dari MATLAB

2. Code yang dibuat pada saat praktikum

Gambar hasil Konvolusi dan Frekuensi Response

Konvolusi sinyal total dcngan filter low-pass filter

 Konvolusi sinyal total dcngan filter low-pass filter  Frekuensi response sinyal hasil konvolusi mengguanakan

Frekuensi response sinyal hasil konvolusi mengguanakan perintah filter dari MATLAB

hasil konvolusi mengguanakan perintah filter dari MATLAB Kemudian hasil diatas selanjutnya akan dibandingkan dengan

Kemudian hasil diatas selanjutnya akan dibandingkan dengan hasil konvolusi sinyal input dan filter yang sama namun dilakukan dengan m-file yang telah dibuat pada saat praktikum.

Konvolusi sinyal total dengan filter low-pass filter menggunakan source code yang dibuat pada saat praktikum

menggunakan source code yang dibuat pada saat praktikum  Frekuensi response sinyal hasil konvolusi menggunakan

Frekuensi response sinyal hasil konvolusi menggunakan source code yang dibuat pada saat praktikum

\
\

Dimana konvolusi dan frekuensi response, baik dari MATLAB maupun dibuat pada saat praktikum sama.

5.

KESIMPULAN

Dari percobaan tesebut didapat kesimpulan :

Perintah help dapat digunakan untuk mengetahui tentang penjelasan commands dan syntax dasar dari fungsi-fungi yang ada pada MATLAB.

MATLAB dapat digunakan untuk melakukan desain filter suatu sinyal.

Fungsi-fungsi matematika sederhana juga dapat dilakukan pada MATLAB untuk menjumlahkan dua atau lebih sinyal.

Algoritma fungsi-fungsi tertentu dapat dibuat dalam bentuk m-file pada MATLAB.

DAFTAR PUSTAKA

1. Sagala, Albert. Praktikum Pengolahan Sinyal Digital Laboratorium Sistem Digital IT Del, Toba, 2016.

2. Proakis, Jhon. Manolakis, Dimitris, Digital Signal Processing, principles, algoritm, and application, Prentice Hall, 1998