Anda di halaman 1dari 145

Diktat Praktikum

Pengolahan Sinyal Digital


(PSD)

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

Teknik Telekomunikasi
Jurusan Teknik Elektro
Politeknik Negeri Jakarta (PNJ)
Copyright © 2013
Politeknik Negeri Jakarta 2013

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

Diktat Praktikum Pengolahan Sinyal Digital Halaman 1


Politeknik Negeri Jakarta 2013

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

Diktat Praktikum Pengolahan Sinyal Digital Halaman 2


Politeknik Negeri Jakarta 2013

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 :

Diktat Praktikum Pengolahan Sinyal Digital Halaman 3


Politeknik Negeri Jakarta 2013

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.

Diktat Praktikum Pengolahan Sinyal Digital Halaman 4


Politeknik Negeri Jakarta 2013

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

Diktat Praktikum Pengolahan Sinyal Digital Halaman 5


Politeknik Negeri Jakarta 2013

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

Diktat Praktikum Pengolahan Sinyal Digital Halaman 6


Politeknik Negeri Jakarta 2013

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

Diktat Praktikum Pengolahan Sinyal Digital Halaman 7


Politeknik Negeri Jakarta 2013

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.

Diktat Praktikum Pengolahan Sinyal Digital Halaman 8


Politeknik Negeri Jakarta 2013

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).

Diktat Praktikum Pengolahan Sinyal Digital Halaman 9


Politeknik Negeri Jakarta 2013

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).

Diktat Praktikum Pengolahan Sinyal Digital Halaman 10


Politeknik Negeri Jakarta 2013

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.

Diktat Praktikum Pengolahan Sinyal Digital Halaman 11


Politeknik Negeri Jakarta 2013

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

Diktat Praktikum Pengolahan Sinyal Digital Halaman 12


Politeknik Negeri Jakarta 2013

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.

Diktat Praktikum Pengolahan Sinyal Digital Halaman 13


Politeknik Negeri Jakarta 2013

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

Diktat Praktikum Pengolahan Sinyal Digital Halaman 14


Politeknik Negeri Jakarta 2013

>> 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 – 10x2 + 9
>> akar=roots([1 0 –10 0 9])
akar =
3.0000
-3.0000
1.0000
-1.0000

Diktat Praktikum Pengolahan Sinyal Digital Halaman 15


Politeknik Negeri Jakarta 2013

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

Diktat Praktikum Pengolahan Sinyal Digital Halaman 16


Politeknik Negeri Jakarta 2013

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)

Diktat Praktikum Pengolahan Sinyal Digital Halaman 17


Politeknik Negeri Jakarta 2013

Gambar 1.14 Hasil Plot Grafik 3 Dimensi

Diktat Praktikum Pengolahan Sinyal Digital Halaman 18


Politeknik Negeri Jakarta 2013

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

Diktat Praktikum Pengolahan Sinyal Digital Halaman 19


Politeknik Negeri Jakarta 2013

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

Diktat Praktikum Pengolahan Sinyal Digital Halaman 20


Politeknik Negeri Jakarta 2013

>> 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

Diktat Praktikum Pengolahan Sinyal Digital Halaman 21


Politeknik Negeri Jakarta 2013

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”.

Diktat Praktikum Pengolahan Sinyal Digital Halaman 22


Politeknik Negeri Jakarta 2013

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,252+0,752)1/2 2/(6/0,3)
Jawab :
>> 12/3.5, (3+5/4)^2
ans =
3.4286
ans =
18.0625

Diktat Praktikum Pengolahan Sinyal Digital Halaman 23


Politeknik Negeri Jakarta 2013

>> (.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

Diktat Praktikum Pengolahan Sinyal Digital Halaman 24


Politeknik Negeri Jakarta 2013

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

Diktat Praktikum Pengolahan Sinyal Digital Halaman 25


Politeknik Negeri Jakarta 2013

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]

Diktat Praktikum Pengolahan Sinyal Digital Halaman 26


Politeknik Negeri Jakarta 2013

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)

Diktat Praktikum Pengolahan Sinyal Digital Halaman 27


Politeknik Negeri Jakarta 2013

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 =

Diktat Praktikum Pengolahan Sinyal Digital Halaman 28


Politeknik Negeri Jakarta 2013

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)

Diktat Praktikum Pengolahan Sinyal Digital Halaman 29


Politeknik Negeri Jakarta 2013

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

Diktat Praktikum Pengolahan Sinyal Digital Halaman 30


Politeknik Negeri Jakarta 2013

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

Diktat Praktikum Pengolahan Sinyal Digital Halaman 31


Politeknik Negeri Jakarta 2013

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.

Diktat Praktikum Pengolahan Sinyal Digital Halaman 32


Politeknik Negeri Jakarta 2013

>> 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

Diktat Praktikum Pengolahan Sinyal Digital Halaman 33


Politeknik Negeri Jakarta 2013

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.

Diktat Praktikum Pengolahan Sinyal Digital Halaman 34


Politeknik Negeri Jakarta 2013

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

Diktat Praktikum Pengolahan Sinyal Digital Halaman 35


Politeknik Negeri Jakarta 2013

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.

Diktat Praktikum Pengolahan Sinyal Digital Halaman 36


Politeknik Negeri Jakarta 2013

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

Diktat Praktikum Pengolahan Sinyal Digital Halaman 37


Politeknik Negeri Jakarta 2013

>> 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

Diktat Praktikum Pengolahan Sinyal Digital Halaman 38


Politeknik Negeri Jakarta 2013

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).

Diktat Praktikum Pengolahan Sinyal Digital Halaman 39


Politeknik Negeri Jakarta 2013

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)

Diktat Praktikum Pengolahan Sinyal Digital Halaman 40


Politeknik Negeri Jakarta 2013

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);

Diktat Praktikum Pengolahan Sinyal Digital Halaman 41


Politeknik Negeri Jakarta 2013

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‟)

Diktat Praktikum Pengolahan Sinyal Digital Halaman 42


Politeknik Negeri Jakarta 2013

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;

Diktat Praktikum Pengolahan Sinyal Digital Halaman 43


Politeknik Negeri Jakarta 2013

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;

Diktat Praktikum Pengolahan Sinyal Digital Halaman 44


Politeknik Negeri Jakarta 2013

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

Diktat Praktikum Pengolahan Sinyal Digital Halaman 45


Politeknik Negeri Jakarta 2013

-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.

Diktat Praktikum Pengolahan Sinyal Digital Halaman 46


Politeknik Negeri Jakarta 2013

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

Diktat Praktikum Pengolahan Sinyal Digital Halaman 47


Politeknik Negeri Jakarta 2013

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

Diktat Praktikum Pengolahan Sinyal Digital Halaman 48


Politeknik Negeri Jakarta 2013

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);

Diktat Praktikum Pengolahan Sinyal Digital Halaman 49


Politeknik Negeri Jakarta 2013

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.

Diktat Praktikum Pengolahan Sinyal Digital Halaman 50


Politeknik Negeri Jakarta 2013

>> 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

Diktat Praktikum Pengolahan Sinyal Digital Halaman 51


Politeknik Negeri Jakarta 2013

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

Diktat Praktikum Pengolahan Sinyal Digital Halaman 52


Politeknik Negeri Jakarta 2013

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

Diktat Praktikum Pengolahan Sinyal Digital Halaman 53


Politeknik Negeri Jakarta 2013

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

Diktat Praktikum Pengolahan Sinyal Digital Halaman 54


Politeknik Negeri Jakarta 2013

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')

Diktat Praktikum Pengolahan Sinyal Digital Halaman 55


Politeknik Negeri Jakarta 2013

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

Diktat Praktikum Pengolahan Sinyal Digital Halaman 56


Politeknik Negeri Jakarta 2013

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

Diktat Praktikum Pengolahan Sinyal Digital Halaman 57


Politeknik Negeri Jakarta 2013

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.

Diktat Praktikum Pengolahan Sinyal Digital Halaman 58


Politeknik Negeri Jakarta 2013

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');

Gambar 5.17 Hasil simulasi 1

Diktat Praktikum Pengolahan Sinyal Digital Halaman 59


Politeknik Negeri Jakarta 2013

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

Diktat Praktikum Pengolahan Sinyal Digital Halaman 60


Politeknik Negeri Jakarta 2013

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

Diktat Praktikum Pengolahan Sinyal Digital Halaman 61


Politeknik Negeri Jakarta 2013

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

Diktat Praktikum Pengolahan Sinyal Digital Halaman 62


Politeknik Negeri Jakarta 2013

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;

Diktat Praktikum Pengolahan Sinyal Digital Halaman 63


Politeknik Negeri Jakarta 2013

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);
Z = X.^2 + Y.^2;
mesh(X,Y,Z);

Diktat Praktikum Pengolahan Sinyal Digital Halaman 64


Politeknik Negeri Jakarta 2013

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);

Diktat Praktikum Pengolahan Sinyal Digital Halaman 65


Politeknik Negeri Jakarta 2013

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

Diktat Praktikum Pengolahan Sinyal Digital Halaman 66


Politeknik Negeri Jakarta 2013

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

Diktat Praktikum Pengolahan Sinyal Digital Halaman 67


Politeknik Negeri Jakarta 2013

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')

Diktat Praktikum Pengolahan Sinyal Digital Halaman 68


Politeknik Negeri Jakarta 2013

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

Diktat Praktikum Pengolahan Sinyal Digital Halaman 69


Politeknik Negeri Jakarta 2013

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

Diktat Praktikum Pengolahan Sinyal Digital Halaman 70


Politeknik Negeri Jakarta 2013

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‟)

2. Plot fungsi dua variabel berikut ini:

Diktat Praktikum Pengolahan Sinyal Digital Halaman 71


Politeknik Negeri Jakarta 2013

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);

Diktat Praktikum Pengolahan Sinyal Digital Halaman 72


Politeknik Negeri Jakarta 2013

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

Diktat Praktikum Pengolahan Sinyal Digital Halaman 73


Politeknik Negeri Jakarta 2013

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');

Diktat Praktikum Pengolahan Sinyal Digital Halaman 74


Politeknik Negeri Jakarta 2013

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

Diktat Praktikum Pengolahan Sinyal Digital Halaman 75


Politeknik Negeri Jakarta 2013

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.
dy
y  2x4   2.4 x 41  8.x 3
dx

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.
dy
2x4  6x  5   8x3  6
dx

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.
dy
 f ' ( x)  g ' ( x)
dx

Diktat Praktikum Pengolahan Sinyal Digital Halaman 76


Politeknik Negeri Jakarta 2013

y  x 2 ( x 2  2)
f ( x)  x 2  f ' ( x)  2 x
g ( x)  ( x  2)  g ' ( x)  2 x
2

y '  2 x( x 2  2)  2 x( x 2 )
 4 x3  4 x

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.

y  e 2 x 1
f ( x)  2 x  1  f ' ( x)  2
dy
 e 2 x 1.2  2e 2 x 1
dx

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.

y  sin( x 2  1)
f ( x)  x 2  1  f '  2 x
dy
 [cos( x 2  1)].2 x  2 x cos( x 2  1)
dx
dengan program Matlab dapat dikerjakan sebagai berikut

Diktat Praktikum Pengolahan Sinyal Digital Halaman 77


Politeknik Negeri Jakarta 2013

>> 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.

Diktat Praktikum Pengolahan Sinyal Digital Halaman 78


Politeknik Negeri Jakarta 2013

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.

Diktat Praktikum Pengolahan Sinyal Digital Halaman 79


Politeknik Negeri Jakarta 2013

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


Diktat Praktikum Pengolahan Sinyal Digital Halaman 80
Politeknik Negeri Jakarta 2013

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

Diktat Praktikum Pengolahan Sinyal Digital Halaman 81


Politeknik Negeri Jakarta 2013

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. y  x
x2 1
f ( x)  x  f ' ( x)  1
g ( x)  x 2  1  g ' ( x)  2 x
dy 1.( x 2  1)  2 x. ( x) 1 x2
  2
dx ( x 2  1) 2 ( x  1) 2

b. y  x  1
2

f ( x)  x 2  1  f ' ( x)  2 x
1
y  x  1  ( x  1)
2 2 2

 
1 1
dy 1 2 1  x
 x  1 (2 x)  x[ x  1] 2 
2 2

dx 2 x 1
2

c. y  ln( x 2  1)
f ( x)  x 2  1  f ' ( x)  2 x
dy 1 2x
 2 .2x  2
dx x  1 x 1

1  sin x
d. f ( x) 
cos x

2. Hitunglah integral terbatas berikut ini dengan metode trapezoid dan kuadratur:

∫ √

Diktat Praktikum Pengolahan Sinyal Digital Halaman 82


Politeknik Negeri Jakarta 2013

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

Diktat Praktikum Pengolahan Sinyal Digital Halaman 83


Politeknik Negeri Jakarta 2013

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.

Diktat Praktikum Pengolahan Sinyal Digital Halaman 84


Politeknik Negeri Jakarta 2013

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)

Diktat Praktikum Pengolahan Sinyal Digital Halaman 85


Politeknik Negeri Jakarta 2013

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)

Diktat Praktikum Pengolahan Sinyal Digital Halaman 86


Politeknik Negeri Jakarta 2013

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:

Lf t    e  st f( t ) dt
0

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

Diktat Praktikum Pengolahan Sinyal Digital Halaman 87


Politeknik Negeri Jakarta 2013

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

Diktat Praktikum Pengolahan Sinyal Digital Halaman 88


Politeknik Negeri Jakarta 2013

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)

Diktat Praktikum Pengolahan Sinyal Digital Halaman 89


Politeknik Negeri Jakarta 2013

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.
y y
dy Dy
dt
d2y D2y
dt 2
dny Dny
dt n
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])

Diktat Praktikum Pengolahan Sinyal Digital Halaman 90


Politeknik Negeri Jakarta 2013

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

Diktat Praktikum Pengolahan Sinyal Digital Halaman 91


Politeknik Negeri Jakarta 2013

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

Diktat Praktikum Pengolahan Sinyal Digital Halaman 92


Politeknik Negeri Jakarta 2013

>> 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

Diktat Praktikum Pengolahan Sinyal Digital Halaman 93


Politeknik Negeri Jakarta 2013

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.

( ) ( )

Diktat Praktikum Pengolahan Sinyal Digital Halaman 94


Politeknik Negeri Jakarta 2013

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:

Diktat Praktikum Pengolahan Sinyal Digital Halaman 95


Politeknik Negeri Jakarta 2013

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

Diktat Praktikum Pengolahan Sinyal Digital Halaman 96


Politeknik Negeri Jakarta 2013

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');

Diktat Praktikum Pengolahan Sinyal Digital Halaman 97


Politeknik Negeri Jakarta 2013

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

Diktat Praktikum Pengolahan Sinyal Digital Halaman 98


Politeknik Negeri Jakarta 2013

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);

Diktat Praktikum Pengolahan Sinyal Digital Halaman 99


Politeknik Negeri Jakarta 2013

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);

Diktat Praktikum Pengolahan Sinyal Digital Halaman 100


Politeknik Negeri Jakarta 2013

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)')

Diktat Praktikum Pengolahan Sinyal Digital Halaman 101


Politeknik Negeri Jakarta 2013

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);

Diktat Praktikum Pengolahan Sinyal Digital Halaman 102


Politeknik Negeri Jakarta 2013

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)')

Diktat Praktikum Pengolahan Sinyal Digital Halaman 103


Politeknik Negeri Jakarta 2013

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')

Diktat Praktikum Pengolahan Sinyal Digital Halaman 104


Politeknik Negeri Jakarta 2013

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);

Diktat Praktikum Pengolahan Sinyal Digital Halaman 105


Politeknik Negeri Jakarta 2013

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

Diktat Praktikum Pengolahan Sinyal Digital Halaman 106


Politeknik Negeri Jakarta 2013

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) = 6x2 − 7
Dalam MATLAB kedua polinomial ini dinyatakan dengan:
>> g = [2 0 5 –1];
>> h = [6 0 –7];

Diktat Praktikum Pengolahan Sinyal Digital Halaman 107


Politeknik Negeri Jakarta 2013

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

Diktat Praktikum Pengolahan Sinyal Digital Halaman 108


Politeknik Negeri Jakarta 2013

yang mewakili: p(x) = 12x5 +16x3 − 6x2 − 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

Diktat Praktikum Pengolahan Sinyal Digital Halaman 109


Politeknik Negeri Jakarta 2013

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)

Diktat Praktikum Pengolahan Sinyal Digital Halaman 110


Politeknik Negeri Jakarta 2013

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

Diktat Praktikum Pengolahan Sinyal Digital Halaman 111


Politeknik Negeri Jakarta 2013

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

Diktat Praktikum Pengolahan Sinyal Digital Halaman 112


Politeknik Negeri Jakarta 2013

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’).

Diktat Praktikum Pengolahan Sinyal Digital Halaman 113


Politeknik Negeri Jakarta 2013

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‟)

Diktat Praktikum Pengolahan Sinyal Digital Halaman 114


Politeknik Negeri Jakarta 2013

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

Diktat Praktikum Pengolahan Sinyal Digital Halaman 115


Politeknik Negeri Jakarta 2013

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

Diktat Praktikum Pengolahan Sinyal Digital Halaman 116


Politeknik Negeri Jakarta 2013

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:

Diktat Praktikum Pengolahan Sinyal Digital Halaman 117


Politeknik Negeri Jakarta 2013

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

Diktat Praktikum Pengolahan Sinyal Digital Halaman 118


Politeknik Negeri Jakarta 2013

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

Diktat Praktikum Pengolahan Sinyal Digital Halaman 119


Politeknik Negeri Jakarta 2013

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

Diktat Praktikum Pengolahan Sinyal Digital Halaman 120


Politeknik Negeri Jakarta 2013

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

Diktat Praktikum Pengolahan Sinyal Digital Halaman 121


Politeknik Negeri Jakarta 2013

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

Diktat Praktikum Pengolahan Sinyal Digital Halaman 122


Politeknik Negeri Jakarta 2013

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)')

Diktat Praktikum Pengolahan Sinyal Digital Halaman 123


Politeknik Negeri Jakarta 2013

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:

Diktat Praktikum Pengolahan Sinyal Digital Halaman 124


Politeknik Negeri Jakarta 2013

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;

Diktat Praktikum Pengolahan Sinyal Digital Halaman 125


Politeknik Negeri Jakarta 2013

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;

Diktat Praktikum Pengolahan Sinyal Digital Halaman 126


Politeknik Negeri Jakarta 2013

plot(f,20*log10(abs(H_x)))
grid on

Gambar 11.7 Response Filter FIR 3

Diktat Praktikum Pengolahan Sinyal Digital Halaman 127


Politeknik Negeri Jakarta 2013

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

Diktat Praktikum Pengolahan Sinyal Digital Halaman 128


Politeknik Negeri Jakarta 2013

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

Diktat Praktikum Pengolahan Sinyal Digital Halaman 129


Politeknik Negeri Jakarta 2013

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.

Diktat Praktikum Pengolahan Sinyal Digital Halaman 130


Politeknik Negeri Jakarta 2013

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

Diktat Praktikum Pengolahan Sinyal Digital Halaman 131


Politeknik Negeri Jakarta 2013

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

Diktat Praktikum Pengolahan Sinyal Digital Halaman 132


Politeknik Negeri Jakarta 2013

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

Diktat Praktikum Pengolahan Sinyal Digital Halaman 133


Politeknik Negeri Jakarta 2013

Setelah di RUN, maka akan terbentuk 2 file sebagai berikut :

Gambar 12.10 Tampilan file GUI.fig

Gambar 12.11 Tampilan file GUI.m

Diktat Praktikum Pengolahan Sinyal Digital Halaman 134


Politeknik Negeri Jakarta 2013

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;

Diktat Praktikum Pengolahan Sinyal Digital Halaman 135


Politeknik Negeri Jakarta 2013

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...

Diktat Praktikum Pengolahan Sinyal Digital Halaman 136


Politeknik Negeri Jakarta 2013

% 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

Diktat Praktikum Pengolahan Sinyal Digital Halaman 137


Politeknik Negeri Jakarta 2013

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

Diktat Praktikum Pengolahan Sinyal Digital Halaman 138


Politeknik Negeri Jakarta 2013

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.

Diktat Praktikum Pengolahan Sinyal Digital Halaman 139


Politeknik Negeri Jakarta 2013

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.

Diktat Praktikum Pengolahan Sinyal Digital Halaman 140


Politeknik Negeri Jakarta 2013

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

Diktat Praktikum Pengolahan Sinyal Digital Halaman 141


Politeknik Negeri Jakarta 2013

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

Diktat Praktikum Pengolahan Sinyal Digital Halaman 142


Politeknik Negeri Jakarta 2013

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.

Diktat Praktikum Pengolahan Sinyal Digital Halaman 143


Politeknik Negeri Jakarta 2013

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).

Diktat Praktikum Pengolahan Sinyal Digital Halaman 144

Anda mungkin juga menyukai