diktat praktikum dsp
Post on 24-Dec-2015
252 Views
Preview:
DESCRIPTION
TRANSCRIPT
Diktat Praktikum Pengolahan Sinyal Digital
(PSD)
Teknik Telekomunikasi
Jurusan Teknik Elektro
Politeknik Negeri Jakarta (PNJ) Copyright © 2013
MATLAB is an integrated technical computing environment that combines
numeric computation, advanced graphics and visualization,
and a highlevel programming language.
– www.mathworks.com/products/matlab
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 1
KATA PENGANTAR
Segala puji kita panjatkan kepada Allah SWT yang telah memberikan rahmat dan
hidayah-Nya sehingga kami dapat menyelesaikan Diktat Praktikum Pengolahan Sinyal
Digital dengan baik sesuai dengan waktu yang telah kita tentukan. Bersama ini kami juga
menyampaikan terima kasih kepada semua pihak yang telah membantu hingga
terselesaikannya diktat ini.
Semoga segala yang telah kita kerjakan merupakan bimbingan yang lurus dari Yang
Maha Kuasa. Proses penyusunan diktat ini tentu jauh dari sempurna, oleh karena itu segala
kritik dan saran sangat diharapkan demi perbaikan dan penyempurnaan tugas ini dan untuk
pelajaran bagi kita semua masa mendatang. Semoga dengan adanya diktat ini kita dapat
belajar bersama demi kemajuan kita dan kemajuan ilmu pengetahuan.
Depok,
Penyusun
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 2
DAFTAR ISI
Halaman
KATA PENGANTAR …………………………………..………...……….................... 1
DAFTAR ISI ………………...…………………….……………………….................... 2
BAB 1 Pengenalan Matlab ……………….………………………...................... 3
BAB 2 Operasi Dasar MATLAB……………….………………………............. 19
BAB 3 Matriks ……………….………………………......................................... 26
BAB 4 M-File dan Pemrograman MATLAB ……………….………………….. 35
BAB 5 Grafik Dua Dimensi ……………….……………………….................... 49
BAB 6 Grafik Tiga Dimensi ……………….………………………................... 62
BAB 7 Diferensial dan Integral ……………….………………………............... 75
BAB 8 Transformasi Z dan Laplace ……………….………………………........ 84
BAB 9 Transformasi Fourier ……………….………………………................... 95
BAB 10 Fungsi, Interpolasi, dan Statistik……………….……………………….. 107
BAB 11 IIR dan FIR Filter ……………….………………………........................ 120
BAB 12 Graphical User Interface ……………….……………………….............. 128
BAB 13 Simulink ……………….………………………...................................... 139
DAFTAR PUSTAKA ..………………………………………..…………...................... 144
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 3
BAB 1
Pengenalan Matlab
1.1 Tujuan Pengajaran
1. Mahasiswa dapat menjalankan program MATLAB.
2. Mahasiswa mengetahui beberapa fasilitas pada MATLAB
3. Mahasiswa dapat menggunakan menu-menu pada MATLAB untuk bekerja
4. Mahasiswa mengetahui beberapa perintah MATLAB dan kegunaannya
5. Mahasiswa mengetahui kegunaan toolbar pada layar MATLAB
1.2 Alat dan Bahan
1. Komputer
2. Software MATLAB versi 5 atau sesudahnya.
3. White Board (untuk penjelasan oleh dosen)
4. Proyektor Komputer (untuk demonstrasi)
5. Spidol (untuk white board)
6. Kertas
7. Buku/Modul/Handout/Petunjuk Praktikum
1.3 Pengertian Matlab
Menurut mathworks, Matlab memiliki pengertian :
MATLAB is an integrated technical computing environment that combines
numeric computation, advanced graphics and visualization, and a highlevel
programming language.
– www.mathworks.com/products/matlab
MATLAB (Matrix Laboratory) adalah bahasa tingkat tinggi dan interaktif yang
memungkinkan untuk melakukan komputasi secara intensif. MATLAB telah berkembang
menjadi sebuah environment pemrograman yang canggih yang berisi fungsi-fungsi builtin
untuk melakukan pengelolahan sinyal, aljabar linear dan kalkulasi matematis lainnya.
MATLAB juga berisi toolbox yang berisi fungsi fungsi tambahan untuk aplikasi khusus.
Penggunaan MATLAB meliputi bidang-bidang :
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 4
1. Matematika dan Komputasi
2. Pembentukan
3. Algorithm
4. Akuisisi
5. Data
6. Pemodelan,
7. Simulasi dan Pembuatan Prototype
8. Analisis
9. Data, Explorasi, dan Visualisasi
10. Grafik
11. Keilmuan dan Bidang Rekayasa
12. Grafik User Interface (GUI)
Sementara itu, MATLAB juga memiliki kekuatan diantaranya meliputi
1. Kemudahan manipulasi struktur matriks.
2. Jumlah routine-routine powerful yang berlimpah yang terus berkembang.
3. Kekuatan fasilitas grafik tiga dimensi yang sangat memadai.
4. Sistem scripting yang memberikan keleluasaan bagi pengguna untuk
mengembangkan dan memodifikasi software untuk kebutuhan sendiri.
5. Kemampuan interface( misal dengan bahasa C, word dan mathematica).
6. Dilengkapi dengan toolbox, simulink, stateflow dan sebagainya, serta mulai
melimpahnya source code di internet yang dibuat dalam matlab( contoh toolbox
misalnya : signal processing, control system, neural networks dan sebagainya).
Semua itu merupakan perangkat yang powerful untuk menyelesaikan permasalahan
sains dan teknik terutama untuk wilayah dimana komputasi numerik harus dibuat.
Dalam buku ini kita akan mempelajari MATLAB setahap demi setahap, mulai dari
hal yang sederhana hingga yang cukup kompleks. Di dalam buku ini kita akan mempelajari
„teori‟ penggunaan MATLAB, namun untuk menjadi mahir Anda harus duduk di depan
komputer dan mempraktekkannya secara langsung.
1.4 Desktop Matlab
Ketika MATLAB dijalankan pertama kali, MATLAB desktop tampil, berisi tools
(graphical user interfaces) untuk mengatur file, variables, dan aplikasi MATLAB. Pertama
kali MATLAB dijalankan akan tampil desktop dengan ilustrasi sebagai berikut.
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 5
Gambar 1.1 Tampilan Awal MATLAB
Jendela-jendela yang ada di MATLAB adalah sebagai berikut :
Command window
Digunakan untuk menjalankan fungsi-fungsi MATLAB. Pada command window,
semua perintah matlab dituliskan dan diekskusi. Kita dapat menuliskan perintah
perhitungan sederhana, memanggil fungsi, mencari informasi tentang sebuah fungsi
dengan aturan penulisannya (help), demo program, dan sebagainya. Setiap penulisan
perintah selalu diawali dengan prompt „>>‟. Misal, mencari nilai sin 60, maka pada
command window kita dapat mengetikkan :
>> sin (60*pi/180)
ans =
0.8660
>> sin(30*pi/180)
ans =
0.5000
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 6
Command history
Digunakan untuk menyimpan baris-baris perintah yang telah diketikkan di command
window. Kita dapat melihat fungsi-fungsi yang digunakan sebelumnya, mengkopi dan
menjalankannya kembali dari command history. Jendela ini berisi informasi tentang
perintah yang pernah dituliskan sebelumnya. Kita dapat mengambil kembali perintah
dengan menekan tombol panah ke atas atau mengklik perintah pada jendela histori,
kemudian melakukan copypaste ke command window.
Gambar 1.2 Tampilan Command History
Help browser
Untuk mencari dan menampilkan dokumentasi semua produk MathWorks.
Gambar 1.3 Help Product MATLAB
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 7
Untuk menghafalkan semua perintah MATLAB mungkin akan menemui banyak
kesulitan. Untuk menemukan perintah-perintah itu, MATLAB menyediakan bantuan
dengan menyediakan help online. Kemampuan ini meliputi perintah MATLAB untuk
memperoleh keterangan cepat pada command window atau pada help browser.
Help browser memiliki dua bagian utama: Help Navigator, dan layar tampilan di sisi
kanan. Cara penggunaan help browser mirip dengan Windows Explorer; apa yang kita
pilih di daftar navigator akan ditampilkan di layar sisi kanan. Help Navigator ini
memiliki sejumlah komponen:
a. Product filter : mengaktifkan filter untuk memperlihatkan dokumentasi hanya
pada produk yang Anda inginkan
b. Tab Contents : melihat judul dan daftar isi dokumentasi
c. Tab Index : mencari entri indeks tertentu (dengan kata kunci) di dalam
dokumentasi
d. Tab Demos : melihat dan menjalankan demo
e. Tab Search : untuk mencari dokumentasi yang mengandung kata / potongan
kata tertentu. Untuk mendapatkan help dari suatu fungsi tertentu, pilihlah
Search type: Function Name
f. Tab Favorites : melihat daftar link ke dokumen yang telah ditandai sebagai
favorit.
Di antara tab tersebut, yang paling sering digunakan ialah Contents dan Search.
Sebagai latihan, cobalah mencari dokumen mengenai “sound” dengan help browser. Pilih tab
Search, Search type: Full Text, Search for: sound.
Penggunaan kaca kunci untuk pencarian mirip dengan mesin pencari di internet
(google, yahoo, altavista, dll). Misalkan Anda ingin mencari “filter digital”, maka ketikkan
dalam Search for: filter AND digital.
Current diectory browser
Operasi MATLAB file menggunakan current directory dan search path sebagai
referensi. File yang akan dijalankan harus berada di current directory atau ada pada
search path.
Workspace
Berisi kumpulan variabel yang terbentuk sepanjang sesi MATLAB dan di simpan di
memory. Jendela ini berisi informasi penggunaan variabel di dalam memori
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 8
MATLAB. Misalkan kita akan menjumlahkan dua buah bilangan, maka pada
command window kita dapat mengetikkan:
>> bilangan1=7
bilangan1 =
7
>> bilangan2=9
bilangan2 =
9
>> hasil=bilangan1+bilangan2
hasil =
16
Maka pada workspace akan menampilkan variable yang sedang digunakan.
Gambar 1.4 Tampilan Work Space
Untuk melihat variabel yang aktif saat ini, kita dapat menggunakan perintah who.
>> who
Your variables are:
bilangan1 bilangan2 hasil
Launch pad
Menyediakan akses yang mudah ke tools, demo dan dokumentasi.
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 9
Gambar 1.5 Launch Pad
Array editor
Menampilkan isi array dalam format tabel dan dapat digunakan untuk mengedit
isi array.
Editor/Debugger
Digunakan untuk membuat, mengedit, dan men-debug M-files, yakni program
yang dibuat untuk menjalankan fungsi-fungsi MATLAB.
Figure
Figure adalah jendela untuk menampilkan gambar grafik seperti perintah plot
dan sejenisnya. Gambar pada jendela figure ini dapat disimpan ke dalam sebuah file
yang sewaktu-waktu dapat dipanggil kembali.
1.5 Grafik User Interface
Ketika kita membuka GUI Matlab kita bisa melihat lihat dan mencoba coba perintah
pada GUI tersebut dan untuk lebih jelasnya bisa dilihat dalam demo tersebut. Kita bisa
melihat contoh contoh program dan bisa disave dengan ektension .m(yang merupakan ektensi
dari file matlab).
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 10
Gambar 1.6 Grafik User Interface
Salah satu yang cukup menarik dari matlab ini adalah kemudahan dan kejelasannya
dalam memahami contoh dan demo serta help yang ada pada matlab. Kita akan berkenalan
lebih dekat dengan yang satu ini. Kita bisa lihat dari demo ini ternyata begitu banyak
persoalan yang dapat dibangun dengan matlab dengan cara lebih mudah dan lebih singkat,
tanpa mengurangi kepahaman kita pada suatu persoalan(bisa dibandingkan dengan bahasa C,
pascal, delphi atau visual lainnya).
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 11
Gambar 1.7 Aplikasi GUI
1.6 Simulink
Simulink adalah platform didalam MATLAB yang digunakan untuk mensimulasikan
sistem dinamik secara realtime. Didalam simulink terdapat berbagai macam toolbox yang
dapat digunakan untuk merangkai sistem dinamik.
Gambar 1.8 Memanggil Aplikasi Simulink
Sementara itu tampilan aplikasi Simulink terlihat Seperti dibawah ini.
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 12
Gambar 1.9 Aplikasi Simulink
1.7 M-File Editor
Sekarang, katakanlah Anda harus mempergunakan sederetan command secara
berulang-ulang di dalam sesi MATLAB yang berbeda. Akan sangat repot jika Anda harus
mengetikkan command tersebut secara manual di command window setiap kali Anda
butuhkan.
Gambar 1.10 Memanggil Aplikasi M-File Editor
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 13
Namun dengan Mfile, deretan command tersebut bisa Anda simpan dalam bentuk
skrip teks. Kapan saja Anda butuhkan, skrip tersebut bisa dijalankan/dieksekusi secara
otomatis dengan cara mengetikkan nama M-file yang bersangkutan di command window.
Namun demikian perlu diketahui bahwa MATLAB sebenarnya merupakan bahasa
pemrograman umum, seperti halnya Basic, C, Java, Pascal, Fortran, dll. Sehingga dalam bab
ini kita akan menitikberatkan pada pelajaran pemrograman komputer.
Gambar 1. 11 Jendela editor M-file
Dengan editor ini, kita bisa membuka sejumlah M-file, melakukan editing, ataupun
mencoba menjalankannya dan melakukan debuging (mencari kesalahan di dalam skrip).
Sementara itu, untuk menyimpan M-file, Anda bisa lakukan dengan menu: File Save atau
File Save As; ataupun dengan mengklik ikon yang ada. Namun demikian, sebenarnya Anda
juga bisa menuliskan M-file dengan sebarang editor teks, seperti MS Word, Notepad, dll.;
yang penting Anda menyimpan file tersebut dengan ekstensi *.m.
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 14
1.8 Latihan dan Tugas Pertemuan 1
MATLAB dapat kita pergunakan seperti halnya kalkulator:
>> 3 + 4
ans =
7
Menuliskan beberapa command sekaligus dalam satu baris:
>> 10^2, 2*(13 + (-3))
ans =
100
ans =
20
Menciptakan variabel untuk menyimpan bilangan, serta menjalankan berbagai command atau
fungsi yang sudah ada di MATLAB.
>> x=12; y=0.25; z=pi/2;
a=3*x*y, b=sin(z), c=cos(z)
a =
9
b =
1
c =
0
Menciptakan dan memanipulasi vektor dan matriks:
>> Vektor1=[1 3 –6], Vektor2=[4; 3; -1]
Vektor1 =
1 3 -6
Vektor2 =
4
3
-1
>> Matrix=[1 2 3;4 5 6;7 8 9]
Matrix =
1 2 3
4 5 6
7 8 9
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 15
>> Vektor1 * Vektor2
ans =
19
>> Vektor2 * Vektor1
ans =
4 12 -24
3 9 -18
-1 -3 6
>> Matrix * Vektor2
ans =
7
25
43
Menciptakan deret secara efisien:
>> deret1=1:1:10
deret1 =
1 2 3 4 5 6 7 8 9 10
>> deret2=linspace(0,5,11)
deret2 =
Columns 1 through 7
0 0.5000 1.0000 1.5000 2.0000 2.5000 3.0000
Columns 8 through 11
3.5000 4.0000 4.5000 5.0000
MATLAB juga dapat kita pergunakan untuk mencari akar-akar polinomial. Misalkan akar-
akar dari:
y = x4 – 10x
2 + 9
>> akar=roots([1 0 –10 0 9])
akar =
3.0000
-3.0000
1.0000
-1.0000
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 16
Melakukan interpolasi dengan berbagai metode, misalkan dengan pendekatan polinomial.
Misalkan kita memiliki data pengamatan temperatur selama 12 jam :
>> t=1:12;
>> data=[22 22 22.5 24 25.5 28 29 29 30 29.5 29 28];
Data tersebut kita interpolasi menjadi kurva mulus polinomial orde-5 :
>> p=polyfit(t,data,5);
>> x=linspace(1,12,100); y=polyval(p,x);
>> plot(x,y,'k--',t,data,'k*')
>> p
p =
0.0000 0.0038 -0.1245 1.2396 -3.2370 24.2045
Gambar 1. 12 Interpolasi data temperatur terhadap waktu,
Grafik tersebut didekati dengan persamaan polinomial :
y = 0.0038x4-0.1245X3+1.2396x2-3.2370x+24.2045
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 17
Salah satu keunggulan MATLAB ialah kemudahannya untuk membuat grafik dan suara.
Misalkan membuat grafik 2-dimensi,
>> x=linspace(-5,5,200);
>> y=x.^2+cos(10*x);
>> plot(x,y)
Gambar 1.13 Hasil Plot Grafik 2 Dimensi
atau bahkan grafik 3-dimensi:
>> u=linspace(-4,4,50);
>> [U,V]=meshgrid(u,u);
>> W=cos(U).*cos(V/3);
>> surf(U,V,W)
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 18
Gambar 1.14 Hasil Plot Grafik 3 Dimensi
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 19
BAB 2
Operasi Dasar MATLAB
2.1 Tujuan Pengajaran
1. Mahasiswa mengetahui beberapa fasilitas pada MATLAB
2. Mahasiswa dapat menggunakan operasi dasar MATLAB
3. Mahasiswa mengetahui beberapa perintah MATLAB dan kegunaannya
2.2 Alat dan Bahan
1. Komputer
2. Software MATLAB versi 5 atau sesudahnya.
3. White Board (untuk penjelasan oleh dosen)
4. Proyektor Komputer (untuk demonstrasi)
5. Spidol (untuk white board)
6. Kertas
7. Buku/Modul/Handout/Petunjuk Praktikum
2.3 Menetukan Direktori
Kita dapat bekerja dengan MATLAb secara default pada directory Work ada di dalam
Folder MATLAB. Tetapi akan lebih bagus dan rapi jika anda membuat satu directory khusus
dengan nama yang sudah anda kususkan, “dargombes” atau nama yang lain yang mudah
untuk diingat. Hal ini akan lebih baik bagi anda untuk membiasakan bekerja secara rapi dan
tidak mencampur program yang anda buat dengan program orang lain. Untuk itu Arahkan
pointer mouse anda pada kotak bertanda … yang ada disebelah kanan tanda panah kebawah
(yang menunjukkan folder yang sedang aktif). Pilih new directory, selanjutnya
ketikkan“NAMA”, dan diikuti dengan click Ok.
Buat Folder sendiri. Pakai Nama Anda (tidak memakai spasi).
Gambar 2.1 Menetukan direktori kerja
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 20
2.4 Operasi Dasar MATLAB
Dalam mode penggunaan dasar, MATLAB dapat digunakan sebagai fungsi
kalkulator. Operator aritmatik dasar yang didukung oleh MATLAB ialah sebagai berikut :
+ addition
- subtraction
* multiplication
^ power
' transpose
/ right division
Hirarki operator mengikuti standar aljabar yang umum kita kenal :
1. Operasi di dalam kurung akan diselesaikan terlebih dahulu
2. Operasi pangkat
3. Operasi perkalian dan pembagian
4. Operasi penjumlahan dan pengurangan
Beberapa contoh :
>> x = 2 (selanjutnya tekan “Enter”)
x =
2
>> y = 3
y =
3
>> z = x + y
z =
5
Sekarang kita coba contoh berikut ini.
>> 2.5+0.6
ans =
3.1000
>> 3*4+3/4
ans =
12.7500
>> 5\(15+35)
ans =
10
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 21
>> 169^(1/2), (6+14)\10^2
ans =
13
ans =
5
Kita juga bisa menciptakan variabel untuk menyimpan nilai, baik berupa bilangan
ataupun teks. Contoh berikut ini untuk menciptakan variabel :
>> a=100
a =
100
>> b=200
b =
200
>> c=300;
>> d=400;
>> total=a+b+c+d
total =
1000
>> rata_rata=total/4;
Untuk melihat hasil rata_rata, kita bisa panggil variabel tersebut.
>> rata_rata
rata_rata =
250
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 22
Untuk menghapus beberapa atau semua variabel kita gunakan command clear. Misalkan
untuk menghapus variabel total.
>> clear total
dan untuk menghapus semua variabel sekaligus
>> clear
Selain berisi bilangan, variabel juga bisa berisi teks. Dalam mendefinisikan variabel teks
gunakanlah tanda petik tunggal.
>> baca_ini = „Contoh variabel berisi teks!‟;
>> baca_ini
baca_ini =
Contoh variabel berisi teks!
Kita tidak boleh salah memperlakukan variabel berisi bilangan dengan yang berisi teks, sebab
variabel teks juga bisa terlibat dalam operasi perhitungan. Misalkan:
>> clear
>> a=7;
>> b=‟7‟;
>> a/b
ans =
0.1273
>> a+b
ans =
62
Terlihat bahwa mengoperasikan variabel berisi teks bisa memunculkan hasil
perhitungan yang “salah”.
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 23
2.5 Fungsi Matematika
Berbagi fungsi matematika yang umum kita pergunakan telah terdefinisi di
MATLAB, meliputi fungsi eksponensial, logaritma, trigonometri, pembulatan, dan fungsi
yang berkaitan dengan bilangan kompleks.
sin trigonometric sine
cos trigonometric cosine
tan trigonometric tangent
asin trigonometric inverse sine (arcsine)
acos trigonometric inverse cosine (arccosine)
atan trigonometric inverse tangent (arctangent)
exp exponential
log natural logarithm
abs absolute value
sqrt square root
rem remainder
round round towards nearest integer
floor round towards negative infinity
ceil round towards positive infinity
Contoh penggunaan :
>> sin(pi/2)
ans =
1
>> cos(pi/2)
ans =
6.1230e-017
Catatan :
0 ( 6.1230e-017 = 6.1230×10-17
≈ 0).
2.6 Latihan dan Tugas Pertemuan 2
1. Hitung dengan MATLAB
12/3,5 (3+5/4)2 (0,25
2+0,75
2)1/2
2/(6/0,3)
Jawab :
>> 12/3.5, (3+5/4)^2
ans =
3.4286
ans =
18.0625
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 24
>> (.25^2 + .75^2)^(1/2), 2/(6/.3)
ans =
0.7906
ans =
0.1000
2. Buatlah empat variabel berikut:
A = 25 B = 50 C = 125 D = 89
Hitunglah dan simpan dalam variabel baru:
X = A + B +C Y = A / (D+B)
Z = DA/B
+ C
Jawab :
>> A=25, B=50, C=125, D=89
A =
25
B =
50
C =
125
D =
89
>> X = A+B+C, Y = A/(D+B)
X =
200
Y =
0.1799
>> Z = D^(A/B) + C
Z =
134.4340
3. Misalkan x=π/6, y=0,001; hitunglah
√ sin x cos 2x tan 3x
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 25
Jawab :
>> x=pi/6; y=.001;
>> sqrt(y), exp(-x), sin(x)
ans =
0.0316
ans =
0.5924
ans =
0.5000
>> cos(2*x), tan(3*x)
ans =
0.5000
ans =
1.6331e+016
>> log10(y), log2(y), log(y)
ans =
-3
ans =
-9.9658
ans =
-6.9078
4. Misalkan: p = 9+16i dan q = −9+16i; hitunglah
r=p/r s=p/q p-r r+s p2
Jawab : >> p = 9 + 16*i; q = -9 + 16*i;
>> r=p*q, s=p/q, p-r
r =
-337
s =
0.5193 - 0.8546i
ans =
3.4600e+002 +1.6000e+001i
>> r+s, p^2, sqrt(q)
ans =
-3.3648e+002 -8.5460e-001i
ans =
-1.7500e+002 +2.8800e+002i
ans =
2.1630 + 3.6985i
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 26
BAB 3
Matriks
3.1 Tujuan Pengajaran
1. Mahasiswa dapat menjalankan program MATLAB.
2. Mengetahui beberapa array dan matriks dasar
3. Mengetahui lebih banyak tentang kegunaan matriks dan array
4. Mampu melakukan manipulasi matriks dengan cara yang lebih kompleks
3.2 Alat dan Bahan
1. Komputer
2. Software MATLAB versi 5 atau sesudahnya.
3. White Board (untuk penjelasan oleh dosen)
4. Proyektor Komputer (untuk demonstrasi)
5. Spidol (untuk white board)
6. Kertas
7. Buku/Modul/Handout/Petunjuk Praktikum
3.3 Format data MATLAB
Terdapat tiga jenis format data di MATLAB, yaitu skalar, vektor, dan matriks.
1. Skalar, ialah suatu bilangan tunggal
Perhatikan cara mendefinisikan skalar dengan ataupun tanpa kurung siku.
>> skalar1 = 3.1415
skalar1 =
3.1415
>> skalar2 = [2.71828]
skalar2 =
2.7183
2. Vektor, ialah sekelompok bilangan yang tersusun 1-dimensi. dalam MATLAB
biasanya disajikan sebagai vektor-baris atau vektor-kolom. Contoh vektor-baris dan
vektor-kolom :
>> vektor1=[3,5,7]
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 27
vektor1 =
3 5 7
>> vektor2=[2;4;6]
vektor2 =
2
4
6
3. Matriks, ialah sekelompok bilangan yang tersusun dalam segi-empat 2-dimensi. Di
dalam MATLAB, matriks didefinisikan dengan jumlah baris dan kolomnya. Di
MATLAB terdapat pula matriks berdimensi 3, 4, atau lebih, namun dalam buku ini
kita batasi hingga 2-dimensi saja.
Sebenarnya, semua data bisa dinyatakan sebagai matriks. Skalar bisa dianggap
sebagai matriks satu baris – satu kolom (matriks 1×1), dan vektor bisa dianggap sebagai
matriks 1-dimensi: satu baris – n kolom, atau n baris – 1 kolom (matriks 1×n atau n×1).
Semua perhitungan di MATLAB dilakukan dengan matriks, sehingga disebut MATrix
LABoratory. Berikutnya kita coba contoh berikut untuk mendefinisikan matriks 3×3.
>> matriks1=[10 20 30
40 50 60
70 80 90]
>> matriks2=[10 20 30; 40 50 60; 70 80 90]
Terlihat bahwa matrix1 dan matrix2 isinya sama, karenanya kita bisa menekan Enter
untuk membuat baris baru, ataupun menggunakan titik-koma.
3.4 Matriks Khusus
MATLAB menyediakan berbagai command untuk membuat dan memanipulasi
matriks secara efisien. Di antaranya ialah command untuk membuat matriks-matriks khusus,
manipulasi indeks matriks, serta pembuatan deret. Mari kita bahas terlebih dahulu mengenai
matriks khusus. Berbagai matriks khusus yang kerap kita pergunakan dalam perhitungan bisa
dibuat secara efisien dengan command yang telah ada di MATLAB.
1. Matriks yang elemennya bilangan satu
Bentuk umum :
>>ones(n,m)
Contoh :
>> mat_1=5*ones(2,4)
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 28
mat_1 =
5 5 5 5
5 5 5 5
2. Matriks Nol
Matriks yang elemennya bilangan nol
Bentuk umum :
>> zeros(n,m)
Contoh :
>> mat_2=zeros(2,4)
mat_2 =
0 0 0 0
0 0 0 0
3. Matriks Identitas
Bentuk umum :
>>eye(n)
Contoh :
>> eye(4)
ans =
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
4. Matriks Bujur Sangkar Ajaib
Matriks yang memiliki hasil jumlah yang sama pada elemenelemen baris, kolom dan
diagonalnya.
Bentuk umum :
>>magic(n)
Contoh :
>> magic(5)
ans =
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 29
17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9
5. Matriks Acak
Matriks yang memiliki nilai acak berdasarkan distribusi statistic pada
elemnnya.
Bentuk umum :
>>rand(n,m)
Contoh :
>> rand(3,2)
ans =
0.9501 0.4860
0.2311 0.8913
0.6068 0.7621
Dalam vektor ataupun matriks, indeks digunakan untuk menunjuk satu/beberapa
elemen dari vektor/matriks. Indeks dituliskan di dalam tanda kurung ( ) dengan pola umum
sebagai berikut.
>> vektor_ini = [1 3 5 7 9];
>> vektor_itu = [9; 8; 7; 6; 5];
>> matrix = [10 20 30; 40 50 60; 70 80 90];
>> vektor_ini(1)
ans =
1
>> vektor_itu(2)
ans =
8
>> matrix(1,2)
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 30
ans =
20
Deret bilangan merupakan hal yang kerap kita temui dalam pengolahan data, terutama
berkaitan dengan plot data dan proses iterasi (perhitungan berulang-ulang). Misalkan kita
memiliki data tegangan suatu baterai pada setiap menit selama 1 jam. Dalam menyajikan data
“waktu”, kita harus membuat vektor berisi deret. Kita tentunya bisa melakukannya secara
manual seperti ini : Tetapi akan lebih efisien jika deret diciptakan menggunakan operator
titik-dua. Formulanya ialah:
>> x=0:100:2300;
>> y=-10:0.5:10;
>> z=10:-0.05:0;
Di dalam MATLAB, pembuatan deret juga bisa dilakukan dengan command berikut ini.
>> linspace(0,10,11)
ans =
0 1 2 3 4 5 6 7 8 9 10
>> logspace(0,2,10)
ans =
Columns 1 through 7
1.0000 1.6681 2.7826 4.6416 7.7426 12.9155 21.5443
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 31
Columns 8 through 10
35.9381 59.9484 100.0000
3.5 Operasi Matriks
Operasi matriks di MATLAB sama seperti yang kita temui di aljabar matriks,
misalkan penjumlahan/pengurangan, perkalian matriks, invers, transpose, dot product, cross
product, dan sebagainya. Sementara operasi elemen-per-elemen, yang merupakan ciri khas
MATLAB, mengoperasikan satu per satu elemen matriks seperti operasi skalar, meliputi
penjumlahan/pengurangan, perkalian/pembagian, dan pangkat. Dalam bab ini, operasi
matriks dibahas terlebih dahulu, dan kemudian operasi elemen-per-elemen.
Penjumlahan dan Pengurangan
>> A=[0 1;2 3];
>> B=[4 5;6 7];
>> Jumlah=A+B, Selisih=A-B, Tambah50=A+50
Jumlah =
4 6
8 10
Selisih =
-4 -4
-4 -4
Tambah50 =
50 51
52 53
Perkalian Matriks 1
>> A,B
A =
0 1
2 3
B =
4 5
6 7
>> MultAB=A*B, MultBA=B*A
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 32
MultAB =
6 7
26 31
MultBA =
10 19
14 27
Perkalian Matriks 2
>> x=[3 2 1], y=[100;10;1]
x =
3 2 1
Operasi Matriks 39
y =
100
10
1
>> z1=x*y, z2=y*x
z1 =
321
z2 =
300 200 100
30 20 10
3 2 1
3.6 Persamaan Linier Pada Matriks
Kita sering menemui persamaan linier dengan beberapa variabel. Di dalam aljabar,
solusi persamaan tersebut bisa ditemukan, salah satunya dengan menggunakan matriks.
Misalkan kita tinjau sistem persamaan linier dengan variabel x1 dan x2.
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 33
>> A=[1 –2;12 5]; B=[32;7];
>> X=inv(A)*B
X =
6.0000
-13.0000
Diketahui persamaan linier sbagai berikut :
untuk mencari solusi dari persamaan tersebut dapat digunakan fungsi-fungsi matriks sebagai
berikut.
A=[1 2 3;4 5 6;7 8 0]
b=[366;804;351]
det(A)
x=inv(A)*b
ans =
27.0000
x =
25.0000
22.0000
99.0000
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 34
3.7 Latihan dan Tugas Pertemuan 3
1. Buatlah matriks M berikut ini :
2. Buatlah deret berikut ini dengan operator titik-dua, linspace, dan logspace:
x = -10, -9, -8, ... , 8, 9, 10
y = 7,5 , 7,0 , 6,5 , 6,0 , ... , 0,5 , 0
w = 0,001 , 0,01 , 0,1 , 1 , 10 , ... , 106
3. Pecahkan persamaan linier dengan tiga variabel berikut ini.
4. Pecahkanlah persamaan linier tiga variabel berikut ini:
4. Pecahkanlah persamaan linier empat variabel berikut ini:
Jawab :
4. Pertama, definisikan matriks A yang berisi koefisien yang melekat pada variabel x, y, z.
>> A=[1 2 –3; 4 5 6; 7 8 9];
Kedua, definisikan vektor b yang merupakan ruas kanan dari persamaan.
>> b=[-7; 11; 17]
>> x=inv(A)*b
x =
1.0000
-1.0000
2.0000
Sehingga diperoleh: x = 1, y = -1, z = 2.
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 35
BAB 4
M-File dan Pemrograman MATLAB
4.1 Tujuan Pengajaran
Setelah mengikuti unit praktikum ini, maka praktikan diharapkan :
1. Mengetahui cara penanganan masukan dan keluaran pada program
2. Mampu membuat program sederhana dengan MATLAB
3. Mampu membuat dan menjalankan script dan fungsi dengan M-file
4.2 Alat dan Bahan
1. Komputer
2. Software MATLAB versi 5 atau sesudahnya.
3. White Board (untuk penjelasan oleh dosen)
4. Proyektor Komputer (untuk demonstrasi)
5. Spidol (untuk white board)
6. Kertas
7. Buku/Modul/Handout/Petunjuk Praktikum
4.3 M-file
Program adalah suatu kumpulan pernyataan, fungsi atau perintah yang diatur
sedemikian sehingga mempunyai logika tertentu. Semua pernyataan, fungsi dan perintah
dapat diberikan langsung di MATLAB Command Window yang digunakan untuk menyusun
sebuah program. MATLAB menyediakan bahasa pemrograman yang lengkap yang
memungkinkan Anda menulis perintah-perintah MATLAB ke dalam sebuah file dan
menjalankannya dengan sebuah perintah saja. m-file dapat berupa script yang secara
sederhana mengeksekusi barisan perintah-perintah MATLAB, atau m-file dapat berupa
fungsi yang menerima argumen input dan menghasilkan output. M-file dibuat dengan
menggunakan teks editor.
Mfile merupakan sederetan perintah matlab yang dituliskan secara berurutan sebagai
sebuah file. Nama file yang tersimpan akan memiliki ekstensi .m yang menandakan bahwa
file yang dibuat adalah file matlab. Mfile dapat ditulis sebagai sebuah script atau dapat pula
ditulis sebagai sebuah fungsi yang menerima argument atau masukan yang menghasilkan
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 36
output. Program Matlab yang disimpan dalam berkas M-file dapat dikelompokkan menjadi
dua macam, yakni: (1) Skrip Matlab (Matlab script) dan (2) Fungsi Matlab. Perbedaan antara
script dan fungsi terlihat sebagai berikut.
Skrip Matlab mempunyai ciri-riri:
1. hanya berisi kumpulan perintah-perintah Matlab;
2. tidak diawali dengan perintah function;
3. untuk menjalankannya tidak diperlukan masukan (input);
4. tidak menghasilkan nilai yang dapat disimpan ke variabel lain.
Fungsi Matlab mempunyai ciri-ciri:
1. harus diawali dengan kata function dengan tata tulis:
2. function var_hasil=nama_fungsi(input)
3. memuat rumus untuk menghitung nilai fungsi (var_hasil) berdasarkan nilai-nilai
input;
4. untuk menjalankan sebuah fungsi diperlukan masukan nilai-nilai yang sesuai;
5. Nilai-nilai yang dihasilkan oleh sebuah fungsi dapat disimpan ke dalam satu atau
beberapa variabel (matriks).
Untuk menuliskan skrip M-file, Anda bisa mulai dengan membuka file baru. Dengan
editor ini, kita bisa membuka sejumlah M-file, melakukan editing, ataupun mencoba
menjalankannya dan melakukan debuging (mencari kesalahan di dalam skrip).
4.4 M-File Sebagai SCRIPT
Pada bagian ini, kita akan menggunakan M-file untuk menjalankan sederetan
command yang kita tuliskan sebagai skrip. Mari kita mulai dengan skrip sederhana untuk
menghitung rata-rata dari lima bilangan. File ini kita namakan rata_rata.m.
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 37
Catatan : Teks yang diawali tanda “%” menunjukkan komentar, dan tidak akan dieksekusi
oleh MATLAB.
Bukalah M-file baru lalu ketikkan skrip berikut ini.
% Program sederhana untuk menghitung
% rata-rata 5 bilangan:
% rata_rata.m
a = 50;
b = 100;
c = 150;
d = 200;
e = 250;
% Menghitung dan menampilkan rata-rata
hasil = (a + b + c + d + e)/5;
hasil
Gambar 4.1 Tampilan editor M-file 1
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 38
>> clear
>> rata_rata
hasil =
150
>> whos
Name Size Bytes Class
a 1x1 8 double array
ans 1x1 8 double array
b 1x1 8 double array
c 1x1 8 double array
d 1x1 8 double array
e 1x1 8 double array
hasil 1x1 8 double array
Grand total is 7 elements using 56 bytes
Perhatikan bahwa:
1. Di dalam M-file, setiap command diakhiri dengan titik-koma supaya hasil perhitungan di
tiap baris tidak ditampilkan di command window. Kecuali pada hasil perhitungan yang
ingin kita tampilkan, tidak diakhiri titik-koma.
2. Variabel yang didefinisikan di dalam M-file akan disimpan oleh MATLAB ketika M-file
telah dieksekusi.
Di dalam editor, skrip yang kita tuliskan akan memiliki warna tertentu:
a. hijau untuk komentar
b. hitam untuk variabel dan command
c. biru untuk statement pemrograman.
Sekarang, marilah kita mencoba M-file lain untuk menghitung sisi miring suatu segi
tiga siku-siku dengan formula phytagoras, menghitung luasnya, dan kelilingnya.
% Program menghitung segi-3 siku-siku: segi3.m
% Untuk menghitung sisi miring, luas, dan keliling
% Mendefinisikan sisi siku-siku segitiga
Sisi_A = 3;
Sisi_B = 4;
% Menghitung sisi miring
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 39
Sisi_C = sqrt(Sisi_A^2 + Sisi_B^2)
% Menghitung luas segitiga
Luas = 1/2* Sisi_A * Sisi_B
% Menghitung keliling
Keliling = Sisi_A + Sisi_B + Sisi_C
Lalu simpan dengan nama segi3.m. Sekarang kita panggil M-file tersebut
>> segi3
Sisi_C =
5
Luas =
6
Keliling =
12
Sekarang Anda dapat mencoba script sederhana menghitunga akar menggunakan matlab :
%menghitung akar dari
%persamaan kuadrat y=ax^2 + bx + c
a=input('masukkan konstanta a=')
b=input('masukkan konstanta b=')
c=input('masukkan konstanta c=')
x1=(b+sqrt(b^2-4*a*c))/(2*a)
x2=(b-sqrt(b^2-4*a*c))/(2*a)
4.5 M-File Sebagai FUNGSI
Sebagai skrip program, jika kita ingin mengubah/mengatur parameter masukan
program, maka harus kita lakukan di dalam editor. Padahal seringkali kita harus menjalankan
satu program/algoritma berulang kali dengan nilai masukan yang berbeda-beda, misalkan
dalam proses iterasi atau optimasi. Untuk keperluan ini, kita bisa menuliskan M-file sebagai
suatu fungsi spesifik sesuai kebutuhan kita. Dalam setiap fungsi terdapat tiga unsur:
1. Parameter masukan; dalam hal ini kita sebut sebagai “argumen input”. Jumlah
parameter (argumen) tersebut bisa sebarang (satu, dua, sepuluh, atau tidak ada
argumen input sama sekali).
2. Jenis argumen pun sebarang (variabel, bilangan ataupun teks).
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 40
3. Proses di dalam program; berupa sederetan command untukmenjalankan suatu
algoritma tertentu. Parameter keluaran; atau “argumen output” yang jumlah dan
jenisnya sebarang.
Deklarasi fungsi di M-file harus dilakukan pada baris awal dengan sintaks:
Contoh penggunaan Function :
function [a] = log3(x)
% [a] = log3(x) - Calculates the base 3 logarithm of x.
a = log(abs(x))./log(3);
% End of function
Simpan file dengan nama log3.m kemudian ketikan di command windows.
>> log3(5)
ans =
1.4650
Selajutnya kita akan membuat fungsi untuk menghitung sisi miring, luas, dan keliling
segitiga; seperti program yang ada pada contoh sebelumnya.
%Fungsi untuk menghitung segi-3 siku-siku: segitiga.m
%Untuk menghitung sisi miring, luas, dan keliling
function [Sisi_C,Luas,Kll] = segitiga(Sisi_A,Sisi_B)
% Menghitung sisi miring
Sisi_C = sqrt(Sisi_A^2 + Sisi_B^2);
% Menghitung luas segitiga
Luas = 1/2* Sisi_A * Sisi_B;
% Menghitung keliling
Kll = Sisi_A + Sisi_B + Sisi_C;
Lalu simpan dengan nama “segitiga.m”.
>> clear
>> [Hyp,Area,Circum]=segitiga(12,16)
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 41
Hyp =
20
Area =
96
Circum =
48
Sekarang kita lihat dengan command whos:
>> whos
Name Size Bytes Class
Area 1x1 8 double array
Circum 1x1 8 double array
Hyp 1x1 8 double array
Grand total is 3 elements using 24 bytes
4.6 Displai dan Input M-File
Adakalanya kita membutuhkan interaksi dengan pengguna program untuk
memasukkan parameter tertentu di awal/tengah program. Dalam hal ini kita bisa pergunakan
cara sederhana dengan command input. Sementara command disp digunakan untuk
menampilkan teks di layar. Misalkan kita akan membuat program untuk menghitung luas
trapesium file didimpan dengan luas_trapesium.m
% Program menghitung kombinasi : luas_trapesium.m
% untuk menghitung Luas Trapesium
% Menampilkan judul program
clc;
disp(„Menghitung Luas Trapesium‟);
disp(„-------------------------„);
% Meminta masukan dari user
a = input(„Masukan Panjang Sisi Atas? : „);
b = input(„Masukan Panjang Sisi Bawah? : „);
t = input(„Masukan Tinggi Trapesium? : „);
% Menghitung luas
luas = 0.5*((a)+(b))*(t)
% Menampilkan keluaran
disp(„Luas Trapesium = „,luas);
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 42
Maka di command windows akan menampilkan :
Menghitung Luas Trapesium
-------------------------
Masukan Panjang Sisi Atas? : 5
Masukan Panjang Sisi Bawah? : 9
Masukan Tinggi Trapesium? : 13
luas =
91
4.7 Statement Else-If
Seperti halnya bahasa program pada umumnya, kita bisa mengendalikan arah program
dengan berbagai cara, berupa percabangan arah program berdasarkan kondisi tertentu,
ataupun loop (perhitungan berulang) ketika kita melakukan iterasi. General syntax nya
sebagai berikut.
if relation
statement(s)
elseif relation % if applicable
statement(s) % if applicable
elseif relation % if applicable
statement(s) % if applicable
else % if applicable
statement(s) % if applicable
end
Sebagai contoh, gambar lah sebuah kurva yang memenuhi persamaan berikut ini
Catatan : gunakan increment 0.01 untuk menghasilkan kurva yang baik.
Jawab :
>> x=-1:0.01:1;
for i=1:length(x)
if x(i) < 0.5
F(i) = x(i)^2;
else
F(i) = 0.25;
end
end
>> plot(x,F,‟-k‟)
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 43
Maka grafik yang akan dihasilkan :
Gambar 4.2 Grafik kurva Else-If
4.8 Statement For-End
Statement ini digunakan untuk loop/perhitungan berulang. Sebagai contoh untuk
memplot kurva parabola:
y = Ax2
dengan berbagai nilai parameter A, yaitu 0,5 , 1 , 1,5 , sampai 6
Dalam hal ini indeks vektor A kita iterasi dari 1 hingga indeks terakhir.
figure;
x = linspace(-4,4,500); % mendefinisikan nilai x
A = 0.5:0.5:6; % mendefinisikan vektor A
for i = 1:length(A)
y = A(i)* x.^2;
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 44
plot(x,y);
hold on;
end
grid on;
Maka grafik yang akan dihasilkan
Gambar 4.3 Grafik kurva For-End Parabola
Misalkan untuk memplot fungsi akar kuadrat
y = B x1/2
dengan berbagai nilai parameter B.
figure;
x=linspace(0,4,500);
A=0.5:0.5:2;
i=1;
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 45
while i <= length(A)
y = A(i)* x.^(1/2);
plot(x,y); hold on;
i=i+1;
end
grid on;
Maka grafik yang akan dihasilkan :
Gambar 4.4 Grafik kurva For-End Akar Kuadrat
Selain itu, statement for-end juga dapat dpergunakan untuk membuat matriks :
>> A = [1,5,-3;2,4,0;-1,6,9]
A =
1 5 -3
2 4 0
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 46
-1 6 9
>> for i=1:3
for j=1:3
A2(i,j) = A(i,j)^2;
end
end
>> A2
A2 =
1 25 9
4 16 0
1 36 81
4.9 Latihan dan Tugas Pertemuan 4
1. Buatlah program dengan M-file untuk menghitung volume dan luas permukaan balok bila
diketahui: panjang = 5, lebar = 3, tinggi = 6,5. Beri nama program ini dengan
prog_balok.m
2. Buatlah suatu fungsi dengan M-file untuk menghitung volume dan luas permukaan balok
dengan spesifikasi:
masukan fungsi : panjang, lebar, dan tinggi balok
keluaran fungsi : volume, dan luas permukaan balok.
Beri nama fungsi ini dengan hitung_balok.
3. Buatlah suatu fungsi dengan M-file untuk menghitung volume dan luas permukaan dari
suatu prisma segiempat dengan spesifikasi:
masukan fungsi : panjang dan lebar alas prisma, serta tinggi prisma
keluaran fungsi : volume, dan luas permukaan prisma
Beri nama fungsi ini dengan hitung_prisma.m
4. Gambarkan Kurva dibawah ini dengan increment 0.01 untuk menghasilkan kurva yang
baik.
{
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 47
Jawab
1. Menghitung Volume
% Program untuk menghitung volume &
% luas permukaan balok: prog_balok.m
panjang=5; lebar=3; tinggi=6.5;
volume = panjang * lebar * tinggi
luas = 2* (panjang*lebar + panjang*tinggi + lebar*tinggi)
Kita jalankan program tersebut:
>> prog_balok
volume =
97.5000
luas =
134
2. Menghitung Volume
% Fungsi untuk menghitung volume &
% luas permukaan balok: hitung_balok.m
function [vol,area] = hitung_balok(p,l,t)
vol = p*l*t; % hitung volume
area = 2*(p*l + p*t + l*t); % luas permukaan
Kita jalankan fungsi tersebut:
>> [V,L] = hitung_balok(10,5,3)
V =
150
L =
190
3. Menghitung Volume
% Fungsi untuk menghitung volume &
% luas permukaan prisma segi-4: hitung_prisma.m
function [vol,area] = hitung_prisma(p,l,t)
vol = 1/3*p*l*t; % hitung volume
% hitung tinggi segitiga pada sisi lebar alas
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 48
t_l = sqrt((p/2)^2 + t^2);
% hitung tinggi segitiga pada sisi panjang alas
t_p = sqrt((l/2)^2 + t^2);
% hitung luas permukaan prisma
area = p*l + p*t_p + l*t_l;
Kita jalankan fungsi tersebut:
>> [V,L] = hitung_prisma(6,4,5)
V =
40
L =
79.6348
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 49
BAB 5
Grafik Dua Dimensi
5.1 Tujuan Pengajaran
Setelah mengikuti unit praktikum ini, maka praktikan diharapkan :
1. Mahasiswa dapat menggunakan Matlab untuk menggambar kurva fungsi implisit.
2. Mahasiswa dapat menggunakan Matlab untuk menggambar kurva fungsi
parametrik.
3. Mahasiswa dapat menggunakan Matlab untuk menggambar kurva fungsi
parametrik pada koordinat kutub.
4. Mahasiswa dapat menggunakan Matlab untuk menggambar kurva beberapa fungsi
pada sumbu koordinat yang sama
5.2 Alat dan Bahan
1. Komputer
2. Software MATLAB versi 5 atau sesudahnya.
3. White Board (untuk penjelasan oleh dosen)
4. Proyektor Komputer (untuk demonstrasi)
5. Spidol (untuk white board)
6. Kertas
7. Buku/Modul/Handout/Petunjuk Praktikum
5.3 Plot Grafik
Program adalah suatu kumpulan pernyataan, Salah satu keunggulan MATLAB ialah
kemampuannya dalam menampilkan/mengolah grafik dan suara dengan command yang
sederhana dan fleksibel.
Untuk memvisualisasi data secara 2-dimensi ataupun 3-dimensi, kita menggunakan
berbagai command plotting; di mana command yang paling dasar ialah plot. Anda bisa
praktekan contoh berikut ini.
1. Grafik garis, mencetak grafik chirp.
>> x=0:0.05:5;
y=sin(x.^2);
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 50
plot(x,y)
Gambar 5.1 Kurva Chirp
2. Grafik Batang (Bar), mencetak kurva BELL.
>> x=-2.9: 0.2:2.9;
bar(x,exp(x.*x));
Gambar 5.2 Kurva Batang
3. Grafik Tangga, mencetak Gelombang sinus dalam grafik tangga.
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 51
>> x=0:0.25:10;
stairs(x,sin(x));
Gambar 5.3 Kurva Tangga
4. Grafik ErrorBar, mencetak Grafik ErrorBar pada fungsi dengan kesalahan secara acak.
>> x=-2:0.1:2;
y=erf(x);
e=rand(size(x))/10;
errorbar(x,y,e);
Gambar 5.4 Kurva Error Bar
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 52
5. Grafik Polar, mencetak fungsi perkalina sin dan cos dalam bentuk polar.
>> t=0:.01:2*pi;
>> polar(t,abs(sin(2*t).*cos(2*t)));
Gambar 5.5 Kurva Polar
6. Grafik Stem, mencetak perkalian fungsi sin dengan eksponensial.
>> x=0:0.1:4;
>> y=sin(x.^2).*exp(x);
>> stem(x,y)
Gambar 5.6 Kurva Stem
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 53
7. Grafik dengan Ezplot
Gambarkan persamaan
maka syntaknya :
ezplot('sin(x)/(1+x.^2)')
Gambar 5.7 Kurva Ezplot 1
ezplot('sin(t)*cos(t)/t','sin(t)^2/t',[-6*pi,6*pi])
Gambar 5.8 Kurva Ezplot 2
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 54
8. Dua Grafik dalam 1 Koordinat
>> fplot('[t^2*sin(t)+1,sin(t)*cos(t),t*cos(t)]',[0,2*pi])
Gambar 5.9 Kurva Dua Grafik 1
>> fplot('[cos(x),1-x^2/2,1-x^2/2+x^4/24]',[-pi,pi,-1,1])
Gambar 5.10 Kurva Dua Grafik 2
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 55
9. Multi Grafik dalam 1 Koordinat
>> x=(-5:.1:5); % x= -5, -4.9, -4.8, …, 4.9,5
y=x.*abs(x)./(1+x.^2); % perhitungan f(x)
plot(x,y);
grid on % plot y=f(x) dengan grid
y2=x.*abs(x)./(5+x.^2);
y3=x.*abs(x)./(1/5+x.^2);
plot(x,y,'-',x,y2,'-.',x,y3,':')
Gambar 5.11 Kurva Multi Grafik
10. Kurva eksponensial negatif
>> clear
x=linspace(0,5,500);
y1=exp(-x); y2=exp(-0.5*x); y3=exp(-0.25*x);
y4=exp(-0.1*x);
plot(x,y1,x,y2,x,y3,x,y4)
grid on
xlabel('sumbu-x'), ylabel('sumbu-y')
title('Kurva y = exp(-Ax)')
legend('A=1','A=0.5','A=0.25','A=0.1')
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 56
Gambar 5.12 Kurva Eksponensial Negatif
Membuatnya dalam Semilog.
>> figure
semilogy(x,y1,x,y2,x,y3,x,y4)
grid on
xlabel('sumbu-x'), ylabel('sumbu-y')
title('Kurva y = exp(-Ax)')
legend('A=1','A=0.5','A=0.25','A=0.1')
axis([0 5 1e-2 1])
Gambar 5.13 Kurva Eksponensial Negatif danam Semilog
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 57
11. Subplot. Memplot gelombang sinus, cosinus, kotak, dan gigi gergaji dengan melibatkan
command..
>> figure
t=0:0.05:10;
sinus=sin(2*pi*0.25*t);
cosinus=cos(2*pi*0.25*t);
kotak=square(2*pi*0.25*t);
gigi=sawtooth(2*pi*0.25*t);
subplot(2,2,1);
plot(t,sinus), title('sinus 1/4 Hz')
subplot(2,2,2);
plot(t,cosinus), title('cosinus 1/4 Hz')
subplot(2,2,3);
plot(t,kotak), title('kotak 1/4 Hz')
subplot(2,2,4);
plot(t,gigi), title('gigi gergaji 1/4 Hz')
Gambar 5.14 Kurva menggunakan Subplot
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 58
12. Penggambaran Sinusoid. Memplot gelombang sinusoidal.
time = [0:0.001:0.099];
x = cos(0.1*pi*(0:99));
plot(time,x)
xlabel('time (msec)')
ylabel('x(t)')
Gambar 5.15 Hasil plot gelombang sinusoidal.
stem(time,x)
xlabel('time (msec)')
ylabel('x(t)')
Gambar 5.16 Hasil plot Distkrit gelombang sinusoidal.
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 59
5.4 Latihan dan Tugas Pertemuan 5
1. Gambarkan kurva y = x4−9x
2 pada rentang –6 ≤ x ≤ 6.Buatlah inkremen x cukup kecil
sehingga kurva terlihat mulus.
2. Gambarkan kurva-kurva berikut pada rentang −10 ≤ x ≤10 dalam satu figure
sekaligus!
3. Buat lah sebuah Papan Catur dengan perintah dari MATLAB.
Jawab :
1. Syntax matlabnya :
x = linspace(-6,6,100); % mendefinisikan x
y = x.^4 - 9.*x.^2; % menghitung y
figure; plot(x,y); grid on; % membuat plot x-y
xlabel('x'), ylabel('y');
Gambar 5.17 Hasil simulasi 1
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 60
2. Syntax matlabnya :
>> x = linspace(-10,10,150); % definisikan x
y1= sqrt(100 + x.^2); % hitung y1 s.d. y4
y2= sqrt(100 + 2.*x.^2);
y3= sqrt(100 + 4.*x.^2);
y4= sqrt(100 + 16.*x.^2);
figure;
plot(x,y1,'k-',x,y2,'k--',x,y3,'k:',x,y4,'r-');
grid on; % membuat plot
xlabel('sumbu-X'), ylabel('sumbu-Y')
legend('Y1','Y2','Y3','Y4')
Gambar 5.18 Hasil simulasi 2
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 61
3. Buat lah sebuah Papan Catur dengan perintah dari MATLAB.
>> white = [1 1 1]; gray = 0.7*white;
a = [0 1 1 0]; b = [0 0 1 1]; c = [1 1 1 1];
figure; hold on
for k = 0:1, for j = 0:2:6
fill(a'*c + c'*(0:2:6) + k, b'*c + j + k, gray)
end, end
plot(8*a', 8*b', 'k')
set(gca, 'XTickLabel', [], 'YTickLabel', [])
set(gcf, 'Color', white); axis square
Gambar 5.19 Hasil simulasi 3
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 62
BAB 6
Grafik Tiga Dimensi
6.1 Tujuan Pengajaran
Setelah mengikuti unit praktikum ini, maka praktikan diharapkan :
1. Mahasiswa dapat menggambar kurva ruang.
2. Mahasiswa dapat menggambar bidang permukaan.
3. Mahasiswa dapat menggambar grafik fungsi parameterik dimensi tiga.
4. Mahasiswa dapat menggambar bidang permukaan dengan berbagai atributnya.
5. Mahasiswa dapat melihat gambar tiga dimensi dari berbagai sudut pandang.
6.2 Alat dan Bahan
1. Komputer
2. Software MATLAB versi 5 atau sesudahnya.
3. White Board (untuk penjelasan oleh dosen)
4. Proyektor Komputer (untuk demonstrasi)
5. Spidol (untuk white board)
6. Kertas
7. Buku/Modul/Handout/Petunjuk Praktikum
6.3 Plot Permukaan
MATLAB memiliki beberapa bentuk grafik yang dapat dibuat dengan mudah dan
cara penggunaannyapun sederhana. Berikut ini akan diberikan contoh-contoh untuk
menampilkan berbagai grafik berdasarkan kategori : Subbab ini akan dibahas tiga macam plot
3-dimensi: plot garis, plot permukaan (surface), dan plot kontur. Syntaxnya memenuhi :
subplot create an array of (tiled) plots in the same window
loglog plot using log-log scales
semilogx plot using log scale on the x-axis
semilogy plot using log scale on the y-axis
surf 3-D shaded surface graph
surfl 3-D shaded surface graph with lighting
mesh 3-D mesh surface
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 63
1. Plot Garis
Mari kita mulai dengan plot garis di dalam ruang 3-dimensi. Ini mirip dengan plot 2-dimensi,
tetapi kali ini kita gunakan command plot3( ... ), dan dibutuhkan vektor z, untuk dimensi
ketiga.
X = [10 20 20 10 10];
Y = [5 5 15 15 5];
Z = [0 0 70 70 0];
plot3(X,Y,Z); grid on;
xlabel(„sumbu X‟); ylabel(„sumbu Y‟);
zlabel(„sumbu Z‟);
title („Contoh plot 3-D‟);
axis([0 25 0 20 0 80])
Gambar 6.1 Contoh plot 3-dimensi dengan command “plot3”
2. Plot Helix
Mari kita mulai dengan plot garis di dalam ruang 3-dimensi.
t=0:0.1:25;
X=sin(t); Y=cos(t); Z=0.5*t;
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 64
plot3(X,Y,Z)
xlabel(„sumbu X‟); ylabel(„sumbu Y‟);
zlabel(„sumbu Z‟);
title („Helix‟);
Gambar 6.2 Penggunaan command “plot3”
3. Plot Permukaan 1
Sementara itu, untuk plot permukaan (surface) dalam ruang 3-dimensi digunakan
command mesh atau surf. Contoh berikut ini menggambarkan fungsi dua variabel :
z = x2 + y
2.
batas_x = -10:1:10; batas_y = -10:4:10;
[X,Y] = meshgrid(batas_x,batas_y);
Z = X.^2 + Y.^2;
mesh(X,Y,Z);
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 65
Gambar 6.3 Penggunaan plot Mesh
Gambar 6.4 Penggunaan plot Surf
4. Plot Permukaan 2
Sekarang kita coba contoh yang lain untuk memplot fungsi 3- dimensi.
>> x = linspace(-10,10,40); y = x;
[X,Y] = meshgrid(x,y);
R = sqrt(X.^2+Y.^2);
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 66
Z = sin(R)./(R+eps);
surf(X,Y,Z);
Gambar 6.5 Penggunaan plot Surf
Mari kita gambarkan kontur dari fungsi sin(r)/r di atas, lalu bandingkan dengan plot
permukaannya:
>> figure; contour(X,Y,Z);
figure; meshc(X,Y,Z);
Gambar 6.6 Penggunaan plot Contour
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 67
Gambar 6.7 Penggunaan plot Contour
5. Grafik Quiver, mencetak pola arah gerakan suatu nilai.
x = -2:.2:2;
y = -1:.2:1;
[xx,yy] = meshgrid(x,y);
zz = xx.*exp(xx.^2-yy.^2);
[px,py] = gradient(zz,.2,.2);
quiver(x,y,px,py,2);
Gambar 6.8 Penggunaan Grafik Quiver
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 68
6. Menggunakan esurf
Sebuah permukaan dapat dinyatakan sebagai sebuah fungsi dua variabel bebas,
( ) ( )
ezsurf('x*y*exp(-(x^2+y^2))')
Gambar 6.9 Penggunaan Esurf
x=(-2:.2:2); y=(0:.2:2); % nilai-nilai x dan y
[X,Y]=meshgrid(x,y); % definisi titik-titik grid
Z=X.*Y.*exp(-(X.^2+Y.^2)); % nilai-nilai Z pada grid
surf(X,Y,Z) %gambar permukaan
xlabel('x') % label sumbu-sumbu koordinat
ylabel('y')
zlabel('z')
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 69
Gambar 6.10 Penggunaan Esurf
7. Perbandingan Surf dan Mesh
>> x=0:pi/20:pi;
y=x;
[X,Y]=meshgrid(x,y);
f=inline('sin(2*x).*cos(3/2*y)','x','y')
%Note the function is vectorized
subplot(1,2,1),mesh(X,Y,f(X,Y))
title('A Mesh Plot')
subplot(1,2,2),surf(X,Y,f(X,Y))
title('A Surf Plot')
Gambar 6.11 Perbandingan Mesh dan Surf
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 70
8. Multi dimensional
>> [x,y] = meshgrid(-3:.1:3,-3:.1:3);
>> z = 3*(1-x).^2.*exp(-(x.^2) - (y+1).^2)- 10*(x/5 - x.^3 -
y.^5).*exp(-x.^2-y.^2)- 1/3*exp(-(x+1).^2 - y.^2);
>> surf(z)
>> xlabel('x')
>> ylabel('y')
>> zlabel('z')
>> title('Peaks')
Gambar 6.12 Multidimensioal
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 71
6.4 Latihan dan Tugas Pertemuan 6
1. Gambarkan kurva berikut ini di dalam ruang 3-D:
2. Plot fungsi dua variabel berikut ini:
z = x2 - y
2, untuk rentang -5 ≤ x ≤ 5, -5 ≤ y ≤ 5
3. Plot kontur dari fungsi dua variabel berikut ini:
f (x, y) = cos x sin 2y , untuk 0 ≤ x ≤ 4π, 0 ≤ y ≤ 4π
4. Buatlah sebuah bola dalam grafik 3D.
5. Buatlah sebuah hemisphere dalam grafik 3D.
Jawab :
1. Gambarkan kurva berikut ini di dalam ruang 3-D:
t = linspace(0,2*pi,100);
% definisikan parameter t
x = 1 + cos(t); y = 2 + sin(t); z = 1 – cos(2.*t);
% hitung x,y,z
figure; plot3(x,y,z);
grid on; xlabel(„x‟), ylabel(„y‟), zlabel(„z‟)
2. Plot fungsi dua variabel berikut ini:
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 72
clear;
x = linspace(-5,5,25); y=x;
% definisikan batas x dan y
[X,Y]=meshgrid(x,y);
% buat jalinan titik pada bidang xy
Z = X.^2 – Y.^2; % hitung z
figure; surf(X,Y,Z);
grid on; xlabel(„x‟), ylabel(„y‟), zlabel(„z‟)
3. Plot kontur dari fungsi dua variabel berikut ini:
>> clear;
x = linspace(0,4*pi,100); y=x;
[X,Y]=meshgrid(x,y);
Z = cos(X).*sin(2.*Y);
figure; contour(x,y,Z);
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 73
4. Buatlah sebuah bola dalam grafik 3D.
>> ezsurf('sqrt(1-s^2)*cos(t)', 'sqrt(1-s^2)*sin(t)', ...
's', [-1, 1, 0, 2*pi]); axis equal
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 74
6. Buatlah sebuah hemisphere dalam grafik 3D.
% Plotting the hemisphere
u = linspace(0,pi,20); v = linspace(-pi/2,pi/2,20);
[U,V] = meshgrid(u,v); % creating 2-D arrays
figure; % opening new window for Figure 2
surf(2*sin(U).*cos(V),2*sin(U).*sin(V),2*cos(U));
title('Hemisphere');
xlabel('x'); ylabel('y'); zlabel('z');
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 75
BAB 7
Diferensial dan Integral
7.1 Tujuan Pengajaran
Setelah mengikuti unit praktikum ini, maka praktikan diharapkan :
1. Mahasiswa dapat menghitung diferensial
2. Mahasiswa dapat menghitung integral
3. Mahasiswa dapat menghitung integral lipat
7.2 Alat dan Bahan
1. Komputer
2. Software MATLAB versi 5 atau sesudahnya.
3. White Board (untuk penjelasan oleh dosen)
4. Proyektor Komputer (untuk demonstrasi)
5. Spidol (untuk white board)
6. Kertas
7. Buku/Modul/Handout/Petunjuk Praktikum
7.3 Diferensial dan Integral
Diferensial dan Integral merupakan operasi fundamental dalam kalkulus dan hampir
setiap bidang matematika, sains dan teknik. Menentukan turunan fungsi secara analitik
mungkin menyulitkan meskipun relatif langsung. Pembalikan dari proses ini akan
menentukan integral fungsi, tapi lebih sering sulit jika secara analitik atau bahkan tidak
mungkin.
7.4 Diferensial Menggunakan MATLAB
Ketik syms untuk mendefinisikan variabel / ekspresi simbollik secara eksplisit secara
bersamaan: sym a b atau syms („a‟,‟b‟) adalah cara singkat untuk a=sym(a), b=sym(b). Jika
kita tidak menuliskan sym, maka Matlab akan menampilkan fungsi yang telah kita tuliskan,
akan tetapi setiap variabel x tidak diketahui.
Setelah kita menuliskan syms x dan fungsi yang akan kita cari, maka kita harus
mengetik Diff sebagai bahasa program untuk mendiferensialkan ekspresi simbolik atau
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 76
elemen. Jika elemen bersifat numerik maka akan dicari differensial dari ekspresi tersebut. Di
bawah ini akan ditunjukkan penggunaan Matlab dalam rumus-rumus differensial .
1. Diferensial 1
Kerjakan diferensial berikut ini.
dengan program Matlab dapat dikerjakan sebagai berikut
>> syms x;
y=2*x^4;
z=diff(y)
z =
8*x^3
2. Diferensial 2
Kerjakan diferensial berikut ini.
dengan program Matlab dapat dikerjakan sebagai berikut
>> syms x;
y=('2*x^4-6*x+5');
z=diff(y)
Warning: The method char/diff will be removed in a future
release. Use sym/diff instead. For example diff(sym('x^2')).
After removal diff('x^2') will return diff(double('x^2')).
> In char.diff at 10
z =
8*x^3 - 6
3. Diferensial 3
Kerjakan diferensial berikut ini.
3144 .84.22 xxdx
dyxy
68562 34 xdx
dyxx
)(')(' xgxfdx
dy
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 77
dengan program Matlab dapat dikerjakan sebagai berikut
>> syms x;
f=x^2;
g=x^2+2;
y=f*g;
z=diff(y)
z =
2*x*(x^2 + 2) + 2*x^3
4. Diferensial 4
Kerjakan diferensial berikut ini.
dengan program Matlab dapat dikerjakan sebagai berikut
>> syms x;
y=exp(2*x+1);
z=diff(y)
z =
2*exp(2*x + 1)
5. Diferensial 5
Kerjakan diferensial berikut ini.
dengan program Matlab dapat dikerjakan sebagai berikut
xx
xxxxy
xxgxxg
xxfxxf
xxy
44
)(2)2(2'
2)(')2()(
2)(')(
)2(
3
22
2
2
22
1212
12
22.
2)('12)(
xx
x
eedx
dy
xfxxf
ey
)1cos(22)].1[cos(
2'1)(
)1sin(
22
2
2
xxxxdx
dy
xfxxf
xy
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 78
>> syms x;
y=sin(x^2+1);
z=diff(y)
z =
2*x*cos(x^2 + 1)
7.5 Integral Menggunakan MATLAB
Integral biasanya didefinisikan sebagai proses penjumlahan tetapi juga
diinterpretasikan sebagai daerah dibawah kurva y = f(x) dari a ke b.
daerah diatas x dihitung positif sementara dibawah x dihitung negatif.
Banyak metode numerik untuk integrasi didasarkan pada impretasi untuk mendapatkan
aprokimasi integralnya. Misalnya fungsi trapz berdasarkan impretasi bangunan trapesium.
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 79
Terdapat sejumlah metode perhitungan integral secara numerik, misalkan: trapezoid,
kuadratur, dll. Sebagai contoh.
1. Hitung nilai integral 1
Hitung nilai integral dibawah ini.
∫
Hitung dengan mempergunakan m-fle editor
Metode 1
x = linspace(0,2,50); % definisikan vektor x
y = exp(-x.^3); % hitung nilai y
integral = trapz(x,y) % integralkan !
integral =
0.8930
Metode 2
Dengan command quad, kita terlebih dahulu harus mendefinisikan fungsi dalam M-file:
function y = myfun(x)
y = exp(-x.^3);
Kita hitung integral tersebut dengan toleransi yang berbeda: pergunakan m-fle editor
>> format long; % format bilangan “long”
>> int_1 = quad(„myfun‟,0,2,0.001), ...
int_2 = quad(„myfun‟,0,2,0.00001)
int_1 =
0.893097075892141
int_2 =
0.892952253878937
Metode 2
Dengan command quad8,
Kita bandingkan akurasinya dengan quad8:
>> int_3 = quadl(„myfun‟,0,2)
int_3 =
0.892953514295467
Ini adalah hasil paling akurat yang bisa diperoleh MATLAB.
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 80
2. Hitung nilai integral lipat 2
Kita bisa menghitung integral terbatas lipat-2 dengan menyelesaikan integralnya satu
per satu menggunakan command quad. Misalkan kita ingin menghitung integral berikut ini:
∫ ∫
Metode 1 Trapz
Pertama, kita buat M-file untuk fungsi ini:
function z = fungsiku(x,y)
z = exp(-x.^3-y);
Kedua, kita hitung integral-integral pada arah y untuk x yang tetap:
x = linspace(0,1,50); % definisikan nilai x
for i = 1:50 % hitung integral unt setiap x(i)
integral(i) = quad('fungsiku',0,1,[],[],x(i));
end
Integral2 = trapz(x,integral)
[X,Y] = meshgrid(x,x);
Z = fungsiku(X,Y);
surf(X,Y,Z)
Integral2 =
0.510462132119748
Gambar 7.1 kurva 3D
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 81
Metode 2 dblquad
Cara lain yang lebih praktis untuk menghitung integral lipat-2 ialah menggunakan command
berikut ini dblquad.
Integral_dobel = dblquad('fungsiku',0,1,0,1)
Integral_dobel =
0.510444416971909
3. Hitung nilai integral lipat 3
Serupa dengan integral lipat-2, integral lipat-3 bisa kita selesaikan setahap demi setahap.
Misalkan untuk integral berikut ini kita simpan dalam M-file:
∫ ∫ ∫ √
Buat fungsi terlebih dahulu. Harus dibuat. Simpan dengan nama funxyz.m
function w = funxyz(x,y,z)
w = sqrt(x.^2 + y.^2 + z.^2);
Metode 1
Pertama, kita definisikan batas-batas nilai x, y, dan z:
x = linspace(-2,2,50); % definisikan nilai x
y = x; % definisikan nilai y
z = x; % definisikan nilai z
int_w = 0;
for i = 1:length(x)-1
X = (x(i)+x(i+1))/2;
dX = x(i+1)-x(i);
for j = 1:length(y)-1
Y = (y(j)+y(j+1))/2;
dY = y(j+1)-y(j);
for k = 1:length(z)-1
Z = (z(k)+z(k+1))/2;
dZ = z(k+1)-z(k);
int_w = int_w + funxyz(X,Y,Z)*dX*dY*dZ;
end
end
end
int_w
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 82
int_w =
1.229346100129595e+002
Metode 2
Cara lain yang lebih praktis ialah menggunakan command berikut ini. Untuk contoh integral
di atas, kita hitung dengan toleransi 0,001:
Integral_tripel = triplequad(„funxyz‟, ...
-2,2,-2,2,-2,2,0.001)
Integral_tripel =
122.9577
7.5 Latihan dan Tugas Pertemuan 7
1. Hitung nilai diferensial persamaan berikut ini.
a.
b.
c.
d.
2. Hitunglah integral terbatas berikut ini dengan metode trapezoid dan kuadratur:
∫ √
22
2
22
2
2
2
)1(
1
)1(
)(.2)1.(1
2)('1)(
1)(')(
1
x
x
x
xxx
dx
dy
xxgxxg
xfxxf
x
xy
1
]1[)2(12
1
)1(1
2)('1)(
1
2
2
1
212
12
2
1
22
2
2
x
xxxxx
dx
dy
xxy
xxfxxf
xy
1
22.
1
1
2)('1)(
)1ln(
22
2
2
x
xx
xdx
dy
xxfxxf
xy
x
xxf
cos
sin1)(
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 83
3. Hitunglah integral lipat-2 berikut ini:
∫ ∫
4. Hitunglah integral lipat-3 dari fungsi tiga variabel berikut ini:
w(x, y, z) = x2 + xy + yz + z
2
pada batas-batas -1 ≤ x ≤ 1, -1 ≤ y ≤ 1, -1 ≤ z ≤ 1.
Jawaban.
2. Hitunglah integral
x = linspace(-10,10,200); % metode trapezoid
y = sqrt(100 - x.^2);
int_trap = trapz(x,y)
int_trap =
1.570204080504092e+002
Untuk metode kuadratur, kita tuliskan M-file terlebih dahulu bernama
fungsi_01.m
function y = fungsi_01(x)
y = sqrt(100 – x.^2);
int_quad = quad(„fungsi_01‟,-10,10)
int_quad =
157.0796
3. Hitunglah integral lipat 2. Kita tuliskan M-file bernama fungsi_02.m
function z = fungsi_02(x,y)
z = 10 – 2.*x.^2 – y.^2;
int_2 = dblquad(„fungsi_02‟,-4,4,-5,5)
int_2 =
-720
4. Hitunglah integral lipat 3. Kita tuliskan M-file bernama fungsi_03.m
function w = fungsi_03(x,y,z)
w = x.^2 + x.*y + y.*z + z.^2;
>> int_3 = triplequad(„fungsi_03‟,-1,1,-1,1,-1,1)
int_3 =
5.3333
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 84
BAB 8
Transformasi Z dan Laplace
8.1 Tujuan Pengajaran
Setelah mengikuti unit praktikum ini, maka praktikan diharapkan :
1. Mahasiswa dapat mengerti cara mendapatkan transformasi-z dari fungsi waktu
dan juga mendapatkan invers dari transformasi-z menggunakan Matlab.
2. Mahasiswa dapat mengerti cara mendapatkan transformasi-z dari fungsi waktu
dan juga mendapatkan invers dari transformasi laplace menggunakan Matlab.
3. Mahasiswa dapat apat mengimplementasikan permasalahan transformasi-z,
laplace dan fourier dengan GUIDE
8.2 Alat dan Bahan
1. Komputer
2. Software MATLAB versi 5 atau sesudahnya.
3. White Board (untuk penjelasan oleh dosen)
4. Proyektor Komputer (untuk demonstrasi)
5. Spidol (untuk white board)
6. Kertas
7. Buku/Modul/Handout/Petunjuk Praktikum
8.3 Transformasi Z
Beberepa kegunaan dari transformasi-z adalah sebagai berikut:
a. Untuk menyelesaikan sistem persamaan.
b. Konvolusi dua buah sinyal
Matlab menyediakan function untuk mendapatkan transformasi-z dari suatu fungsi diskrit,
yaitu menggunakan ztrans. Lakukan langkah-langkah percobaan untuk mendapatkan
transformasi-z dari suatu fungsi sebagai berikut. Sebagai contoh :
1. Transformasi Z
Tentukan transformasi z dari y = 4n
menggunakan MATLAB.
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 85
Hasilnya adalah
>> syms n
f=4^n;
F=ztrans(f)
F =
z/(z - 4)
Apabila dimodifikasi menjadi bentuk matematika maka :
>> pretty(F)
z
-----
z - 4
Sementara apabila di sederhanakan maka :
>> simplify(F)
ans =
4/(z - 4) + 1
2. Transformasi Z
Tentukan transformasi z dari y = e-n
+n menggunakan MATLAB.
>> syms n
>> f=exp(-n)+n;
>> F=ztrans(f)
F =
z/(z - 1)^2 + z/(z - 1/exp(1))
Apabila dimodifikasi menjadi bentuk matematika maka :
>> pretty (F)
z z
-------- + ----------
2 1
(z - 1) z - ------
exp(1)
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 86
3. Transformasi Z
Tentukan transformasi z dari y = e-n
+ sin n menggunakan MATLAB.
>> syms n
>> f=exp(-n)*sin(n);
>> F=ztrans(f)
F =
(z*exp(1)*sin(1))/(exp(2)*z^2 - 2*cos(1)*exp(1)*z + 1)
Apabila dimodifikasi menjadi bentuk matematika maka :
>> pretty (F)
z exp(1) sin(1)
---------------------------------
2
exp(2) z - 2 cos(1) exp(1) z + 1
Invers transformasi-z dapat dicari menggunakan metode eksapansi pecahan parsial
dan metode pembagian panjang. Matlab memiliki fungsi untuk mencari invers transformasi-z
menggunakan ekspansi pecahan parsial, yaitu: [R, P, K]=residue(B,A), dimana A dan B
adalah konstanta dari fungsi z. Misal dapatkan invers transformasi-z dari fungsi berikut:
4. Invers Transformasi Z
Tentukan transformasi z dari persamaan berikut menggunakan MATLAB.
Maka syntaxnya adalah :
>> syms z n
>> f=iztrans((2*z)/(z^2+3*z+2))
f =
2*(-1)^n - 2*(-2)^n
Apabila dimodifikasi menjadi bentuk matematika maka :
>> pretty(f)
n n
2 (-1) - 2 (-2)
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 87
5. Invers Transformasi Z
Tentukan transformasi z dari persamaan berikut menggunakan MATLAB.
( )
( )( )
Maka syntaxnya adalah :
>> syms z n
f=iztrans((2*z^2)/((z-1)*(z-0.905)))
f =
400/19 - (362*(181/200)^n)/19
Apabila dimodifikasi menjadi bentuk matematika maka :
>> pretty(f)
n
362 (181/200)
400/19 - ---------------
19
8.4 Transformasi Laplace
Banyak permasalahan dalam bidang teknik yang memanfaatkan transformasi Laplace.
Transformasi Laplace merupakan klas dari transformasi integral yang dimanfaatkan untuk
merubah bentuk persamaan diferensial biasa menjadi bentuk persamaan aljabar dan untuk
merubah persamaan diferensial parsial menjadi persamaan diferensial biasa. Misal fungsi f(t)
terdefinisi untuk t 0, maka transformasi Laplace (satu sisi atau unilateral) dari f(t)
didefinisikan sebagai:
dt)t(fetfL0
st
Sebab bentuk integral merupakan fungsi dalam parameter s, maka notasi lain yang biasa
digunakan adalah F(s) = L (f(t)).
1. Transformasi Laplace
Tentukan transformasi laplace dari f(t) = -1,25 + 3,5te-2t
+1,25 e-2t
menggunakan MATLAB.
Maka syntaxnya adalah :
>> syms t s
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 88
f=-1.25+3.5*t*exp(-2*t)+1.25*exp(-2*t);
F=laplace(f,t,s)
F =
5/(4*(s + 2)) + 7/(2*(s + 2)^2) - 5/(4*s)
Apabila hendak disederhanakan :
>> simplify(F)
ans =
(s - 5)/(s*(s + 2)^2)
Apabila dimodifikasi menjadi bentuk matematika maka :
>> pretty (f)
5 7 t
---------- + ---------- - 5/4
4 exp(2 t) 2 exp(2 t)
2. Transformasi Laplace
Tentukan transformasi laplace dari f(t) = 3e-2t
sin 5t + 4 e-2t
cos 5t menggunakan MATLAB.
Maka syntaxnya adalah :
>> syms t s;
f = 3*exp(-2*t)*sin(5*t)+ 4*exp(-2*t)*cos(5*t);
F = laplace(f)
F =
(4*(s + 2))/((s + 2)^2 + 25) + 15/((s + 2)^2 + 25)
Apabila akan menyederhanakannya maka,
>> simplify (F)
ans =
(4*s + 23)/(s^2 + 4*s + 29)
Apabila dimodifikasi menjadi bentuk matematika maka :
>> pretty (F)
4 (s + 2) 15
------------- + -------------
2 2
(s + 2) + 25 (s + 2) + 25
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 89
3. Invers Transformasi Laplace
Tentukan transformasi laplace dari persamaan berikut ini menggunakan MATLAB.
( ) ( )
( )
Maka syntaxnya adalah :
>> syms t s
>> f = ilaplace((s-5)/(s*(s+2)^2))
f =
5/(4*exp(2*t)) + (7*t)/(2*exp(2*t)) - 5/4
Apabila dimodifikasi menjadi bentuk matematika maka :
>> pretty (f)
5 7 t
---------- + ---------- - 5/4
4 exp(2 t) 2 exp(2 t)
4. Invers Transformasi Laplace
Tentukan transformasi laplace dari persamaan berikut ini menggunakan MATLAB.
( ) ( )
( )
Maka syntaxnya adalah :
syms t s
f = ilaplace((10*(s+2))/(s*(s^2+4*s+5)))
f =
4 - (4*(cos(t) - sin(t)/2))/exp(2*t)
Apabila dimodifikasi menjadi bentuk matematika maka :
>> pretty (f)
/ sin(t) \
4 | cos(t) - ------ |
\ 2 /
4 - ---------------------
exp(2 t)
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 90
5. Invers Transformasi Laplace
Tentukan transformasi laplace dari persamaan berikut ini menggunakan MATLAB.
( ) ( )
( )( )( )
Maka syntaxnya adalah :
>> syms t s;
F=100*(s+3)/((s+1)*(s+2)*(s^2+2*s+5));
f = ilaplace(F)
f =
50/exp(t) - 20/exp(2*t) - (30*(cos(2*t) + sin(2*t)/3))/exp(t)
Apabila dimodifikasi menjadi bentuk matematika maka :
pretty(f)
/ sin(2 t) \
30 | cos(2 t) + -------- |
50 20 \ 3 /
------ - -------- - --------------------------
exp(t) exp(2 t) exp(t)
6. Persamaan Diferensial menggunakan Transformasi Laplace
Secara symbolik pada MATLAB mengikuti syntax sebagai berikut.
Cari solusi persamaan diferensial sebagai berikut kemudian plot kan hasilnya kedalam grafik.
( )
Maka syntaxnya adalah :
y = dsolve('Dy + 2*y = 12', 'y(0)=10')
ezplot(y, [0 3])
axis([0 3 5 10])
2
2
n
n
y
dy
dt
d y
dt
d y
dt
y
Dy
D2y
Dny
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 91
y =
4/exp(2*t) + 6
>> pretty (y)
4
-------- + 6
exp(2 t)
Gambar 8.1 Plot kurva hasil persamaan diferensial 1
7. Persamaan Diferensial menggunakan Transformasi Laplace
Cari solusi persamaan diferensial sebagai berikut kemudian plot kan hasilnya kedalam grafik.
( )
Maka syntaxnya adalah :
>> y = dsolve('Dy + 2*y = 12*sin(4*t)','y(0)=10')
ezplot(y, [0 8])
axis([0 8 -3 10])
pretty (y)
y =
62/(5*exp(2*t)) - (12*cos(4*t))/5 + (6*sin(4*t))/5
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 92
62 12 cos(4 t) 6 sin(4 t)
---------- - ----------- + ----------
5 exp(2 t) 5 5
Gambar 8.2 Plot kurva hasil persamaan diferensial 2
8. Persamaan Diferensial menggunakan Transformasi Laplace
Cari solusi persamaan diferensial sebagai berikut kemudian plot kan hasilnya kedalam grafik.
( ) ( )
Maka syntaxnya adalah :
>> y = dsolve('3*D2y + 2*Dy + 5*y = 20','y(0) = 5', 'Dy(0) =
10')
ezplot(y, [0 5])
y =
cos((14^(1/2)*t)/3)/exp(t/3) +
(31*14^(1/2)*sin((14^(1/2)*t)/3))/(14*exp(t/3)) + 4
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 93
>> pretty (y)
/ 1/2 \ / 1/2 \
| 14 t | 1/2 | 14 t |
cos| ------- | 31 14 sin| ------- |
\ 3 / \ 3 /
-------------- + ----------------------- + 4
/ t \ / t \
exp| - | 14 exp| - |
\ 3 / \ 3 /
Gambar 8.3 Plot kurva hasil persamaan diferensial 3
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 94
8.5 Latihan dan Tugas Pertemuan 8
1. Tentukan transformasi z dari persamaan berikut menggunakan MATLAB.
( )
2. Tentukan transformasi z dari persamaan berikut menggunakan MATLAB.
( )
3. Hitung menggunakan MATLAB transformasi Laplace dari
f(t) = 5 cos 3t + 2 sin 5t -6t3
4. Hitung menggunakan MATLAB Invers transformasi Laplace dari
( ) ( )
( )( )( )
5. Cari solusi persamaan diferensial sebagai berikut kemudian plot kan hasilnya kedalam
grafik.
( ) ( )
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 95
BAB 9
Transformasi Fourier
9.1 Tujuan Pengajaran
Setelah mengikuti unit praktikum ini, maka praktikan diharapkan :
1. Mahasiswa dapat mengerti cara mendapatkan transformasi fourier.
2. Mahasiswa dapat apat mengimplementasikan permasalahan transformasi fourier
dan penggunaannya dengan GUIDE
9.2 Alat dan Bahan
1. Komputer
2. Software MATLAB versi 5 atau sesudahnya.
3. White Board (untuk penjelasan oleh dosen)
4. Proyektor Komputer (untuk demonstrasi)
5. Spidol (untuk white board)
6. Kertas
7. Buku/Modul/Handout/Petunjuk Praktikum
9.3 Transformasi Z
Fourier transform merupakan operasi matematika yang bertujuan untuk dekomposisi
dari suatu sinyal (umumnya bentuk time-domain) ke unsur pokok berdasarkan frekuensi yang
terkandung. Pada artikel ini akan diberikan ilustrasi Fourier transform dengan menggunakan
Matlab. Dengan transformasi ini, kita bisa mengamati dan mengukur komponen frekuensi
berapa saja yang menyusun data / sinyal tersebut. Untuk melakukan analisis frekuensi di
dalam MATLAB, telah tersedia command “Fast Fourier Transform” (FFT) sebagai berikut:
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 96
1. Sinyal dan Fourier 1
Sebagai contoh, kita memiliki suatu sinyal seperti berikut ini:
clear;
Fs = 1000; % frekuensi sampling 1000Hz
t = 0:1/Fs:1.5; % durasi sinyal 1,5 detik
tone1 = 200;
tone2 = 300;
tone3 = 450; % 3 frekuensi tone dalam Hz
sinyal = cos(2*pi*tone1.*t) +1/2*cos(2*pi*tone2.*t) +
1/3*sin(2*pi*tone3.*t);
Kita bisa lihat bentuk “time-domain” dari sinyal tersebut, kemudian kita dengarkan:
plot(t,sinyal); axis([0 0.2 -1.5 1.5]);
xlabel('waktu (detik)'); ylabel('amplitude')
sound(sinyal,Fs);
Gambar 9.1 Time Domain Sinyal 1
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 97
S = fft(sinyal,Fs);
plot(abs(S));
xlabel('frekuensi (Hz)'); ylabel('magnitude')
Gambar 9.2 Frekuensi Domain Sinyal 2
2. Sinyal dan Fourier 2
Sebagai contoh, kita memiliki suatu sinyal seperti berikut ini:
Definisikan sinyal
dt = 1/100;
et = 4;
t = 0:dt:et;
y = 3*sin(4*2*pi*t) + 5*sin(2*2*pi*t);
Plot grafik 1
subplot(2,1,1);
plot(t,y); grid on
axis([0 et -8 8]);
xlabel('Time (s)');
ylabel('Amplitude');
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 98
Fourier Transform
Y = fft(y);
n = size(y,2)/2;
amp_spec = abs(Y)/n;
Plot grafik 2
subplot(2,1,2);
freq = (0:79)/(2*n*dt);
plot(freq,amp_spec(1:80)); grid on
xlabel('Frequency (Hz)');
ylabel('Amplitude');
Gambar 9.3 Time domain dan Frekuensi Domain Sinyal
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 99
3. Sinyal dan Fourier 3
Gambarkan sinyal modulasi AM dengan frequency 1kHz dan carrier 20kHz dengan
presentasi modulasi sebesar 0,75. Pergunakan m-file editor.
clear
fm = 1e3;
fc = 2e4;
mu = 0.75;
t = 1e-6:1e-6:0.1;
y = (1+mu*cos(2*pi*fm*t)).*cos(2*pi*fc*t);
figure(1)
plot(t,y);
xlim([0 0.002])
xlabel('Time (s)')
ylabel('Amplitudo')
title('Gelombang AM: fc = 2e4 Hz, fm = 1e3 Hz, indeks modulasi
= 0.75')
Gambar 9.4 Time Domain Sinyal
clear
fm = 1e3;
fc = 2e4;
mu = 0.75;
t = 1e-6:1e-6:0.1;
y = (1+mu*cos(2*pi*fm*t)).*cos(2*pi*fc*t);
L = length(y);
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 100
Y = fft(y,L);
Y = fftshift(Y);
Ys = Y.*conj(Y);
f = 1e6/L*(-(L/2):L/2-1);
plot(f,Ys)
xlim([-0.5e5 0.5e5])
xlabel('Frequensi (Hz)')
ylabel('Power')
title('Spektrum: fc=2e4 Hz, fm=1e3 Hz,index modulasi = 0.75')
Gambar 9.5 Frequency Domain Sinyal
4. Sinyal dan Fourier 4
Gambarkan sinyal segitiga dengan frequency 1Hz dan di modulasi carrier 25 Hz dengan
presentasi modulasi sebesar 0,8. Pergunakan m-file editor.
fo = 1;
t = 0:0.0001:5;
m = sawtooth(2*pi*fo*t,0.5);
mu = 0.8;
y = (1+mu*m).*cos(2*pi*25*t);
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 101
figure(2);
plot(t,y);
xlim([0 2])
xlabel('Time (s)')
ylabel('Amplitudo')
title('Gelombang Hasil Modulasi')
Gambar 9.6 Time Domain Sinyal
fo = 1;
t = 0:0.0001:5;
m = sawtooth(2*pi*fo*t,0.5);
mu = 0.8;
y = (1+mu*m).*cos(2*pi*25*t);
L = length(y);
Y = fft(y,L);
Y = fftshift(Y);
Ys = abs(Y);
f = 1e4/L*(-(L/2):L/2-1);
plot(f,Ys)
xlim([-50 50])
xlabel('Frequensi (Hz)')
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 102
ylabel('Magnitudo')
title('Spektrum AM: fc = 25 Hz, fm = 1 Hz, indek modulasi =
0.8')
Gambar 9.7 Frekuensi Domain Sinyal
5. Sinyal dan Fourier 5
Barapakah nilai minimum frekuensi carrier agar tidak terjadi overlap antara lower dan upper
sideband gelombang AM.
fo = 1;
t = 0:0.0001:5;
m = sawtooth(2*pi*fo*t,0.5);
mu = 0.8;
y = (1+mu*m).*cos(2*pi*1*t);
L = length(y);
Y = fft(y,L);
Y = fftshift(Y);
Ys = abs(Y);
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 103
f = 1e4/L*(-(L/2):L/2-1);
plot(f,Ys)
xlim([-20 20])
xlabel('Frequensi (Hz)')
ylabel('Magnitudo')
title('Spektrum: fc = 25 Hz, fm = 1 Hz, Indeks Modulasi =
0.8')
Gambar 9.8 Frekuensi Domain Sinyal
fo = 1;
t = 0:0.0001:5;
m = sawtooth(2*pi*fo*t,0.5);
mu = 0.8;
y = (1+mu*m).*cos(2*pi*2*t);
L = length(y);
Y = fft(y,L);
Y = fftshift(Y);
Ys = abs(Y);
f = 1e4/L*(-(L/2):L/2-1);
plot(f,Ys)
xlim([-15 15])
xlabel('Frequensi (Hz)')
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 104
ylabel('Magnitudo')
title('Spektrum: fc = 25 Hz, fm = 1 Hz, indek modulasi = 0.8')
Gambar 9.9 Frekuensi Domain Sinyal
6. Sinyal dan Fourier 6
Pada percobaan berikut ini anda coba bangkitkan 4 sinyal sinus dengan frekuensi f1, f2,
f3, dan f4. Sementara nilai amplitudo dapat anda lihat pada listing program berikut ini.
Caranya adalah dengan mengetik program berikut ini
>> Fs=100;
t=(1:400)/Fs;
f1=1;
s1=(2/pi)*sin(2*pi*f1*t);
f2=3;
s2=(2/3/pi)*sin(2*pi*f2*t);
f3=5;
s3=(2/5/pi)*sin(2*pi*f3*t);
f4=7;
s4=(2/7/pi)*sin(2*pi*f4*t);
s=s1+s2+s3+s4;
subplot(2,1,1)
plot(t,s)
xlabel('time')
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 105
S=fft(s,512);
w=(0:255)/256*(Fs/2);
subplot(2,1,2)
plot(w,abs(S(1:256)))
xlabel('frequency')
Gambar 9.10 Time domain dan Frekuensi Domain Sinyal
7. Sinyal dan Fourier 7
Pergunakan MATLAB untuk menghasilkan gelombang PAM dengan menggunakan sinusoid
modulasi m= 0.5 rad/sec, sampling Ts= 1 second, and pulse duration To= 0.2s. Plot juga
hasil magnitudo nya.
clear;clc;
wc = 0.5*pi;
res = 0.001;
Fs = 1;
sam = floor(1/(Fs*res));
t = 0:res:10-res;
m = sin(wc*t);
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 106
f = 1/res * ([0:1/(length(t)-1):1] - 0.5);
T = 0.2;
durInSam = floor(T/res);
sm = zeros(size(t));
for i=0:floor(length(t)/sam)-1;
sm((i*sam)+1:(i*sam)+durInSam) = m(i*sam+1);
end
y = fftshift(abs(fft(sm)));
figure(1)
subplot(2,1,1)
plot(t,sm);
xlabel('Time (s)')
ylabel('Amplitude')
title('PAM Wave: T_0 = 0.2 s')
subplot(2,1,2)
plot(f,y)
xlabel('Frequency (Hz)')
ylabel('Amplitude')
xlim([-15 15])
Gambar 9.11 Time domain dan Frekuensi Domain Sinyal PAM
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 107
BAB 10
Fungsi, Interpolasi, dan Statistik
10.1 Tujuan Pengajaran
Setelah mengikuti unit praktikum ini, maka praktikan diharapkan :
1. Mahasiswa dapat mendefinisikan fungsi matematika pada Matlab secara inline
dan dengan M-file.
2. Mahasiswa dapat menghitung nilai suatu fungsi.
3. Mahasiswa dapat mencari nilai minimum dan maksimum suatu fungsi.
4. Mahasiswa dapat mencari akar-akar suatu polinomial.
10.2 Alat dan Bahan
1. Komputer
2. Software MATLAB versi 5 atau sesudahnya.
3. White Board (untuk penjelasan oleh dosen)
4. Proyektor Komputer (untuk demonstrasi)
5. Spidol (untuk white board)
6. Kertas
7. Buku/Modul/Handout/Petunjuk Praktikum
10.3 Polinomial di MATLAB
Berbagai fungsi matematis bisa dievaluasi dan dianalisis dengan berbagai command
yang ada di MATLAB. Salah satu fungsi matematis yang sering digunakan, yaitu polinomial,
penanganan dan evaluasinya akan dibahas pula dalam bagian ini. Berikutnya akan disajikan
juga analisis fungsi, misalkan mencari nol, maksimum, dan minimum. Di samping itu,
interpolasi dan curvefitting menggunakan MATLAB akan dibahas pula. Pada bagian akhir
akan dikenalkan “Function Tool, yaitu sebuah tool analisis fungsi yang ada di MATLAB.
Misalkan kita memiliki dua polinomial sebagai berikut:
g(x) = 2x3 + 5x −1 h(x) = 6x
2 − 7
Dalam MATLAB kedua polinomial ini dinyatakan dengan:
>> g = [2 0 5 –1];
>> h = [6 0 –7];
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 108
Untuk mengevaluasi polinomial pada x = 10 kita tuliskan:
>> nilai1 = polyval(g,10), nilai2 = polyval(h,10)
nilai1 =
2049
nilai2 =
593
Command berikut digunakan untuk menangani polinomial:
Akar-akar dari polinomial g(x) dan h(x) bisa kita hitung:
>> akar_g = roots(g), akar_h = roots(h)
akar_g =
-0.0985 + 1.5903i
-0.0985 - 1.5903i
0.1969
akar_h =
1.0801
-1.0801
Jika kita kalikan kedua polinomial tersebut, akan diperoleh sebuah polinomial baru:
>> p = conv(g,h)
p =
12 0 16 -6 -35 7
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 109
yang mewakili: p(x) = 12x5 +16x
3 − 6x
2 − 35x + 7
Untuk memplot polinomial g(x) dan h(x) maka kita bisa pergunakan syntax :
clear
x=linspace(-5,5,10);
y1=2*x.^3+5*x-1;
y2=6*x.^2-7;
plot(x,y1,x,y2)
grid on
xlabel('sumbu-x'), ylabel('sumbu-y')
title('Kurva g(x) dan h(x))')
legend('g(x)','h(x)')
Gambar 10.1 Plot kurva
Turunan pertama dan kedua dari g(x) bisa kita hitung pula:
>> g1=polyder(g), g2=polyder(g1)
g1 =
6 0 5
g2 =
12 0
yang masing-masing mewakili
g'(x) = 6x2
+ 5 dan g''(x) = 12x
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 110
10.4 Nilai nol dari fungsi
Permasalahan pemecahan persamaan nonlinear sering muncul dari ebrbagai macam persoalan
praktis. Bentuk umum permasalahannya secara sederhana adalah menemukan sebuah nilai
variabel x sedemikian sehingga f(x) = 0, dimana f adalah sembarang fungsi nonlinear x,
sedangkan x merupakan solusi atau akar persamaan ini. Fungsi matematis bisa dinyatakan
dalam bentuk M-file di MATLAB. Misalkan fungsi
bisa kita tuliskan pada editor M-file.
function y = f(x)
y = (5.*x - 6.4)./((x-1.3).^2 + 0.002) + ...
(9.*x)./(x.^3 + 0.003) - ...
(x - 0.4)./((x-0.92).^2 + 0.005);
Fungsi tersebut bisa diplot dengan command plot:
x = linspace(0,2); % membuat vektor x
plot(x,f(x)); % memplot grafik f(x)
grid on;
title('Fungsi f(x)');
Gambar 10.2 Plot fungsi 1
Lihat angka yang menuju nilai nol.
>> x1=fzero(„f‟,0), x2=fzero(„f‟,0.5), x3=fzero(„f‟,2)
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 111
x1 =
0.0011
x2 =
0.7320
x3 =
1.2805
10.5 Titik potong dua fungsi
Misalkan kita ingin menghitung titik potong dari dua fungsi :
cos 2x dan 5x − 2;
atau dengan kata lain mencari solusi dari persamaan:
s(x) = cos 2x − 5x + 2 = 0
Maka, pertama kita definisikan fungsi cosm.m dalam M-file.
function s = cosm(x)
s = cos(2.*x) – 5.*x + 2;
Kemudian kita plot untuk memudahkan mendapatkan tebakan awal:
fplot(„cosm‟,[-10 10]);
grid on;
title(„cos(2x) – 5x + 2‟);
Gambar 10.3 Plot dua fungsi
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 112
Kita lihat bahwa x = 2 merupakan tebakan awal yang bagus.
>> nol = fzero(„cosm‟,2)
nol =
0.5060
10.6 Nilai Maksimum dan Minimum
Untuk melakukan optimisasi, yaitu mendapatkan solusi optimal, kita harus mendapatkan
maksimum atau minimum dari fungsi pada suatu interval. Dalam hal ini MATLAB
menggunakan metode numerik untuk menemukan minimum dari suatu fungsi. Algoritma
yang digunakannya iteratif, yaitu suatu proses berulang.
Misalkan kita definisikan suatu fungsi dua variabel:
Kita tuliskan dalam M-file gx1x2.m
function g = gx1x2(x)
g = x(1).^2 + x(2).^2 – 0.25.*x(1).*x(2) – sin(x(1));
Kemudian kita coba plot fungsi ini beserta konturnya.
x=linspace(-5,5,50); % menciptakan vektor x
% asumsikan y = x
for i = 1:50 % menghitung gx1x2 pada setiap titik
for j = 1:50
Z(i,j) = gx1x2([x(i) x(j)]);
end
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 113
end
meshc(x,x,Z); % plot grafik 3-D plus kontur
>> meshc(x,x,Z); % plot grafik 3-D plus kontur
Gambar 10.4 Plot fungsi dan konturnya
Dari gambar tersebut, kita coba tebakan awal pada titik (1,0):
>> minimum_gx1x2 = fmins(„gx1x2‟,[1,0])
minimum_gx1x2 =
1.0e-004 *
0.1467 -0.4034
10.7 Interpolasi dan Curve Fitting
Pada fungsi yang memiliki sejumlah titik terbatas, dimungkinkan untuk menentukan titik-titik
perantaranya dengan interpolasi. Cara termudah untuk menghitungnya ialah dengan
menggunakan interpolasi linier untuk menghubungkan dua titik yang berdekatan. Command
interp1 menggunakan algoritma khusus untuk interpolasi titik-titik data yang terpisah secara
seragam. Untuk command ini, kita harus tambahkan tanda asteris „*‟ di depan nama metoda
yang diinginkan, misalkan interp(x,y,xx,’*nearest’).
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 114
Misalkan kita memiliki data tekanan udara dalam suatu ruang tertutup yang diukur pada jam-
jam tertentu sebagai berikut:
t = [0 2 3 5 8.5 10 12];
pres = [660 900 400 300 500 50 300];
Sekarang kita interpolasi dengan beberapa metode dan kita plot pada satu gambar sekaligus:
tt = linspace(0,12,100);
PP1 = interp1(t,pres,tt,‟*linear‟);
PP2 = interp1(t,pres,tt,‟*cubic‟);
PP3 = interp1q(t‟,pres‟,tt‟);
figure;
plot(t,pres,‟k*‟,tt,PP1,‟k-„,tt,PP2,‟k:‟, tt,PP3,‟k--‟)
grid on;
xlabel(„waktu (jam)‟), ylabel(„Pressure‟)
legend(„data‟,‟linier‟,‟kubik‟,‟interp1q‟)
title(„Perbandingan metode interpolasi‟)
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 115
Gambar 10.5 Perbandingan metode interpolasi
Pencocokkan kurva (curve-fitting) yang akan dibahas di sini ialah pencocokkan titik-titik data
dengan suatu fungsi polinomial dengan metode pendekatan kuadrat terkecil (least squares
approximation). Mari kita coba dekati data tekanan udara seperti contoh sebelumnya dengan
polinomial orde tiga, empat, dan lima.
t = [0 2 3 5 8.5 10 12];
pres = [660 900 400 300 500 50 300];
p3 = polyfit(t,pres,3)
p4 = polyfit(t,pres,4)
p5 = polyfit(t,pres,5)
Maka jawabannya :
p3 =
0.5857 -6.9967 -38.3200 727.0393
p4 =
-0.3022 7.8645 -60.4717 77.6181 704.1170
p5 =
1.0e+003 *
0.0006 -0.0183 0.1908 -0.8055 1.0783 0.6648
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 116
Polinomial yang diwakili oleh p3, p4, dan p5 ialah:
Berikutnya kita plot data dan ketiga kurva polinomial tersebut
untuk dibandingkan.
tt = linspace(0,12,100);
kurva_p3 = polyval(p3,tt);
kurva_p4 = polyval(p4,tt);
kurva_p5 = polyval(p5,tt);
figure;
plot(t,pres,‟ko‟,tt,kurva_p3,‟k-„,
tt,kurva_p4,‟k:‟,tt,kurva_p5,‟k--‟)
grid on;
xlabel(„waktu (jam)‟), ylabel(„Pressure‟)
legend(„data‟,‟orde-3‟,‟orde-4‟,‟orde-5‟)
title(„Perbandingan pendekatan polinomial‟)
Gambar 10.6 Perbandingan pendekatan polinomial
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 117
10.8 Statistik
Dalam bab ini, kita akan belajar bagaimana menganalisis dan memanipulasi data
mempergunakan MATLAB, terutama untuk perhitungan statistik: rentang data,
maksimum/minimum, rata-rata, deviasi, jumlah kumulatif, dan sebagainya. Di MATLAB
fungsifungsi statistik semacam ini telah ada dan bisa digunakan secara fleksibel.
Misalkan kita gunakan rata-rata data tinggi badan mahasiswa.
x=[175 177 173 165 160 170 174 177 168 170];
nilai_tengah = median(x), deviasi = std(x), variansi = var(x)
nilai_tengah =
171.5000
deviasi =
5.4661
variansi =
29.8778
Kita bisa mengurutkan data (sortir) di MATLAB dengan command berikut ini:
Kita urutkan data tinggi badan dari kecil ke besar (ascending).
sort(x)
ans =
160 165 168 170 170 173 174 175 177 177
Atau kita urutkan disertai indeks yang menunjukkan nomor urut elemen pada vektor x
sebelum disortir.
[y,ind]=sort(x)
y =
160 165 168 170 170 173 174 175 177 177
ind =
5 4 9 6 10 3 7 1 2 8
Untuk mengurutkan tinggi badan dari besar ke kecil (descending).
>> fliplr(sort(x))
ans =
177 177 175 174 173 170 170 168 165 160
Histogram dan diagram batang yang kerap digunakan untuk menggambarkan data statistik
juga bisa ditampilkan dengan MATLAB dengan command berikut ini:
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 118
Mari kita coba gunakan data tinggi badan yang ada menjadi histogram dengan 10 interval.
x=[175 177 173 165 160 170 174 177 168 170];
hist(x); title(„Histogram tinggi badan‟);
xlabel(„Interval tinggi badan‟);
ylabel(„frekuensi‟);
Gambar 10.7 Histogram 1
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 119
Jika kita hanya menginginkan 4 interval, maka:
hist(x,4);
title(„Histogram tinggi badan‟);
xlabel(„Interval tinggi badan‟);
ylabel(„frekuensi‟);
Gambar 10.8 Histogram 2
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 120
BAB 11
IIR dan FIR Filter
11.1 Tujuan Pengajaran
Setelah mengikuti unit praktikum ini, maka praktikan diharapkan :
1. Mahasiswa mampu menyusun filter digital dan melakukan pemfilteran pada sinyal
digital menggunakan MATLAB.
2. Mahasiswa mampu menyusun filter digital dan melakukan pemfilteran pada sinyal
digital menggunakan IIR filter
3. Mahasiswa mampu menyusun filter digital dan melakukan pemfilteran pada sinyal
digital menggunakan FIR filter
11.2 Alat dan Bahan
1. Komputer
2. Software MATLAB versi 5 atau sesudahnya.
3. White Board (untuk penjelasan oleh dosen)
4. Proyektor Komputer (untuk demonstrasi)
5. Spidol (untuk white board)
6. Kertas
7. Buku/Modul/Handout/Petunjuk Praktikum
11.3 Filter IIR
Perlu diingat disini bahwa infinite inpulse response (IIR) dalam hal ini bukan berarti
filter yang bekerja dari nilai negatif tak hingga sampai positif tak hingga. Pengertian
sederhana untuk infinite impulse respon filter disini adalah bahwa output filter merupakan
fungsi dari kondisi input sekarang, input sebelumnya dan output di waktu sebelumnya.
Konsep ini kemudian lebih kita kenal sebagai recursive filter, yang mana melibatkan proses
feedback dan feed forward.
Untuk implementasi sebuah low pass filter bersifat narrow-band menggunakan
sebuah filter IIR merupakan pilihan yang sangat sulit tetapi masih mungkin dilakukan. Satu
alasannya adalah penentuan orde yang tepat sehingga menghasilkan bentuk yang tajam pada
respon frekuensi relative sulit. Pada domain unit circle bidang-z sering ditandai dengan letak
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 121
pole-pole yang ada diluar lingkaran, hal ini secara fisis memberikan arti bahwa filter yang
dihasilkan tidak stabil.
1. Filter IIR 1
Kita akan mencoba merancang sebuah low pass filter (LPF) IIR dengan memanfaatkan filter
Butterworth. Frekuensi cut off ditetapkan sebesar 2000 Hz. Dalam hal ini frekuensi sampling
adalah 10000 Hz. Langkah realisasi dalam Matlab adalah sebagai berikut.
clear all;
R=0.2;
N=16;
Wn=0.2;
figure(1);
[B,A] = butter(N,Wn);
[H,w]=freqz(B,A,N);
len_f=length(H);
f=1/len_f:1/len_f:1;
plot(f,20*log10(abs(H)),'linewidth',2)
grid on
Gambar 11.1 Response Filter IIR 1
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 122
2. Filter IIR 2
Desain low pass butterwoth IIR filter dengan cut off frekuensi 300 Hz yang berorde 5 dan
frekuensi sampling 1000 Hz. Gunakan metode standar, impulse invariant method dan
bilinear method.
Menggunakan metode standar :
FN=1000/2; fc=300; % cut offf frequency N=5;
% filter order
[z, p, k]=buttap(N); % create an analog filter
w=linspace(0, FN/fc, 1000); % plot the response of filter
h=freqs(k*poly(z), poly(p), w);
f=fc*w;
plot(f, 20*log10(abs(h))), grid
ylabel('Magnitude (dB)')
xlabel('Frequency (Hz)')
Gambar 11.2 Response Filter IIR 2a
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 123
Menggunakan metode impulse invariant method :
Fs=1000; % sampling frequency
N=5; % filter order
[b,a]=butter(N,WC,'s'); % create an analog filter
[z, p, k]=butter(N, WC, 's');
[bz, az]=impinvar(b,a,Fs); % determine coeffs of IIR
filter
[h, f]=freqz(bz, az, 512,Fs);
plot(f, 20*log10(abs(h))), grid
xlabel('Frequency (Hz)')
ylabel('Magnitude (dB)')
Gambar 11.3 Response Filter IIR 2b
Menggunakan metode impulse bilinear method.
Fs=1000; % sampling frequency FN=Fs/2;
fc=300; % cutoff frequency
N=5;
[z, p, k]=butter(N, fc/FN);
[h, f]=freqz(k*poly(z), poly(p), 512, Fs);
plot(f, 20*log10(abs(h))), grid
ylabel('Magnitude (dB)')
xlabel('Frequency (Hz)')
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 124
Gambar 11.4 Response Filter IIR 2c
11.4 Filter FIR
Sebuah finite impulse respon filter (filter FIR) memiliki hubungan input dan output
dalam domain waktu diskrit sebagai berikut. Untuk tujuan simulasi perangkat lunak kita bisa
memanfaatkan fungsi standar berikut ini:
B = FIR1(N,Wn)
Ini merupakan sebuah langkah untuk merancang filter digital FIR dengan orde sebesar
N, dan frekuensi cut off Wn. Secara default oleh Matlab ditetapkan bahwa perintah tersebut
akan menghasilkan sebuah low pass filter (LPF). Perintah ini akan menghasilkan koefisien-
koesifien filter sepanjang (N+1) dan akan disimpan pada vektor B. Karena dalamdomain
digital, maka nilai frekuensi cut off harus berada dalam rentang 0<Wn<1.0. Nilai 1.0 akan
memiliki ekuivalensi dengan nilai 0,5 dari sampling rate (fs/2).Yang perlu anda ketahui juga
adalah bahwa B merupakan nilai real dan memiliki fase yang linear. Sedangkan gain
ternormalisasi filter pada Wn sebesar -6 dB.
1. Filter FIR 1
Kita akan merancang sebuah LPF dengan frekuensi cut off sebesar 2000 Hz.
Frekuensi sampling yang ditetapkan adalah 10000 Hz. Orde filter ditetapkan sebesar 32.
Maka langkah pembuatan programnya adalah sebagai berikut:
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 125
fs=10000;
Wn = .20;
N = 32;
LP = fir1(N,Wn);
[H_x,w]=freqz(LP);
len_f=length(H_x);
f=1/len_f:1/len_f:1;
plot(f,20*log10(abs(H_x)))
grid on
Gambar 11.5 Response Filter FIR 1
2. Filter FIR 2
Kita akan merancang sebuah Band Pass Filter (BPF) dengan frekuensi cut off sebesar
2000 Hz (untuk daerah rendah) dan 5000 Hz (untuk daerah tinggi). Frekuensi sampling yang
ditetapkan adalah 10000 Hz. Orde filter ditetapkan sebesar 32. Beberapa bagian program
diatas perlu modifikasi seperti berikut.
fs=10000;
Wn1 = [.20, .50];
N = 32;
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 126
BP = fir1(N,Wn1);
[H_x,w]=freqz(BP);
len_f=length(H_x);
f=1/len_f:1/len_f:1;
plot(f,20*log10(abs(H_x)))
grid on
Gambar 11.6 Response Filter FIR 2
3. Filter FIR 3
Kita akan merancang sebuah High Pass Filter (HPF) dengan frekuensi cut off sebesar 5000
Hz (untuk daerah tinggi). Frekuensi sampling yang ditetapkan adalah 10000 Hz. Orde filter
ditetapkan sebesar 32. Beberapa bagian program diatas perlu modifikasi seperti berikut.
fs=10000;
Wn2 = .50;
N = 32;
HP = fir1(N,Wn2,'high');
[H_x,w]=freqz(HP);
len_f=length(H_x);
f=1/len_f:1/len_f:1;
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 127
plot(f,20*log10(abs(H_x)))
grid on
Gambar 11.7 Response Filter FIR 3
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 128
BAB 12
Graphical User Interface
12.1 Tujuan Pengajaran
Setelah mengikuti unit praktikum ini, maka praktikan diharapkan :
1. Mahasiswa mampu mengenal pemrograman grafis di dalam MATLAB
2. Mahasiswa dapat membuat program sederhana dengan GUI
12.2 Alat dan Bahan
1. Komputer
2. Software MATLAB versi 5 atau sesudahnya.
3. White Board (untuk penjelasan oleh dosen)
4. Proyektor Komputer (untuk demonstrasi)
5. Spidol (untuk white board)
6. Kertas
7. Buku/Modul/Handout/Petunjuk Praktikum
12.3 Dasar Teori GUI
MATLAB menyediakan tool untuk pembuatan GUI (Graphical User Interface).
Fasilitas ini dinamakan GUIDE (GUI Development Environment). Untuk pembuatan GUI,
ketikkan perintah guide di command window. Atau dengan mengclick icon GUI.
Gambar 12.1 Guide Quick Start
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 129
Pada Quick Start dialog, select Blank GUI (Default) template. Click OK maka akan
menampilakn Layout Editor, terlihat dibawah ini.
Gambar 12.2 Layout Editor
GUIDE Toolset :
Layout Editor : tempat untuk menambah dan menyusun objek di jendela GUI
Alignment Tools : untuk mengatur posisi masing-masing objek
Property Inspector : memeriksa dan mengeset nilai-nilai (sifat) objek
Object Browser : memantau hirarki objek-objek yang telah ada do layout
Menu Editor : membuat menu dan submenu dari GUI
Untuk memudahkan pemahaman, buatlah GUI sederhana berikut. Pembuatan GUI ini
di bagi dalam 3 tahap yakni :
1. Perancangan GUI akan lebih baik jika tampilan GUI digambar terlebih dahulu dalam
kertas
2. Penempatan dan pengaturan objek seperti pushbutton, axis dll
3. Pemrograman GUI membuat program bagi objek-objek GUI di M-File
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 130
Ketika kita membuat layout GUI kemudian menyimpannya, maka MATLAB akan
membuat M-File secara otomatis yang nantinya akan digunakan untuk pemrograman. Nama
M-File harus sama dengan nama figure dari GUI tersebut.
Langkah-langkah :
1. Silahkan anda membuat plot seperti dibawah ini.
a. 3 buah push button
b. 1 buah axes
c. 1 buah static text
d. 1 buah pop-up menu
Gambar 12.3 Tampilan desain
2. Rapihkan push button dengan menekan CRTL dan menclick push button ketiganya.
Kemudian pilih Tools dan Align Object.
Atur align object sehingga mengikuti gambar dibawah ini. Set spacing 20 pixel.
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 131
Gambar 12.4 Merapikan tampilan desain
Click 2 kali : Push Button 1 lalu pilih string.. Ganti Push Button 1 menjadi Surf
Gambar 12.5 Memberikan atribut Push Button
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 132
Click 2 kali : Push Button 2 lalu pilih string.. Ganti Push Button 2 menjadi Mesh
Click 2 kali : Push Button 3 lalu pilih string.. Ganti Push Button 3 menjadi Contour
Gambar 12.6 Tampilan Push Button setelah diganti
Click 2 kali : Pop-up Menu lalu pilih string.. Ganti Pop-up Menu menjadi
Peaks
Membrane
Sinc
Gambar 12.7 Memberikan atribut Pop-up Menu
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 133
Click 2 kali : Static Text lalu pilih string.. Ganti Static Text menjadi Select Data
Gambar 12.8 Memberikan atribut Static text
SAVE dan ACTIVATE
1 Save and activate your GUI by selecting Run from the Tools menu.OK.
Gambar 12.9 Tampilan GUI
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 134
Setelah di RUN, maka akan terbentuk 2 file sebagai berikut :
Gambar 12.10 Tampilan file GUI.fig
Gambar 12.11 Tampilan file GUI.m
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 135
Programming a Simple GUI
The code uses the MATLAB functions peaks, membrane, and sinc.
1. Display the opening function in the M-file editor. If the GUI M-file, simple_gui.m, is not
already open in your editor, open it by selecting M-file Editor from the View menu. In
the editor, click the function icon on the toolbar, then select simple_gui_OpeningFcn in
the pop-up menu that displays.
Gambar 12.12 Tampilan mfile GUI.m
2. Create data for the GUI to plot by adding the following code to the opening function
immediately after the comment that begins % varargin...
% Create the data to plot.
handles.peaks=peaks(35);
handles.membrane=membrane;
[x,y] = meshgrid(-8:.5:8);
r = sqrt(x.^2+y.^2) + eps;
sinc = sin(r)./r;
handles.sinc = sinc;
% Set the current data value.
handles.current_data = handles.peaks;
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 136
surf(handles.current_data)
Kemudian click RUN maka akan menujukan tampilan
Gambar 12.13 Tampilan fig GUI.m
Programming the Pop-Up Menu
1. Display the pop-up menu callback in the M-file editor. Right-click the pop-up menu
component in the Layout Editor to display a context menu. From that menu, select
View Callbacks > Callback
Gambar 12.14 Memanggil callback 1
2 Add the following code to the popupmenu1_Callback after the comment
that begins % handles...
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 137
% Determine the selected data set.
str = get(hObject, 'String');
val = get(hObject,'Value');
% Set current data to the selected data set.
switch str{val};
case 'Peaks' % User selects peaks.
handles.current_data = handles.peaks;
case 'Membrane' % User selects membrane.
handles.current_data = handles.membrane;
case 'Sinc' % User selects sinc.
handles.current_data = handles.sinc;
end
% Save the handles structure.
guidata(hObject,handles)
Programming the Push Buttons
1. Display the Surf push button callback in the M-file editor. Right-click the Surf push
button in the Layout Editor to display a context menu. From that menu, select View
Callbacks > Callback.
Gambar 12.15 Memanggil callback 2
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 138
2 Add the following code to the callback immediately after the comment that
begins % handles...
% Display surf plot of the currently selected data.
surf(handles.current_data);
3 Repeat steps 1 and 2 to add similar code to the Mesh and Contour push
button callbacks.
• Add this code to the Mesh push button callback, pushbutton2_Callback:
% Display mesh plot of the currently selected data.
mesh(handles.current_data);
• Add this code to the Contour push button callback,
pushbutton3_Callback:
% Display contour plot of the currently selected data.
contour(handles.current_data);
4 Save the M-file by selecting Save from the File menu.
Gambar 12.16 Memanggil callback 2
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 139
BAB 13
Simulink
13.1 Tujuan Pengajaran
Setelah mengikuti unit praktikum ini, maka praktikan diharapkan :
1. Mahasiswa mampu mengenal pemrograman real time membuat simulasi dengan
simulink.
2. Mampu menjalankan dan menggunakan Simulink untuk kegunaan simulasi dalam
bidang telekomunikasi.
3. Mampu membuat diagram blok dari model matematika sistem telekomunikasi.
13.2 Alat dan Bahan
1. Komputer
2. Software MATLAB versi 5 atau sesudahnya.
3. White Board (untuk penjelasan oleh dosen)
4. Proyektor Komputer (untuk demonstrasi)
5. Spidol (untuk white board)
6. Kertas
7. Buku/Modul/Handout/Petunjuk Praktikum
13.3 Simulink
Simulink adalah salah satu bagian dari MatLab. Simulink dapat digunakan untuk
mensimulasi sistem artinya mengamati dan menganalisa perilaku dari TIRUAN sistem.
Tiruan sistem diharapkan mempunyai perilaku yang sangat mirip dengan sistem fisik. Jika
digunakan dengan benar, simulasi akan membantu proses analisis dan desain sistem.
Simulink mendukung banyak simulasi diantaranya :
a. sistem linier,
b. sistem kontrol,
c. sistem yang menggunakan logika,
d. jaringan syaraf tiruan,
e. telekomunikasi, dan lain-lain.
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 140
Simulink dapat digunakan sebagai sarana pemodelan, simulasi dan analisis dari sistem
dinamik dengan menggunakan antarmuka grafis (GUI). Simulink terdiri dari beberapa
kumpulan toolbox yang dapat digunakan untuk analisis sistem linier dan non-linier. Beberapa
library yang sering digunakan dalam sistem kontrol antara lain math, sinks, dan sources.
Gambar 13.1 Icon untuk simulink
Gambar 13.2 Library simulink
Pada simulink terdapat banyak library yang dipergunakan. Pada contoh ini akan kita
pergunakan banyak library dai sistem telekomunikasi. Sebagai pendahuluan, kita akan
berlatih menggunakan simulink untuk simulasi modulasi dengan BPSK.
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 141
1. Simulasi BPSK menggunakan Simulink.
Silahkan anda mencari blok diagram seperti berikut.
Gambar 13. 3 Simulasi BPSK menggunakan Simulink
Hasil hasil keluaran dari simulink ini akan ditampilkan pada gambar dibawah ini.
Gambar 13. 4 Perbandingan sinyal transmit dan receiver
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 142
Pada gambar 13.4 terlihat perbandingan transmiter dan receiver terdapat satu buah bit error
hal itu juga terlihat pada gambar 13.5 dibawah ini.
Gambar 13.5 Tampilan error rate calculation
Pada gambar ini terlihat jumlah error pada simulasi BPSK. Sistem ini akan mendetect
jumlah error yang dihasilkan. Pada gambar 13.6 memperlihatkan kontelasi antara transmitter
dan receiver.
Gambar 13.6 Perbandingan konstelasi sinyal
Pada gambar ini terlihat pada receiver, konstelasi akan berubah, namun apabila masih
dalam threshold maka masih dianggap bit yang benar.
Gambar 13.7 Histori arah pergerakan bit
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 143
2. Simulasi 16QAM menggunakan Simulink.
Silahkan anda mencari blok diagram seperti berikut.
Gambar 13.8 Simulasi 16 QAM
Berikan analisa anda terhadap modulasi 16 QAM.
Politeknik Negeri Jakarta 2013
Diktat Praktikum Pengolahan Sinyal Digital Halaman 144
DAFTAR PUSTAKA
[1] MathWorks. MATLAB® 7 Creating Graphical User Interfaces.The MathWorks, Inc.
Natick, MA. 2008.
[2] Gonzalez,Woods. Digital Image Processing 2nd Ed. Prentice Hall. Upper Saddle.
New Jersey. 2006.
[3] MathWorks. Learning MATLAB 7. The MathWorks, Inc. Natick, MA. 2008.
[4] MathWorks. Learning MATLAB 6 : Student Version. The MathWorks, Inc. Natick,
MA. 2001.
[5] MathWorks. MATLAB® The Language of Technical Computing Getting Started with
MATLAB® Version 7. The MathWorks, Inc. Natick, MA. 2001
[6] B. Hunt, R. Lipsman. A Guide to MATLAB for Beginners and Experienced Users.
Cambridge University Press, New York. 2001.
[7] Christos Xenophontos. A Beginner’s Guide to MATLAB. Department of Mathematical
Sciences. Loyola College. 1998.
[8] Saluky, S.Si. Modul Praktikum MATLAB Versi 6.5. Sekolah Tinggi Manajemen
Informatika dan Komputer STMIK CIC.
[9] Sahid. Petunjuk Praktikum : Aplikasi Komputer dengan Matlab (edisi revisi).
Laboratorium Komputer. Jurusan Pendidikan Matematika FMIPA. UNY. 2004.
[10] Tim Dosen, Modul Praktikum Dasar Pemrograman Komputer, Teknik Elektro. UII.
2005.
[11] Tim Dosen. Petunjuk Praktikum Pengolahan Sinyal Digital. Laboratorium Dasar
Teknik Elektro. Sekolah Teknik Elektro dan Informatika. Institut Teknologi Bandung
(ITB). 2012.
[12] Tim Dosen. Modul Praktikum MATLAB. Divisi Pelatihan dan Informasi. Universitas
Muhamadiyah Malang. 2001.
[13] Teguh Widiarsono, M.T. Tutorial Praktis Belajar MATLAB. Oktober 2005. (online
edition).
top related