7/26/2019 Pemodelan Dan Simulasi Modul 1 (1)
1/9
Pemodelan dan Simulasi =Muhamar Kadaffi, MT MODUL : 1
MODUL 1
MATLAB akan digunakan secara ekstensif pada praktikum ini. Modul ini
memberikan tinjauan singkat mengenai MATLAB dan kapabilitasnya dengan penekanan
pada isu pemrograman. Seluruh materi pada modul ini merupakan terjemahan bebas dari
buku DSP First, A Multimedia Approach karangan ames !. Mc"lellan# $onald %.
Schafer# dan Mark A. &oder# terbitan 'rentice(!all )*++,-# khususnya Appendi B dan ".
I. Tujuan
Tujuan khusus modul /*. Mempelajari penggunaan sistem helpuntuk mengetahui commandsdansyntaxdasar
MATLAB
0. 1apat menggunakan MATLAB untuk desain filter
II. Dasar Teori
MATLAB )Matri Laboratory- adalah sebuah program untuk analisis dan komputasi
numerik. 'ada a2alnya# program ini merupakan interfaceuntuk koleksi rutin(rutin numerik
dari proyek L34'A"5 dan 63S'A"5# namun sekarang merupakan produk komersial dari
perusahaan Math2orks# 3nc. MATLAB telah berkembang menjadi sebuah environmentpemrograman yang canggih yang berisi fungsi(fungsi built-in untuk melakukan tugas
pengolahan sinyal# aljabar linier# dan kalkulasi matematis lainnya. MATLAB juga berisi
toolboxyang berisi fungsi(fungsi tambahan untuk aplikasi khusus .
MATLAB bersifat extensible# dalam arti bah2a seorang pengguna dapat menulis
fungsi baru untuk ditambahkan pada libraryketika fungsi(fungsi built-inyang tersedia tidak
dapat melakukan tugas tertentu. 5emampuan pemrograman yang dibutuhkan tidak terlalu
sulit bila Anda telah memiliki pengalaman dalam pemrograman bahasa lain seperti "#
'AS"AL# atau 78$T$A4.
1. MATLAB HELP
MATLAB menyediakan sistem help on-lineyang dapat diakses dengan perintah
help. Misalnya# untuk memperoleh informasi mengenai fungsi filter# Anda hanya perlumengetikkan perintah
>> help filter
'erintah di atas akan menampilkan informasi dalam bentuk teks pada layar
MATLAB Anda.
Pemodelan dan SimulasiMuhamar Kadaffi, MT
Pusat Pengembangan BahanAjar9ni:ersitas Mercu Buana
111
7/26/2019 Pemodelan Dan Simulasi Modul 1 (1)
2/9
Pemodelan dan Simulasi =Muhamar Kadaffi, MT MODUL : 1
Sebuah perintah yang sangat berguna untuk mempelajari pemrograman MATLAB
adalah intro# yang membahas konsep(konsep dasar tentang bahasa MATLAB. Selain itu#juga terdapat banyak program demonstrasi yang mengilustrasikan berbagai kapabilitas
MATLAB# yang dapat dimulai dengan perintah demo.
2. VARIABEL DAN OPERASI MATRIKS
Tipe :ariabel dasar pada MATLAB adalah matriks )pada :ersi ; dan ke atas#
MATLAB juga menyediakan berbagai tipe data seperti pada bahasa pemrograman
lainnya-. 9ntuk mendeklarasikan sebuah :ariabel# Anda hanya perlu memberikan nilai
tertentu padanya pada MATLABprompt. Sebagai contoh#
M ! " 1 2 #$ % 2 1&
M !
1 2 #
% 2 1
5etika 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 ()pada akhirdari sebuah baris yang ingin dilanjutkan. Sebagai contoh#
P = [ 1, 2, 4, 6, 8 ]+ [ pi, 4, exp(1), 0, -1] + [ co(0!1"pi), in(pi#$), t%n($), %t%n(2), &rt(pi) ]'
5etika sebuah ekspresi perintah atau pernyataan diakhiri dengan tanda semicolon
)> Msize = size(M Msize =
! "
8leh karena itu# kita tidak perlu menggunakan :ariabel khusus untuk melacak
jumlah baris dan kolom suatu matriks. Ada dua jenis :ariabel matriks pada MATLAB#yakni skalar )scalars- dan :ektor )vectors-. Sebuah skalar adalah sebuah matriks yang
hanya berisi satu elemen# jadi berukuran * *. Sebuah :ektor adalah sebuah matriks yang
hanya berisi satu baris atau kolom.
6lemen indi:idu dari sebuah :ariabel matriks dapat diakses dengan memberikan
indeks baris dan kolom# sebagai contoh
>> M1" = M(1," M1" =
#
Pemodelan dan SimulasiMuhamar Kadaffi, MT
Pusat Pengembangan BahanAjar9ni:ersitas Mercu Buana
112
7/26/2019 Pemodelan Dan Simulasi Modul 1 (1)
3/9
Pemodelan dan Simulasi =Muhamar Kadaffi, MT MODUL : 1
Submatriks juga dapat diakses dengan cara yang mirip dengan menggunakan
operator colon)/- seperti yang dijelaskan pada sesi berikut.
2.1. O'era(or )o*on +:,
8perator colon)/- sangat berguna untuk membuat index arrays. =unakan perintah
help colonuntuk mengetahui deskripsi detail tentang kapabilitasnya.
4otasi colondidasarkan pada ide bah2a sebuah selang indeks dapat dihasilkan
dengan memberikan sebuah nilai a2al# inter:al# dan sebuah nilai akhir. 5arena itu# sebuah
:ektor yang terpartisi secara teratur dapat diperoleh dengan perintah
iii = nil%i %%l * inter%l * nil%i %hir
Tanpa parameter inter%l# nilai default(nya adalah *. Metode perhitungan ini
mirip dengan notasi loop18 pada 78$T$A4# namun metode pada MATLAB selangkahlebih maju dengan cara menggabungkannya dengan pengindeksan matriks. 9ntuk sebuah
matriks . x 8#(2,$)adalah elemen skalar yang berada pada baris kedua dan kolomketiga dari matriks A. adi sebuah submatriks > ? dapat diekstrak dengan perintah
(2*/,1*$)!Tanda colon juga berfungsi sebagai sebuah ild card# misalnya#(2,*) adalahbaris kedua matriks.
'engindeksan mundur akan membalikkan sebuah :ektor# misalnya @)+/(*/*-
untuk sebuah :ektor yang berisi + buah elemen. 5adang(kadang# Anda juga memerlukan
sebuah daftar yang berisi semua nilai elemen pada matriks# jadi (*)memberikan sebuah:ektor kolom 0 *# yang merupakan hasil concatenationelemen(elemen setiap kolom
matrik. 3ni merupakan contoh reshapin!matriks. Teknik reshapin!yang lebih umumdapat dilakukan dengan fungsi reh%pe(,,). Sebagai contoh# matriks . x 8dapatdi(reshapemenjadi sebuah matriks *0 denganne = reh%pe(,12,6)!
2.2. O'erasi Ma(ri-s anArray
8perasi defaultpada MATLAB adalah operasi matriks. adi"berarti perkalianmatriks# yang akan dibahas pada bagian berikut.
0.0.*. Tinjauan 'erkalian Matriks
8perasi perkalian matriks hanya dapat dilakukan bila kedua matrikstersebut memiliki dimensi yang kompatibel# yakni jumlah kolom matriks harussama dengan jumlah baris matriks . Sebagai contoh# sebuah matriks ; , dapatmengalikan sebuah matriks , ? untuk menghasilkan sebuah matriks ; ?.Secara umum# bilaadalah m n# maka haruslah n p# dan hasil perkalianakan memiliki dimensi m p. 9mumnya perkalian matriks tidak bersifat komutatif#
yakni . Bila p m# maka perkaliantidak terdefinisi.
Beberapa kasus khusus untuk perkalian matriks adalah outer product dan
inner product. 'ada outer product# sebuah :ektor kolom mengalikan sebuah :ektor
Pemodelan dan SimulasiMuhamar Kadaffi, MT
Pusat Pengembangan BahanAjar9ni:ersitas Mercu Buana
113
7/26/2019 Pemodelan Dan Simulasi Modul 1 (1)
4/9
Pemodelan dan Simulasi =Muhamar Kadaffi, MT MODUL : 1
baris untuk menghasilkan sebuah matriks. Bila kita membiarkan semua elemen salah
satu :ektor tersebut berupa C*D # maka kita akan memperoleh hasil yang berulang.
[ ]
=
????
0000
****
?
0
*
****
aaaa
aaaa
aaaa
a
a
a
9ntuk inner product# sebuah :ektor baris mengalikan sebuah :ektor kolom#
jadi hasilnya berupa skalar. Bila kita membiarkan semua elemen salah satu :ektor
tersebut berupa C*D# maka kita akan memperoleh penjumlahan semua elemen :ektor
lainnya.
[ ] >?0*>?0*
*
*
*
*
aaaaaaaa +++=
0.0.0. 8perasipointise array
Bila kita ingin melakukan perkalian pointise# ada beberapa kebingungan
yang bisa muncul. 'ada kasuspointise# kita ingin mengalikan matriks secara elemen
per elemen# jadi mereka harus memiliki dimensi yang sama. Sebagai contoh# dua
matriks ; , dapat dikalikan secara pointise# 2alaupun keduanya tidak bisa
melakukan perkalian matriks biasa. 9ntuk melakukan perkalian pointise pada
MATLAB# kita menggunakan operator point-star" !" . Misalnya biladan keduanya adalah matriks ? 0 maka
=
==
?0?0?*?*
00000*0*
*0*0****
?0?*
000*
*0**
?0?*
000*
*0**
EE
EE
EE
E.E.
baba
baba
baba
bb
bb
bb
aa
aa
aa
#A$
9ntuk selanjutnya# perkalian semacam ini kita sebut dengan istilah perkalian
array. 'erhatikan bah2a perkalian array bersifat komutatif karena kita akan
memperoleh hasil yang sama bila kita menghitung 3 = !".
1alam MATLAB# bila sebuah titik digunakan dengan operator aritmetik#
maka ia akan mengubah definisi operator tersebut ke operasi pointise. adi
operator .F berarti pembagianpointise# .G berarti pemangkatanpointise. Misalnya#
xxH )I.+-.G)I/>+- akan menghasilkan suatu :ector yang nilainya sama dengan )I#+- n
untuk n H I#*# 0# J>+.
0.0.? 8perasi concatenation array
8perasi ini digunakan untuk menempelkan dua atau lebih array dengan syaratsyarat tertetu sesuai dengan operasi concatenation yangdiinginkan. 1alam MATLAB
Pemodelan dan SimulasiMuhamar Kadaffi, MT
Pusat Pengembangan BahanAjar9ni:ersitas Mercu Buana
114
7/26/2019 Pemodelan Dan Simulasi Modul 1 (1)
5/9
Pemodelan dan Simulasi =Muhamar Kadaffi, MT MODUL : 1
terdapat dua buah fungsi yang dapat digunakan untuk melakukan proses
concatenation )penempelan- arrays. 7ungsi tersebut adalah :ertcat dan horKcat.
'enjelasan lanjut dapat dilihat pada help MATLAB untuk fungsi(fungsi tersebut.
/. PLOT DAN 0RAIK
MATLAB dapat menghasilkan plot dua dimensi (y dan plot tiga dimensi#
menayangkan citra# dan bahkan membuat dan memutar :ideo. 1ua fungsi yang yang
sering digunakan pada praktikum ini adalah plotdan tem. 9ntuk memanggil fungsi ini#umumnya kita membutuhkan dua :ektor )satu :ektor juga bisa# namun untuk definisi
yang berbeda# gunakan perintah helpuntuk melihat informasi yang lebih lengkap-# untuksumbu dan sumbu y. 'emanggilan fungsi plot(x,)akan menghasilkan suatu plot yangterkoneksi dengan garis lurus untuk setiap dua titik
5 (x(1),(1), (x(2),(2), (x($),($), !!, (x(),() seperti yang ditunjukkan padagambar 'A.*.
'emanggilan fungsi tem(x,) akan menghasilkan presentasi seperti yangditunjukkan pada gambar kedua 'A.*
0 0.5 1 1.5 2 2.5 3 3.5 4-1
-0.5
0
0.5
1tt = 0:0.3:4; xx = sin(0.7*pi*tt); plot( tt, xx)
0 0.5 1 1.5 2 2.5 3 3.5 4-1
-0.5
0
0.5
1tt = 0:0.3:4; xx = sin(0.7*pi*tt); stem( tt, xx)
0a3ar PA.1
MATLAB memiliki banyak opsi plottin! yang dapat dipelajari dengan helpplotx, help plotx# dan help 7r%phic):ersi >- atau help 7r%ph2d, help 7r%ph$d,dan help pec7r%ph):ersi ;-.
Pemodelan dan SimulasiMuhamar Kadaffi, MT
Pusat Pengembangan BahanAjar9ni:ersitas Mercu Buana
115
7/26/2019 Pemodelan Dan Simulasi Modul 1 (1)
6/9
Pemodelan dan Simulasi =Muhamar Kadaffi, MT MODUL : 1
/.1. Figure Windows
5etika MATLAB membuat sebuah plot# MATLAB menulis grafik tersebut ke
fi!ure indos. Anda bisa membuka beberapafi!ure indos namun setiap saat hanya
satu indoyang aktif. Setiap perintah plot pada command indoakan mengalihkankeluarannya ke indoyang aktif. 'erintah fi7re(n)akan menampilkan sebuahfi!ureindoyang baru yang ditandai dengan bilangan n# atau membuatnya aktif kembali bila
telah ada sebelumnya. 'engendalian terhadap berbagai atribut indo)ukuran# lokasi#
2arna- juga mungkin dilakukan dengan perintah fi7re# yang melakukan inisialisasiterhadap indo plot.
/.2. Me4P*o( 3e3era'a 5ra6i-
Anda juga dapat membuat beberapa grafikFplot pada satu indo dengan
menggunakan fungsi 9plot. 7ungsi ini tidak melakukan prosesplottin!# namun hanyamembagi 2indo2 menjadi beberapa segmen. Sebagai contoh# perintah 9plot($,2,$)akan membagi fi!ure indomenjadi tiga baris dan dua kolom )jadi terdapat enam
segmen- dan mengarahkan plot berikutnya ke segmen kiri baris kedua. =rafik pada 'A.*
diperoleh dengan perintah 9plot(2,1,1)dan 9plot(2,1,2).
7. KONSTRUK PEMRO0RAMAN
MATLAB mendukung paradigma pemrograman fungsional# di mana Anda dapat
menyusun fungsi(fungsi secara nested. 'erhatikan persamaan di ba2ah
( )=
%
n
nx
*
log
yang dapat diimplementaskan dengan hanya menggunakan satu baris kode MATLAB#
yakni
sum( lo$( a%s(&
di mana x adalah sebuah :ektor yang berisi elemen(elemen n. "ontoh inimengilustrasikan MATLAB dalam bentuk yang paling efisien# di mana fungsi(fungsi
indi:idu dikombinasikan untuk menghasilkan keluaran. 'enulisan kode(kode MATLAB
yang efisien memerlukan gaya pemrograman yang menghasilkan fungsi(fungsi kecil yang
di:ektorisasi. %oop-loop harus dihindari. "ara utama untuk menghindari loop adalah
memanggil fungsi(fungsi toolboxsebanyakFsesering mungkin.
7.1. un5si46un5si built-inMATLAB
Banyak fungsi(fungsi MATLAB yang dapat beroperasi pada skalar sama
mudahnya dengan operasi pada array. Sebagai contoh# bila xadalah sebuah array# maka
Pemodelan dan SimulasiMuhamar Kadaffi, MT
Pusat Pengembangan BahanAjar9ni:ersitas Mercu Buana
116
7/26/2019 Pemodelan Dan Simulasi Modul 1 (1)
7/9
Pemodelan dan Simulasi =Muhamar Kadaffi, MT MODUL : 1
co(x) mengembalikan sebuah array dengan ukuran yang sama seandainya x berisikosinus dari setiap elemen x.
=
-cos)-cos)-cos)
-cos)-cos)-cos)
-cos)-cos)-cos)
-cos)
#0#*#
#00#0*#0
#*0#**#*
nmmm
n
n
xxx
xxx
xxx
x
'erhatikan bah2a tidak ada loopyang diperlukan# meskipun co(x)melakukanoperasi kosinus pada setiap elemen array. 5ebanyakan fungsi transcendentalmengikuti
aturan pointise ini. 'ada beberapa kasus khusus# adalah sangat penting untuk
membedakan eksponensial matriks (expm) dengan eksponensialpointise(exp)*
=
-e.p)-e.p)-e.p)
-e.p)-e.p)-e.p)
-e.p)-e.p)-e.p)
-e.p)
#0#*#
#00#0*#0
#*0#**#*
nmmm
n
n
aaa
aaa
aaa
A
7.2. A*iran Pro5ra +Program Flow,
Aliran program dapat dikendalikan pada MATLAB menggunakan pernyataan if#loophile# dan loopfor. 'ada MATLAB :ersi ;# terdapat juga pernyataan itch. !al inimirip dengan bahasa(bahasa tingkat tinggi seperti " atau 'AS"AL. 1eskripsi dan
contoh dari setiap konstruk program tersebut dapat dilihat dengan menggunakan perintahhelp.
%. MATLAB S8RIPTS
Setiap perintahFpernyataan yang dapat dimasukkan pada indo prompt dapat
disimpan pada sebuah file teks dan dieksekusi sebagai script. File teks tersebut dapat
dibuat dengan menggunakan sembarang editorAS"33 seperti program 4otepad atau pada
editor teks MATLAB. 6kstensifileharus berupa .m danscript tersebut dieksekusi pada
MATLAB dengan hanya mengetikkan namafile )dengan atau tanpa ekstensi-. 'rogram(
program tersebut umumnya dikenal dengan istilah m-file. Berikut merupakan contoh
sebuah m-file/
tt = '')"*+&& = sin(')-pi-tt+su%plot(!,1,1plot( tt, &&title(.tt = '')"*+ && = sin(')-pi-tt+ plot( tt, &&/su%plot(!,1,!stem( tt, &&title(..tt = '')"*+ && = sin(')-pi-tt+ plot( tt, &&/
Pemodelan dan SimulasiMuhamar Kadaffi, MT
Pusat Pengembangan BahanAjar9ni:ersitas Mercu Buana
117
7/26/2019 Pemodelan Dan Simulasi Modul 1 (1)
8/9
Pemodelan dan Simulasi =Muhamar Kadaffi, MT MODUL : 1
Bila perintah(perintah ini disimpan dengan file bernama plottem!m makapengetikan plottem pada command prompt akan menjalankan file tersebut# dankedelapan baris perintah akan dieksekusi sama halnya bila mereka diketikkan baris per
baris pada command prompt. !asilnya adalah dua buah plot seperti yang tampak pada
gambar A.*.
III. Persia'an Pra-(i-u:
'elajari penggunaan perintah fir1# fir2# filter# freqz dan perintah(perintah lain
yang berhubungan dengan topik praktikum pada Matlab.
IV. Pe(unju- Pra-(i-u
1. Me3ua( sin9a* in'u( 6i*(er 3eru'a su'er'osisi 3e3era'a sin9a* sinusoia*en5an 6re-uensi 3er3ea
1. 'ada Matlab# representasikan sinyal dalam :ektor )matriks * 4# 4 panjang
:ektor-. 5ita akan merepresentasikan sumbu 2aktu dimana untuk It0# kita
beri panjang :ektor *II )*II sampel- dengan perintah >>i=1:100;
2. Buat ? sinyal sinusoidal pada frekuensi pencuplikan fsH*III !K untuk masing(
masing frekuensi sinyal f*H0II !K# f0H*III !K# f?H;III !K. 5etikkan>>sin1=sin(2*pi*i*f1/fs);sin2=sin(2*pi*i*f2/fs);sin3=sin(2*pi*i*f3/fs
);
3. umlahkan ketiga sinyal tersebut menjadi satu sinyal sinusoidal rusak dengan
perintah >>sintot=(sin1+sin2+sin3)/3;4. "oba plot gambarnya dengan perintah >>plot(sintot);
5. Lihat juga respon frekuensinya dengan perintah freqz.
6. 5ini Anda telah memiliki sinyal input untukfilteryang akan kita rancang.
2. Desain an Siu*asi i*(er IR
5ita akan coba beberapafilter73$ dengan spesifikasi berikut )frekuensi boleh
diubah(ubah-
a. 7ilter 73$ lo-passorde ?* dengan frekuensi cut-off,II !K
b. 7ilter 73$ band-passorde ?* dengan frekuensipass*III N ?III !K
c. 7ilter 73$ hi!h-passorde ?* dengan frekuensi cut-offIII!K
*. $ancang ketigafilterdi atas# cari koefisienfilter(nya dengan perintah yang sesuai
)fir1atau fir2-. "atat masing(masing koefisienfilter.
0. Lihat frekuensi respon masing(masing filterdengan perintah freqz. =ambarkan
hasilnya.
Pemodelan dan SimulasiMuhamar Kadaffi, MT
Pusat Pengembangan BahanAjar9ni:ersitas Mercu Buana
118
7/26/2019 Pemodelan Dan Simulasi Modul 1 (1)
9/9
Pemodelan dan Simulasi =Muhamar Kadaffi, MT MODUL : 1
0OTO2 3O4M5T L5PO45
/.1. Peran)an5an i*(er en5an Ma(*a3
'lot Sinyal 3nput
Sinyal 3nput $espon 7rekuensi
/.2. Desain i*(er IR
Lo2(pass orde ?* f
cut(off ,II !K 5oefisien 7ilter
$espon 7rekuensi 7ilter
Band(pass orde ?* f
cut(off *III(?III !K 5oefisien 7ilter
$espon 7rekuensi 7ilter
!igh(pass orde ?* f
cut(off III !K
$espon 7rekuensi 7ilter
Pemodelan dan SimulasiMuhamar Kadaffi, MT
Pusat Pengembangan BahanAjar
119
Top Related