Anda di halaman 1dari 9

MODUL I

MENGENAL MATLAB
M. Jundi Hibatullah (13117045)
Asisten : Rahman Ecky R (13116006)
Tanggal Percobaan : 21/09/2019
EL3104_E-3_Praktikum_Pengolahan_Sinyal_Digital
Laboratorium Teknik Elektro
Institut Teknologi Sumatera

Abstrak—Pada praktikum yang pertama ini praktikan untuk melakukan tugas pengolahan sinyal, aljabar linier, dan
telah sedikit dekenalkan kepada matlab dan beberapa kalkulasi matematis lainnya. MATLAB juga berisi toolbox
perintah lainnya seperti fur1, fir2, filter dan freqz. Yang yang berisi fungsi-fungsi tambahan untuk aplikasi khusus.
nantinya akan melakukan 4 percobaan yaitu membuat
sinyal input filter berupa superposisi dengan frekuensi MATLAB bersifat extensible, dalam arti bahwa seorang
berbeda, mendisain dan mensimulasi FIR1 dan FIR2, dan pengguna dapat menulis fungsi baru untuk ditambahkan pada
yang terakhir membuat m-file. library ketika fungsi-fungsi built-in yang tersedia tidak dapat
melakukan tugas tertentu. Kemampuan pemrograman yang
Kata Kunci— matlab,filter,sinyal sinusoidal. dibutuhkan tidak terlalu sulit bila Anda telah memiliki
pengalaman dalam pemrograman bahasa lain seperti C,
PASCAL, atau FORTRAN.
I. PENDAHULUAN

Pada praktikum ini praktikan telah mendalami tetang MATLAB HELP


MATLAB dengan beberapa percobaan. Percobaan yang MATLAB menyediakan sistem help on-line yang dapat
pertama adalah Percobaan membuat sinyal input filter berupa diakses dengan perintah help. Misalnya, untuk memperoleh
superposisi beberapa sinyal sinusoidal dengan frekuensi informasi mengenai fungsi filter, Anda hanya perlu
berbeda, lalu lanjut pada Percobaan desain dan simulasi filter mengetikkan perintah :
FIR 1 dan FIR 2 setra terakhir Percobaan membuat m-file untuk
melakukan pem-filter-an FIR. >> help filter
Adapun tujuan dari percobaan modul 1 ini ialah : Perintah di atas akan menampilkan informasi dalam bentuk teks
pada layar MATLAB Anda. Sebuah perintah yang sangat
1. Mempelajari penggunaan system help untuk mengetahui berguna untuk mempelajari pemrograman MATLAB adalah
commands dan syntax dasar MATLAB. intro, yang membahas konsep-konsep dasar tentang bahasa
2. Dapat menggunakan MATLAB untuk desain filter. MATLAB. Selain itu, juga terdapat banyak program
3. Mempelajari bagaimana menulis fungsi dan m-file pada demonstrasi yang mengilustrasikan berbagai kapabilitas
MATLAB. MATLAB, yang dapat dimulai dengan perintah demo.
4. Merancang pem-filter-an FIR dengan MATLAB.
5. Memahami pem-filter-an lewat MATLAB secara
Variabel dan operasi matriks
mendalam.
Tipe variabel dasar pada MATLAB adalah matriks (pada versi
II. LANDASAN TEORI 5 dan ke atas, MATLAB juga menyediakan berbagai tipe data
seperti pada bahasa pemrograman lainnya). Untuk
MATLAB mendeklarasikan sebuah variabel, Anda hanya perlu
memberikan nilai tertentu padanya pada MATLAB prompt.
MATLAB (Matrix Laboratory) adalah sebuah program untuk Sebagai contoh :
analisis dan komputasi numerik. Pada awalnya, program ini
merupakan interface untuk koleksi rutin-rutin numerik dari >> M = [ 1 2 6; 5 2 1]
proyek LINPACK dan EISPACK, namun sekarang
merupakan produk komersial dari perusahaan Mathworks, M=
Inc. MATLAB telah berkembang menjadi sebuah environment
pemrograman yang canggih yang berisi fungsi-fungsi built-in 1 2 6
5 2 1
Ketika definisi sebuah matriks melibatkan sebuah rumus yang yakni AB BA. Bila p m, maka perkalian AB tidak
panjang atau banyak entri, maka sebuah perintah MATLAB terdefinisi.
yang sangat panjang dapat dipecah menjadi dua (atau lebih)
baris dengan cara menempatkan sebuah tanda (…) pada akhir Beberapa kasus khusus untuk perkalian matriks adalah outer
dari sebuah baris yang ingin dilanjutkan. Sebagai contoh, product dan inner product. Pada outer product, sebuah vektor
kolom mengalikan sebuah vektor baris untuk menghasilkan
P = [ 1, 2, 4, 6, 8 ]+ [ pi, 4, exp(1), 0, -1] + … sebuah matriks. Bila kita membiarkan semua elemen salah
satu vektor tersebut berupa ‘1’ , maka kita akan memperoleh
[ cos(0.1*pi), sin(pi/3), tan(3), atan(2), sqrt(pi) ]; hasil yang berulang.

Ketika sebuah ekspresi perintah atau pernyataan diakhiri Bila kita ingin melakukan perkalian pointwise, ada beberapa
dengan tanda semicolon (;), maka hasilnya tidak akan kebingungan yang bisa muncul. Pada kasus pointwise, kita
ditampilkan di layar. Hal ini sangat membantu ketika Anda ingin mengalikan matriks secara elemen per elemen, jadi
bekerja dengan matriks dengan ukuran yang sangat besar. mereka harus memiliki dimensi yang sama. Sebagai contoh,
dua matriks 5 x 8 dapat dikalikan secara pointwise, walaupun
Operator Colon (:) keduanya tidak bisa melakukan perkalian matriks biasa. Untuk
melakukan perkalian pointwise pada MATLAB, kita
Operator colon (:) sangat berguna untuk membuat index arrays. menggunakan operator “point-star”A .* B. Misalnya bila A dan
Gunakan perintah help colon untuk mengetahui deskripsi detail B keduanya adalah matriks 3 x 2.
tentang kapabilitasnya.
Plot dan Grafik
Notasi colon didasarkan pada ide bahwa sebuah selang indeks
dapat dihasilkan dengan memberikan sebuah nilai awal, MATLAB dapat menghasilkan plot dua dimensi x-y dan plot
interval, dan sebuah nilai akhir. Karena itu, sebuah vektor yang tiga dimensi, menayangkan citra, dan bahkan membuat dan
terpartisi secara teratur dapat diperoleh dengan perintah memutar video. Dua fungsi yang yang sering digunakan pada
praktikum ini adalah plot dan stem. Untuk memanggil fungsi
iii = nilai awal : interval : nilai akhir ini, umumnya kita membutuhkan dua vektor (satu vektor juga
bisa, namun untuk definisi yang berbeda, gunakan perintah
Tanpa parameter interval, nilai default-nya adalah 1. Metode help untuk melihat informasi yang lebih lengkap), untuk sumbu
perhitungan ini mirip dengan notasi loop DO pada FORTRAN, x dan sumbu y. Pemanggilan fungsi plot(x,y) akan
namun metode pada MATLAB selangkah lebih maju dengan menghasilkan suatu plot yang terkoneksi dengan garis lurus
cara menggabungkannya dengan pengindeksan matriks. untuk setiap dua titik.
Untuk sebuah matriks A 9 x 8, A(2,3) adalah elemen skalar
yang berada pada baris kedua dan kolom ketiga dari matriks A. { (x(1),y(1), (x(2),y(2), (x(3),y(3), …….., (x(N),y(N) } seperti
Jadi sebuah submatriks 4 x 3 dapat diekstrak dengan perintah yang ditunjukkan pada gambar PA.1.
A(2:5,1:3). Tanda colon juga berfungsi sebagai sebuah wild
card, misalnya, A(2,:) adalah baris kedua matriks A. Pemanggilan fungsi stem(x,y) akan menghasilkan presentasi
seperti yang ditunjukkan pada Gambar 1. 1 PA.1
Pengindeksan mundur akan membalikkan sebuah vektor,
misalnya X(9:-1:1) untuk sebuah vektor yang berisi 9 buah
elemen. Kadang-kadang, Anda juga memerlukan sebuah daftar
yang berisi semua nilai elemen pada matriks, jadi A(:)
memberikan sebuah vektor kolom 72 x 1, yang merupakan hasil
concatenation elemen-elemen setiap kolom matrik A. Ini
merupakan contoh reshaping matriks. Teknik reshaping yang
lebih umum dapat dilakukan dengan fungsi reshape(A,M,N).
Sebagai contoh, matriks A 9 x 8 dapat di-reshape menjadi
sebuah matriks 12 x 6 dengan Anew = reshape(A,12,6).

Operasi Matriks dan Array

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,
MATLAB memiliki banyak opsi plotting yang dapat keyboard dapat disisipkan ke m-file untuk menghentikan
dipelajari dengan help plotxy, help plotxyz, dan help graphics sementara eksekusi program, yang memberikan sebuah
(versi 4) atau help graph2d, help graph3d, dan help specgraph MATLAB prompt dalam bentuk K> untuk mengindikasikan
(versi 5). bahwa itu bukan command-line prompt.

Figure windows
III. METODOLOGI
Ketika MATLAB membuat sebuah plot, MATLAB menulis
grafik tersebut ke figure windows. Anda bisa membuka Alat dan Bahan
beberapa figure windows namun setiap saat hanya satu window
1. Perangkat PC yang sudah teristall MATLAB
yang aktif. Setiap perintah plot pada command window akan
mengalihkan keluarannya ke window yang aktif. Perintah
figure(n) akan menampilkan sebuah figure window yang baru Langkah Kerja
yang ditandai dengan bilangan n, atau membuatnya aktif 1. Percobaan membuat sinyal input filter berupa
kembali bila telah ada sebelumnya. Pengendalian terhadap superposisi beberapa sinyal sinusoidal dengan
berbagai atribut window (ukuran, lokasi, warna) juga mungkin frekuensi berbeda.
dilakukan dengan perintah figure, yang melakukan inisialisasi
terhadap window plot

Memplot beberapa grafik Pada Matlab, representasikan sinyal dalam vektor


(matriks 1 x N, N panjang vektor). Kita akan
Anda juga dapat membuat beberapa grafik/plot pada satu merepresentasikan sumbu waktu dimana untuk 0<t<2,
window dengan menggunakan fungsi subplot. Fungsi ini tidak kita beri panjang vektor 100 (100 sampel) dengan
melakukan proses plotting, namun hanya membagi window perintah >>i=1:100;
menjadi beberapa segmen. Sebagai contoh, perintah
subplot(3,2,3) akan membagi figure window menjadi tiga baris
dan dua kolom (jadi terdapat enam segmen) dan mengarahkan
plot berikutnya ke segmen kiri baris kedua. Grafik pada PA.1
diperoleh dengan perintah subplot(2,1,1) dan subplot(2,1,2).
Buat 3 sinyal sinusoidal pada frekuensi pencuplikan
Debugging MATLAB m-file fs=16000 Hz untuk masing-masing frekuensi sinyal
f1=200 Hz, f2=1000 Hz, f3=5000 Hz.
Karena MATLAB adalah sebuah environment yang
Ketikan :
interaktif, debugging dapat dilakukan dengan cara menguji
>>sin1=sin(2*pi*i*f1/fs);sin2=sin(2*pi*i*f2/fs);sin3=s
variabel-variabel pada workspace. MATLAB versi 4 dan 5
in(2*pi*i*f3/fs);
menyediakan debugger simbolik yang mendukung breakpoints.
Karena fungsi yang berbeda dapat menggunakan nama variabel
yang sama, adalah sangat penting untuk melacak konteks lokal
ketika menguji variabel. Beberapa perintah debugging yang
berguna didaftarkan di sini, dan yang lainnya dapat Anda
temukan di help debug.
Jumlahkan ketiga sinyal tersebut menjadi satu sinyal
sinusoidal rusak dengan perintah
dbstop digunakan untuk mengeset sebuah breakpoint pada
>>sintot=(sin1+sin2+sin3)/3;
sebuah m-file. Ia juga dapat digunakan untuk memberikan
Lalu Coba plot gambarnya dengan perintah
sebuah peringatan ketika sebuah kesalahan terjadi dengan
>>plot(sintot);
mengetikkan dbstop if error sebelum mengeksekusi m-file
Serta Lihat juga respon frekuensinya dengan perintah
tersebut. Hal ini memungkinkan Anda menguji variabel di
freqz.
dalam fungsi dan workspace (dengan mengetikkan dbup)

dbstep akan mengembalikan sebuah peringatan (prompt) 2. Percobaan desain dan simulasi filter FIR 1
ketika setiap baris perintah dieksekusi.

dbcont menyebabkan sebuah eksekusi program yang normal Kita akan coba beberapa filter FIR dengan spesifikasi
berhenti, atau bila ada kesalahan, mengembalikan status Anda berikut (frekuensi boleh diubah-ubah).
ke MATLAB command prompt.  Filter FIR low-pass orde 32 dengan frekuensi
cut-off 800 Hz
dbquit menyebabkan Anda keluar dari modedebug dan  Filter FIR band-pass orde 32 dengan frekuensi
kembali ke MATLAB command prompt. pass 1000 – 3000 Hz
 Filter FIR band-pass orde 32 dengan frekuensi
pass 1000 – 3000 Hz
IV. HASIL DAN ANALISIS

Percobaan membuat sinyal input filter berupa superposisi


beberapa sinyal sinusoidal dengan frekuensi berbeda.

Rancang ketiga filter di atas, cari koefisien filter-


nya dengan perintah yang sesuai (fir1). Catat masing-
masing koefisien filter. Lalu lihat frekuensi respon
masing-masing filter dengan perintah freqz.
Gambarkan hasilnya. Analisa pada frekuensi cut off

3. Percobaan desain dan simulasi filter FIR 2

Kita akan coba mendesain filter FIR dengan metoda


frekuensi sampling dengan respon frekuensi seperti pada
Gambar 1. 2 Respon Frekuensi Filter

Gambar 2. Sinyal sinusoidal dengan frekuensi berbeda

Gambar 3. Respon frekuensi dari gambar 2

Pada percobaan pertama ini praktikan telah melihat sinyal filter


sinusoidal dengan frekuensi yang berbeda. Dimana Fs = 16000
hz, F1 = 200 hz, F2 = 1000 hz dan F3 = 5000 hz. Praktikan telah
mendapatkan sinyal input filter yang nantinya akan digunakan
Rancang filter di atas, cari koefisien filter-nya dengan untuk merancang pem-filteran FIR.
perintah yang sesuai (fir2). Catat koefisien filter.
Gunakan orde 16. Lalu Lihat frekuensi respon filter Disini praktikan menggunakan frekuensi pencuplikan sebesar
dengan perintah freqz. Gambarkan hasilnya. Lakukan Fs = 16000 hz agar tetapmemenuhi kriteria Nyquist. Karena
untuk orde lebih besar misalnya 128. Bandingkan jika tidak memenuhi kireteria tersebut akan menimbulkan efek
dengan hasil sebelumnya. yang di sebut aliasing. Rumus kireteria Nyquist :

Fs = > 2fi
4. Percobaan membuat m-file untuk melakukan pem-
filter-an FIR Fenomena aliasing proses pencupllikan akan muncul pada
sinyal hasil pencuplikan apabila proses frekuensi sinyal
pencuplikan tidak memenuhi kireteria di atas.
Pada bagian ini anda diminta untuk membuat m-file
untuk melakukan pemfilteran FIR saja, untuk m-file Lalu pada sintot sendiri tidak terjadi efek aliasing karena
anda tidak diperbolehkan memanggil fungsi internal frekuensi informasi tertinggi pada sintot sebesar 5000 hzjika
MATLAB. Bandingkan hasilnya dengan percobaan
dengan menggunakan perintah filter dari MATLAB.
dilihat dari rumus kriteria Nyquist Fs = > 2Fi maka 16000 = >
2 x 5000. Jadi pada sintot tidak terjadi prases aliasing.

Percobaan desain dan simulasi filter FIR 1

Gambar 7. Respon frekuensi dari gambar 6

Gambar 4. Sinyal sinusoidal dengan filter FIR low-pass


Gambar 8. Sinyal sinusoidal dengan filter FIR high-pass

Gambar 5. Respon frekuensi dari gambar 4 Gambar 9. Respon frekuensi dari gambar 8

Pada percobaan ke dua dilakukan pembuatan tiga buah filter


dengan memanfaatkan fungsi FIR1 yang sudah tersedia pada
MATLAB. Filter pertama yang dibuat yaitu Filter FIR low-pass
orde 32 dengan frekuensi cut-off 800 Hz yang sinyalnya
ditunjukkan pada gambar 4 dengan respon frekuensi pada
gambar 5. Pada pembuatan filter low-pass, frekuensi cut-off
yang digunakan adalah 800 Hz orde 32. Perhitungan nilai 𝑊𝑛
dilakukan dengan rumus :

𝑓𝑐
Wn =
𝑓𝑚𝑎𝑥
sehingga diperoleh 𝑊𝑛 = 0.1.

Filter kedua yang dibuat yaitu Filter FIR band-pass orde 32


dengan frekuensi pass 1000 – 3000 Hz, sinyal pada filter kedua
ini ditunjukkan pada gambar 6 dengan respon frekuensi yang
ditunjukkan pada gambar 7. pada grafik frekuensi normalisasi-
Gambar 6. Sinyal sinusoidal dengan filter FIR band-pass magnitude terlihat bahwa system melewatkan sinyal sepanjang
𝑊𝑛 yang diberikan, yaitu antara 0.125dan 0.375, sedangkan
pada 𝑊𝑛 diatas 0.375 sinyal membentuk ripple yang
menandakan sinyal teredam.

Filter ke tiga yang dibuat yaitu Filter FIR high-pass orde 32


dengan frekuensi cut-off 6000Hz dengan melakukan
perhitungan yang sama maka akan didapat nilai Wn sebesar
0,75, sinyal pada filter ketiga ini ditunjukkan pada gambar 8
dengan respon frekuensi pada gambar 9. Malalui perintah
freqz() pada matlab diperoleh respon frekuensi untuk high-pass
filter, yang mana sinyal yang dilewatkan adalah sinyal dengan
frekuensi tinggi, 𝑊𝑛 = 0.75. pada grafik (gambar 8) terlihat
bahwa sinyal teredam hingga 𝑊𝑛0.6 dan mulai naik hingga
𝑊𝑛0.75, dari sini sinyal tidak lagi teredam dan dilewatkan.

Percobaan Desain Dan Simulasi Filter FIR 2.

Gambar 13. Respon frekuensi dari gambar 12

Pada percobaan yang ketiga yaitu percobaan desain dan


simulasi filter FIR 2, dengan menggunakan 2 orde yaitu orde 16
dan orde 128. Grafik respon frekuensi orde 16 dan orde 128
ditunjukkan oleh gambar 10 dan 11. pada grafik orde16 terlihat
bahwa grafik yang ditampilkan dalam rentang 0 < 𝑓 < 1 lebih
sedikit dibandingkan grafik orde 128 tetapi memiliki kesamaan
pada respon frekuensi yang dihasilkan. Hal ini dikarenakan
semakin besar orde yang digunakan maka semakin banyak
sampel yang digunakan dan menyebabkan grafik semakin
rapat.

Dari data ini diperoleh nilai frekuensi cut-off dan amplitude


yaitu 𝑓𝑐 = [0 800 1200 800] dan 𝑚 = [1 1 0 0]. Dengan
menggunakan rumus :

Gambar 10. Sinyal sinusoidal dengan orde 16 2𝑓𝑐


F=
𝑓𝑠

Diperoleh frekuensi breakpoints 𝑓 = [0 0.1 0.15 1].

Percobaan membuat m-file untuk melakukan pem-filter-an


FIR

Gambar 11. Respon frekuensi dari gambar 10

Gambar 14. Sinyal dengan m-file

Gambar 12. Sinyal sinusoidal dengan orde 128


Pada bagian ini praktikan diminta untuk membuat m-file untuk
melakukan pemfilteran FIR saja, untuk m-file praktikan tidak
diperbolehkan memanggil fungsi internal MATLAB.
Bandingkan hasilnya dengan percobaan dengan menggunakan
perintah filter dari MATLAB, dari hasil yag di dapat pada
gambar 14 menunjukkan sinyal yang hamper sama dengan
gambar 12 hanya saja pada percobaan m-file sinyal yang
dikeluarkan tidak mulus. Hal ini dikarenakan noise yang
terdapat pada m-file.

V. SIMPULAN

1. System help sangat bermanfaat sekali bagi siapapun yang


memulai menggunakan MATLAB. Gunakan perintah ini
apabila kita merasa lupa atau ingin tahu commands atau
syntax dasar ketika menggunakan MATLAB
2. Percobaan 2 dan 3 memperdalam praktikan untuk lebih
memahami penggunaan MATLAB dalam mendisain filter
3. Praktikan jiga telah mampu melakukan desain dan simulasi
filter FIR melalui percobaan 2 dan 3
4. Praktikan telah mampu memahami secara mendalam serta
merancang pem-filter-an FIR dengan MATLAB.

VI. REFERENSI

[1] Hutabarat, Mervin T. 2014. Petunjuk Praktikum


Pengolahan Sinyal Digital. Bandung : Institut Teknologi
Bandung

[2] proakis, J.G and D.G Manolakis, Digital Signal


Proccessing, Principles, Algorithms, and Application 4th cd.
Upper saddle river, NJ : Prentice all, 2006.

[3] https://www.scribd.com/document/409827957/Modul-1-
Laporan-Praktikum-Psd, diakses pada22 /09/2019, pukul :
09.47 WIB.
Lampiran

Data pengukuran :

Anda mungkin juga menyukai