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

DAFTAR ISI ........................

BAB 1

Pengenalan Matlab .......................

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 akarakar 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
ketikkanNAMA, 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
cos
tan
asin
acos
atan
exp
log
abs
sqrt
rem
round
floor
ceil

trigonometric sine
trigonometric cosine
trigonometric tangent
trigonometric inverse sine (arcsine)
trigonometric inverse cosine (arccosine)
trigonometric inverse tangent (arctangent)
exponential
natural logarithm
absolute value
square root
remainder
round towards nearest integer
round towards negative infinity
round towards positive infinity

Contoh penggunaan :
>> sin(pi/2)
ans =
1
>> cos(pi/2)
ans =
6.1230e-017
Catatan :
0 ( 6.1230e-017 = 6.123010-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

Diktat Praktikum Pengolahan Sinyal Digital

cos 2x

tan 3x

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 11), dan vektor bisa dianggap sebagai
matriks 1-dimensi: satu baris n kolom, atau n baris 1 kolom (matriks 1n atau n1).
Semua perhitungan di MATLAB dilakukan dengan matriks, sehingga disebut MATrix
LABoratory. Berikutnya kita coba contoh berikut untuk mendefinisikan matriks 33.
>> 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

15

23

14

16

13

20

22

10

12

19

21

11

18

25

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

double array

Circum

1x1

double array

Hyp

1x1

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
statement(s)
elseif relation
statement(s)
else
statement(s)
end

%
%
%
%
%
%

if
if
if
if
if
if

applicable
applicable
applicable
applicable
applicable
applicable

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

y 2x4

dy
2.4 x 41 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.

2x4 6x 5

dy
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);
y = exp(-x.^3);
integral = trapz(x,y)
integral =

% definisikan vektor x
% hitung nilai y
% integralkan !

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
2
b. y x 1

f ( x) x 2 1 f ' ( x) 2 x
y x 1 ( x 1)
2

1
2

1
1

1
dy 1 2
2
2
x 1 (2 x) x[ x 1] 2
dx 2

x
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

d.

f ( x)

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

-------- + ---------2
(z - 1)

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
2 (-1)

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

Lf 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
(s + 2)

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

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

------ - -------- - -------------------------exp(t)

exp(2 t)

exp(t)

6. Persamaan Diferensial menggunakan Transformasi Laplace


Secara symbolik pada MATLAB mengikuti syntax sebagai berikut.

y
dy
dt
d2y
dt 2
dny
dt n

y
Dy
D2y
Dny

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)

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

| 14

\
t |

cos| ------- |
\

/
1/2
31 14

1/2

| 14

\
t |

sin| ------- |

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

7.8645

-60.4717

77.6181

704.1170

-0.0183

0.1908

-0.8055

1.0783

p4 =
-0.3022
p5 =
1.0e+003 *
0.0006

Diktat Praktikum Pengolahan Sinyal Digital

0.6648

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