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,
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,
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
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
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
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 =
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.
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
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
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
Diktat Praktikum Pengolahan Sinyal Digital Halaman 10 Gambar 1.6 Grafik User Interface
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
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.
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
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 =
Menciptakan dan memanipulasi vektor dan matriks:
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
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 :
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);
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).
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
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 =
Sekarang kita coba contoh berikut ini.
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
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
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)
2.6 Latihan dan Tugas Pertemuan 2
1. Hitung dengan MATLAB
12/3,5 (3+5/4)2 (0,252+0,752)1/2 2/(6/0,3) Jawab :
>> 12/3.5, (3+5/4)^2
ans =
3.4286 ans =
Diktat Praktikum Pengolahan Sinyal Digital Halaman 24
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)
3. Misalkan x=π/6, y=0,001; hitunglah
√ sin x cos 2x tan 3x
Diktat Praktikum Pengolahan Sinyal Digital Halaman 25 Jawab :
>> x=pi/6; y=.001;
>> sqrt(y), exp(-x), sin(x) ans =
>> cos(2*x), tan(3*x) ans =
0.5000 ans =
1.6331e+016
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 :
Diktat Praktikum Pengolahan Sinyal Digital Halaman 27
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 :
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 :
3. Matriks Identitas
Bentuk umum :
4. Matriks Bujur Sangkar Ajaib
Diktat Praktikum Pengolahan Sinyal Digital Halaman 29
5. Matriks Acak
Matriks yang memiliki nilai acak berdasarkan distribusi statistic pada elemnnya.
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
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 =
Diktat Praktikum Pengolahan Sinyal Digital Halaman 32
Operasi Matriks 39
y = 100
10
1
>> z1=x*y, z2=y*x
z1 =
3.6 Persamaan Linier Pada Matriks
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
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
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.
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
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
Diktat Praktikum Pengolahan Sinyal Digital Halaman 38
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;
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
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).
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
Diktat Praktikum Pengolahan Sinyal Digital Halaman 41
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
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.
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
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;
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
Diktat Praktikum Pengolahan Sinyal Digital Halaman 46
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
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
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
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.
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
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);
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)
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])
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])
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)')
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])
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')
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)')
Diktat Praktikum Pengolahan Sinyal Digital Halaman 59
5.4 Latihan dan Tugas Pertemuan 5
1. Gambarkan kurva y = x4−9x2 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');
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')
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
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
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;
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 + y2.
batas_x = -10:1:10; batas_y = -10:4:10; [X,Y] = meshgrid(batas_x,batas_y);
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);
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);
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);
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')
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')
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')
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 - y2, 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‟)
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);
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)', ...
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');
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.
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.
Diktat Praktikum Pengolahan Sinyal Digital Halaman 77 dengan program Matlab dapat dikerjakan sebagai berikut
>> syms x;
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.
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.
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
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
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
int_w = int_w + funxyz(X,Y,Z)*dX*dY*dZ; end
end end
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:
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 =
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
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 :
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)
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)
1. Transformasi Laplace
Tentukan transformasi laplace dari f(t) = -1,25 + 3,5te-2t +1,25 e-2t menggunakan MATLAB. Maka syntaxnya adalah :
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
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 :