Diktat Praktikum DSP

145
Diktat Praktikum Pengolahan Sinyal Digital (PSD) Teknik Telekomunikasi Jurusan Teknik Elektro Politeknik Negeri Jakarta (PNJ) Copyright © 2013 MATLAB is an integrated technical computing environment that combines numeric computation, advanced graphics and visualization, and a highlevel programming language. www.mathworks.com/products/matlab

description

Buku Panduan MATLAB

Transcript of Diktat Praktikum DSP

Page 1: Diktat Praktikum DSP

Diktat Praktikum Pengolahan Sinyal Digital

(PSD)

Teknik Telekomunikasi

Jurusan Teknik Elektro

Politeknik Negeri Jakarta (PNJ) Copyright © 2013

MATLAB is an integrated technical computing environment that combines

numeric computation, advanced graphics and visualization,

and a highlevel programming language.

– www.mathworks.com/products/matlab

Page 2: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 1

KATA PENGANTAR

Segala puji kita panjatkan kepada Allah SWT yang telah memberikan rahmat dan

hidayah-Nya sehingga kami dapat menyelesaikan Diktat Praktikum Pengolahan Sinyal

Digital dengan baik sesuai dengan waktu yang telah kita tentukan. Bersama ini kami juga

menyampaikan terima kasih kepada semua pihak yang telah membantu hingga

terselesaikannya diktat ini.

Semoga segala yang telah kita kerjakan merupakan bimbingan yang lurus dari Yang

Maha Kuasa. Proses penyusunan diktat ini tentu jauh dari sempurna, oleh karena itu segala

kritik dan saran sangat diharapkan demi perbaikan dan penyempurnaan tugas ini dan untuk

pelajaran bagi kita semua masa mendatang. Semoga dengan adanya diktat ini kita dapat

belajar bersama demi kemajuan kita dan kemajuan ilmu pengetahuan.

Depok,

Penyusun

Page 3: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 2

DAFTAR ISI

Halaman

KATA PENGANTAR …………………………………..………...……….................... 1

DAFTAR ISI ………………...…………………….……………………….................... 2

BAB 1 Pengenalan Matlab ……………….………………………...................... 3

BAB 2 Operasi Dasar MATLAB……………….………………………............. 19

BAB 3 Matriks ……………….………………………......................................... 26

BAB 4 M-File dan Pemrograman MATLAB ……………….………………….. 35

BAB 5 Grafik Dua Dimensi ……………….……………………….................... 49

BAB 6 Grafik Tiga Dimensi ……………….………………………................... 62

BAB 7 Diferensial dan Integral ……………….………………………............... 75

BAB 8 Transformasi Z dan Laplace ……………….………………………........ 84

BAB 9 Transformasi Fourier ……………….………………………................... 95

BAB 10 Fungsi, Interpolasi, dan Statistik……………….……………………….. 107

BAB 11 IIR dan FIR Filter ……………….………………………........................ 120

BAB 12 Graphical User Interface ……………….……………………….............. 128

BAB 13 Simulink ……………….………………………...................................... 139

DAFTAR PUSTAKA ..………………………………………..…………...................... 144

Page 4: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 3

BAB 1

Pengenalan Matlab

1.1 Tujuan Pengajaran

1. Mahasiswa dapat menjalankan program MATLAB.

2. Mahasiswa mengetahui beberapa fasilitas pada MATLAB

3. Mahasiswa dapat menggunakan menu-menu pada MATLAB untuk bekerja

4. Mahasiswa mengetahui beberapa perintah MATLAB dan kegunaannya

5. Mahasiswa mengetahui kegunaan toolbar pada layar MATLAB

1.2 Alat dan Bahan

1. Komputer

2. Software MATLAB versi 5 atau sesudahnya.

3. White Board (untuk penjelasan oleh dosen)

4. Proyektor Komputer (untuk demonstrasi)

5. Spidol (untuk white board)

6. Kertas

7. Buku/Modul/Handout/Petunjuk Praktikum

1.3 Pengertian Matlab

Menurut mathworks, Matlab memiliki pengertian :

MATLAB is an integrated technical computing environment that combines

numeric computation, advanced graphics and visualization, and a highlevel

programming language.

– www.mathworks.com/products/matlab

MATLAB (Matrix Laboratory) adalah bahasa tingkat tinggi dan interaktif yang

memungkinkan untuk melakukan komputasi secara intensif. MATLAB telah berkembang

menjadi sebuah environment pemrograman yang canggih yang berisi fungsi-fungsi builtin

untuk melakukan pengelolahan sinyal, aljabar linear dan kalkulasi matematis lainnya.

MATLAB juga berisi toolbox yang berisi fungsi fungsi tambahan untuk aplikasi khusus.

Penggunaan MATLAB meliputi bidang-bidang :

Page 5: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 4

1. Matematika dan Komputasi

2. Pembentukan

3. Algorithm

4. Akuisisi

5. Data

6. Pemodelan,

7. Simulasi dan Pembuatan Prototype

8. Analisis

9. Data, Explorasi, dan Visualisasi

10. Grafik

11. Keilmuan dan Bidang Rekayasa

12. Grafik User Interface (GUI)

Sementara itu, MATLAB juga memiliki kekuatan diantaranya meliputi

1. Kemudahan manipulasi struktur matriks.

2. Jumlah routine-routine powerful yang berlimpah yang terus berkembang.

3. Kekuatan fasilitas grafik tiga dimensi yang sangat memadai.

4. Sistem scripting yang memberikan keleluasaan bagi pengguna untuk

mengembangkan dan memodifikasi software untuk kebutuhan sendiri.

5. Kemampuan interface( misal dengan bahasa C, word dan mathematica).

6. Dilengkapi dengan toolbox, simulink, stateflow dan sebagainya, serta mulai

melimpahnya source code di internet yang dibuat dalam matlab( contoh toolbox

misalnya : signal processing, control system, neural networks dan sebagainya).

Semua itu merupakan perangkat yang powerful untuk menyelesaikan permasalahan

sains dan teknik terutama untuk wilayah dimana komputasi numerik harus dibuat.

Dalam buku ini kita akan mempelajari MATLAB setahap demi setahap, mulai dari

hal yang sederhana hingga yang cukup kompleks. Di dalam buku ini kita akan mempelajari

„teori‟ penggunaan MATLAB, namun untuk menjadi mahir Anda harus duduk di depan

komputer dan mempraktekkannya secara langsung.

1.4 Desktop Matlab

Ketika MATLAB dijalankan pertama kali, MATLAB desktop tampil, berisi tools

(graphical user interfaces) untuk mengatur file, variables, dan aplikasi MATLAB. Pertama

kali MATLAB dijalankan akan tampil desktop dengan ilustrasi sebagai berikut.

Page 6: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 5

Gambar 1.1 Tampilan Awal MATLAB

Jendela-jendela yang ada di MATLAB adalah sebagai berikut :

Command window

Digunakan untuk menjalankan fungsi-fungsi MATLAB. Pada command window,

semua perintah matlab dituliskan dan diekskusi. Kita dapat menuliskan perintah

perhitungan sederhana, memanggil fungsi, mencari informasi tentang sebuah fungsi

dengan aturan penulisannya (help), demo program, dan sebagainya. Setiap penulisan

perintah selalu diawali dengan prompt „>>‟. Misal, mencari nilai sin 60, maka pada

command window kita dapat mengetikkan :

>> sin (60*pi/180)

ans =

0.8660

>> sin(30*pi/180)

ans =

0.5000

Page 7: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 6

Command history

Digunakan untuk menyimpan baris-baris perintah yang telah diketikkan di command

window. Kita dapat melihat fungsi-fungsi yang digunakan sebelumnya, mengkopi dan

menjalankannya kembali dari command history. Jendela ini berisi informasi tentang

perintah yang pernah dituliskan sebelumnya. Kita dapat mengambil kembali perintah

dengan menekan tombol panah ke atas atau mengklik perintah pada jendela histori,

kemudian melakukan copypaste ke command window.

Gambar 1.2 Tampilan Command History

Help browser

Untuk mencari dan menampilkan dokumentasi semua produk MathWorks.

Gambar 1.3 Help Product MATLAB

Page 8: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 7

Untuk menghafalkan semua perintah MATLAB mungkin akan menemui banyak

kesulitan. Untuk menemukan perintah-perintah itu, MATLAB menyediakan bantuan

dengan menyediakan help online. Kemampuan ini meliputi perintah MATLAB untuk

memperoleh keterangan cepat pada command window atau pada help browser.

Help browser memiliki dua bagian utama: Help Navigator, dan layar tampilan di sisi

kanan. Cara penggunaan help browser mirip dengan Windows Explorer; apa yang kita

pilih di daftar navigator akan ditampilkan di layar sisi kanan. Help Navigator ini

memiliki sejumlah komponen:

a. Product filter : mengaktifkan filter untuk memperlihatkan dokumentasi hanya

pada produk yang Anda inginkan

b. Tab Contents : melihat judul dan daftar isi dokumentasi

c. Tab Index : mencari entri indeks tertentu (dengan kata kunci) di dalam

dokumentasi

d. Tab Demos : melihat dan menjalankan demo

e. Tab Search : untuk mencari dokumentasi yang mengandung kata / potongan

kata tertentu. Untuk mendapatkan help dari suatu fungsi tertentu, pilihlah

Search type: Function Name

f. Tab Favorites : melihat daftar link ke dokumen yang telah ditandai sebagai

favorit.

Di antara tab tersebut, yang paling sering digunakan ialah Contents dan Search.

Sebagai latihan, cobalah mencari dokumen mengenai “sound” dengan help browser. Pilih tab

Search, Search type: Full Text, Search for: sound.

Penggunaan kaca kunci untuk pencarian mirip dengan mesin pencari di internet

(google, yahoo, altavista, dll). Misalkan Anda ingin mencari “filter digital”, maka ketikkan

dalam Search for: filter AND digital.

Current diectory browser

Operasi MATLAB file menggunakan current directory dan search path sebagai

referensi. File yang akan dijalankan harus berada di current directory atau ada pada

search path.

Workspace

Berisi kumpulan variabel yang terbentuk sepanjang sesi MATLAB dan di simpan di

memory. Jendela ini berisi informasi penggunaan variabel di dalam memori

Page 9: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 8

MATLAB. Misalkan kita akan menjumlahkan dua buah bilangan, maka pada

command window kita dapat mengetikkan:

>> bilangan1=7

bilangan1 =

7

>> bilangan2=9

bilangan2 =

9

>> hasil=bilangan1+bilangan2

hasil =

16

Maka pada workspace akan menampilkan variable yang sedang digunakan.

Gambar 1.4 Tampilan Work Space

Untuk melihat variabel yang aktif saat ini, kita dapat menggunakan perintah who.

>> who

Your variables are:

bilangan1 bilangan2 hasil

Launch pad

Menyediakan akses yang mudah ke tools, demo dan dokumentasi.

Page 10: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 9

Gambar 1.5 Launch Pad

Array editor

Menampilkan isi array dalam format tabel dan dapat digunakan untuk mengedit

isi array.

Editor/Debugger

Digunakan untuk membuat, mengedit, dan men-debug M-files, yakni program

yang dibuat untuk menjalankan fungsi-fungsi MATLAB.

Figure

Figure adalah jendela untuk menampilkan gambar grafik seperti perintah plot

dan sejenisnya. Gambar pada jendela figure ini dapat disimpan ke dalam sebuah file

yang sewaktu-waktu dapat dipanggil kembali.

1.5 Grafik User Interface

Ketika kita membuka GUI Matlab kita bisa melihat lihat dan mencoba coba perintah

pada GUI tersebut dan untuk lebih jelasnya bisa dilihat dalam demo tersebut. Kita bisa

melihat contoh contoh program dan bisa disave dengan ektension .m(yang merupakan ektensi

dari file matlab).

Page 11: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 10

Gambar 1.6 Grafik User Interface

Salah satu yang cukup menarik dari matlab ini adalah kemudahan dan kejelasannya

dalam memahami contoh dan demo serta help yang ada pada matlab. Kita akan berkenalan

lebih dekat dengan yang satu ini. Kita bisa lihat dari demo ini ternyata begitu banyak

persoalan yang dapat dibangun dengan matlab dengan cara lebih mudah dan lebih singkat,

tanpa mengurangi kepahaman kita pada suatu persoalan(bisa dibandingkan dengan bahasa C,

pascal, delphi atau visual lainnya).

Page 12: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 11

Gambar 1.7 Aplikasi GUI

1.6 Simulink

Simulink adalah platform didalam MATLAB yang digunakan untuk mensimulasikan

sistem dinamik secara realtime. Didalam simulink terdapat berbagai macam toolbox yang

dapat digunakan untuk merangkai sistem dinamik.

Gambar 1.8 Memanggil Aplikasi Simulink

Sementara itu tampilan aplikasi Simulink terlihat Seperti dibawah ini.

Page 13: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 12

Gambar 1.9 Aplikasi Simulink

1.7 M-File Editor

Sekarang, katakanlah Anda harus mempergunakan sederetan command secara

berulang-ulang di dalam sesi MATLAB yang berbeda. Akan sangat repot jika Anda harus

mengetikkan command tersebut secara manual di command window setiap kali Anda

butuhkan.

Gambar 1.10 Memanggil Aplikasi M-File Editor

Page 14: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 13

Namun dengan Mfile, deretan command tersebut bisa Anda simpan dalam bentuk

skrip teks. Kapan saja Anda butuhkan, skrip tersebut bisa dijalankan/dieksekusi secara

otomatis dengan cara mengetikkan nama M-file yang bersangkutan di command window.

Namun demikian perlu diketahui bahwa MATLAB sebenarnya merupakan bahasa

pemrograman umum, seperti halnya Basic, C, Java, Pascal, Fortran, dll. Sehingga dalam bab

ini kita akan menitikberatkan pada pelajaran pemrograman komputer.

Gambar 1. 11 Jendela editor M-file

Dengan editor ini, kita bisa membuka sejumlah M-file, melakukan editing, ataupun

mencoba menjalankannya dan melakukan debuging (mencari kesalahan di dalam skrip).

Sementara itu, untuk menyimpan M-file, Anda bisa lakukan dengan menu: File Save atau

File Save As; ataupun dengan mengklik ikon yang ada. Namun demikian, sebenarnya Anda

juga bisa menuliskan M-file dengan sebarang editor teks, seperti MS Word, Notepad, dll.;

yang penting Anda menyimpan file tersebut dengan ekstensi *.m.

Page 15: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 14

1.8 Latihan dan Tugas Pertemuan 1

MATLAB dapat kita pergunakan seperti halnya kalkulator:

>> 3 + 4

ans =

7

Menuliskan beberapa command sekaligus dalam satu baris:

>> 10^2, 2*(13 + (-3))

ans =

100

ans =

20

Menciptakan variabel untuk menyimpan bilangan, serta menjalankan berbagai command atau

fungsi yang sudah ada di MATLAB.

>> x=12; y=0.25; z=pi/2;

a=3*x*y, b=sin(z), c=cos(z)

a =

9

b =

1

c =

0

Menciptakan dan memanipulasi vektor dan matriks:

>> Vektor1=[1 3 –6], Vektor2=[4; 3; -1]

Vektor1 =

1 3 -6

Vektor2 =

4

3

-1

>> Matrix=[1 2 3;4 5 6;7 8 9]

Matrix =

1 2 3

4 5 6

7 8 9

Page 16: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 15

>> Vektor1 * Vektor2

ans =

19

>> Vektor2 * Vektor1

ans =

4 12 -24

3 9 -18

-1 -3 6

>> Matrix * Vektor2

ans =

7

25

43

Menciptakan deret secara efisien:

>> deret1=1:1:10

deret1 =

1 2 3 4 5 6 7 8 9 10

>> deret2=linspace(0,5,11)

deret2 =

Columns 1 through 7

0 0.5000 1.0000 1.5000 2.0000 2.5000 3.0000

Columns 8 through 11

3.5000 4.0000 4.5000 5.0000

MATLAB juga dapat kita pergunakan untuk mencari akar-akar polinomial. Misalkan akar-

akar dari:

y = x4 – 10x

2 + 9

>> akar=roots([1 0 –10 0 9])

akar =

3.0000

-3.0000

1.0000

-1.0000

Page 17: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 16

Melakukan interpolasi dengan berbagai metode, misalkan dengan pendekatan polinomial.

Misalkan kita memiliki data pengamatan temperatur selama 12 jam :

>> t=1:12;

>> data=[22 22 22.5 24 25.5 28 29 29 30 29.5 29 28];

Data tersebut kita interpolasi menjadi kurva mulus polinomial orde-5 :

>> p=polyfit(t,data,5);

>> x=linspace(1,12,100); y=polyval(p,x);

>> plot(x,y,'k--',t,data,'k*')

>> p

p =

0.0000 0.0038 -0.1245 1.2396 -3.2370 24.2045

Gambar 1. 12 Interpolasi data temperatur terhadap waktu,

Grafik tersebut didekati dengan persamaan polinomial :

y = 0.0038x4-0.1245X3+1.2396x2-3.2370x+24.2045

Page 18: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 17

Salah satu keunggulan MATLAB ialah kemudahannya untuk membuat grafik dan suara.

Misalkan membuat grafik 2-dimensi,

>> x=linspace(-5,5,200);

>> y=x.^2+cos(10*x);

>> plot(x,y)

Gambar 1.13 Hasil Plot Grafik 2 Dimensi

atau bahkan grafik 3-dimensi:

>> u=linspace(-4,4,50);

>> [U,V]=meshgrid(u,u);

>> W=cos(U).*cos(V/3);

>> surf(U,V,W)

Page 19: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 18

Gambar 1.14 Hasil Plot Grafik 3 Dimensi

Page 20: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 19

BAB 2

Operasi Dasar MATLAB

2.1 Tujuan Pengajaran

1. Mahasiswa mengetahui beberapa fasilitas pada MATLAB

2. Mahasiswa dapat menggunakan operasi dasar MATLAB

3. Mahasiswa mengetahui beberapa perintah MATLAB dan kegunaannya

2.2 Alat dan Bahan

1. Komputer

2. Software MATLAB versi 5 atau sesudahnya.

3. White Board (untuk penjelasan oleh dosen)

4. Proyektor Komputer (untuk demonstrasi)

5. Spidol (untuk white board)

6. Kertas

7. Buku/Modul/Handout/Petunjuk Praktikum

2.3 Menetukan Direktori

Kita dapat bekerja dengan MATLAb secara default pada directory Work ada di dalam

Folder MATLAB. Tetapi akan lebih bagus dan rapi jika anda membuat satu directory khusus

dengan nama yang sudah anda kususkan, “dargombes” atau nama yang lain yang mudah

untuk diingat. Hal ini akan lebih baik bagi anda untuk membiasakan bekerja secara rapi dan

tidak mencampur program yang anda buat dengan program orang lain. Untuk itu Arahkan

pointer mouse anda pada kotak bertanda … yang ada disebelah kanan tanda panah kebawah

(yang menunjukkan folder yang sedang aktif). Pilih new directory, selanjutnya

ketikkan“NAMA”, dan diikuti dengan click Ok.

Buat Folder sendiri. Pakai Nama Anda (tidak memakai spasi).

Gambar 2.1 Menetukan direktori kerja

Page 21: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 20

2.4 Operasi Dasar MATLAB

Dalam mode penggunaan dasar, MATLAB dapat digunakan sebagai fungsi

kalkulator. Operator aritmatik dasar yang didukung oleh MATLAB ialah sebagai berikut :

+ addition

- subtraction

* multiplication

^ power

' transpose

/ right division

Hirarki operator mengikuti standar aljabar yang umum kita kenal :

1. Operasi di dalam kurung akan diselesaikan terlebih dahulu

2. Operasi pangkat

3. Operasi perkalian dan pembagian

4. Operasi penjumlahan dan pengurangan

Beberapa contoh :

>> x = 2 (selanjutnya tekan “Enter”)

x =

2

>> y = 3

y =

3

>> z = x + y

z =

5

Sekarang kita coba contoh berikut ini.

>> 2.5+0.6

ans =

3.1000

>> 3*4+3/4

ans =

12.7500

>> 5\(15+35)

ans =

10

Page 22: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 21

>> 169^(1/2), (6+14)\10^2

ans =

13

ans =

5

Kita juga bisa menciptakan variabel untuk menyimpan nilai, baik berupa bilangan

ataupun teks. Contoh berikut ini untuk menciptakan variabel :

>> a=100

a =

100

>> b=200

b =

200

>> c=300;

>> d=400;

>> total=a+b+c+d

total =

1000

>> rata_rata=total/4;

Untuk melihat hasil rata_rata, kita bisa panggil variabel tersebut.

>> rata_rata

rata_rata =

250

Page 23: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 22

Untuk menghapus beberapa atau semua variabel kita gunakan command clear. Misalkan

untuk menghapus variabel total.

>> clear total

dan untuk menghapus semua variabel sekaligus

>> clear

Selain berisi bilangan, variabel juga bisa berisi teks. Dalam mendefinisikan variabel teks

gunakanlah tanda petik tunggal.

>> baca_ini = „Contoh variabel berisi teks!‟;

>> baca_ini

baca_ini =

Contoh variabel berisi teks!

Kita tidak boleh salah memperlakukan variabel berisi bilangan dengan yang berisi teks, sebab

variabel teks juga bisa terlibat dalam operasi perhitungan. Misalkan:

>> clear

>> a=7;

>> b=‟7‟;

>> a/b

ans =

0.1273

>> a+b

ans =

62

Terlihat bahwa mengoperasikan variabel berisi teks bisa memunculkan hasil

perhitungan yang “salah”.

Page 24: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 23

2.5 Fungsi Matematika

Berbagi fungsi matematika yang umum kita pergunakan telah terdefinisi di

MATLAB, meliputi fungsi eksponensial, logaritma, trigonometri, pembulatan, dan fungsi

yang berkaitan dengan bilangan kompleks.

sin trigonometric sine

cos trigonometric cosine

tan trigonometric tangent

asin trigonometric inverse sine (arcsine)

acos trigonometric inverse cosine (arccosine)

atan trigonometric inverse tangent (arctangent)

exp exponential

log natural logarithm

abs absolute value

sqrt square root

rem remainder

round round towards nearest integer

floor round towards negative infinity

ceil round towards positive infinity

Contoh penggunaan :

>> sin(pi/2)

ans =

1

>> cos(pi/2)

ans =

6.1230e-017

Catatan :

0 ( 6.1230e-017 = 6.1230×10-17

≈ 0).

2.6 Latihan dan Tugas Pertemuan 2

1. Hitung dengan MATLAB

12/3,5 (3+5/4)2 (0,25

2+0,75

2)1/2

2/(6/0,3)

Jawab :

>> 12/3.5, (3+5/4)^2

ans =

3.4286

ans =

18.0625

Page 25: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 24

>> (.25^2 + .75^2)^(1/2), 2/(6/.3)

ans =

0.7906

ans =

0.1000

2. Buatlah empat variabel berikut:

A = 25 B = 50 C = 125 D = 89

Hitunglah dan simpan dalam variabel baru:

X = A + B +C Y = A / (D+B)

Z = DA/B

+ C

Jawab :

>> A=25, B=50, C=125, D=89

A =

25

B =

50

C =

125

D =

89

>> X = A+B+C, Y = A/(D+B)

X =

200

Y =

0.1799

>> Z = D^(A/B) + C

Z =

134.4340

3. Misalkan x=π/6, y=0,001; hitunglah

√ sin x cos 2x tan 3x

Page 26: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 25

Jawab :

>> x=pi/6; y=.001;

>> sqrt(y), exp(-x), sin(x)

ans =

0.0316

ans =

0.5924

ans =

0.5000

>> cos(2*x), tan(3*x)

ans =

0.5000

ans =

1.6331e+016

>> log10(y), log2(y), log(y)

ans =

-3

ans =

-9.9658

ans =

-6.9078

4. Misalkan: p = 9+16i dan q = −9+16i; hitunglah

r=p/r s=p/q p-r r+s p2

Jawab : >> p = 9 + 16*i; q = -9 + 16*i;

>> r=p*q, s=p/q, p-r

r =

-337

s =

0.5193 - 0.8546i

ans =

3.4600e+002 +1.6000e+001i

>> r+s, p^2, sqrt(q)

ans =

-3.3648e+002 -8.5460e-001i

ans =

-1.7500e+002 +2.8800e+002i

ans =

2.1630 + 3.6985i

Page 27: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 26

BAB 3

Matriks

3.1 Tujuan Pengajaran

1. Mahasiswa dapat menjalankan program MATLAB.

2. Mengetahui beberapa array dan matriks dasar

3. Mengetahui lebih banyak tentang kegunaan matriks dan array

4. Mampu melakukan manipulasi matriks dengan cara yang lebih kompleks

3.2 Alat dan Bahan

1. Komputer

2. Software MATLAB versi 5 atau sesudahnya.

3. White Board (untuk penjelasan oleh dosen)

4. Proyektor Komputer (untuk demonstrasi)

5. Spidol (untuk white board)

6. Kertas

7. Buku/Modul/Handout/Petunjuk Praktikum

3.3 Format data MATLAB

Terdapat tiga jenis format data di MATLAB, yaitu skalar, vektor, dan matriks.

1. Skalar, ialah suatu bilangan tunggal

Perhatikan cara mendefinisikan skalar dengan ataupun tanpa kurung siku.

>> skalar1 = 3.1415

skalar1 =

3.1415

>> skalar2 = [2.71828]

skalar2 =

2.7183

2. Vektor, ialah sekelompok bilangan yang tersusun 1-dimensi. dalam MATLAB

biasanya disajikan sebagai vektor-baris atau vektor-kolom. Contoh vektor-baris dan

vektor-kolom :

>> vektor1=[3,5,7]

Page 28: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 27

vektor1 =

3 5 7

>> vektor2=[2;4;6]

vektor2 =

2

4

6

3. Matriks, ialah sekelompok bilangan yang tersusun dalam segi-empat 2-dimensi. Di

dalam MATLAB, matriks didefinisikan dengan jumlah baris dan kolomnya. Di

MATLAB terdapat pula matriks berdimensi 3, 4, atau lebih, namun dalam buku ini

kita batasi hingga 2-dimensi saja.

Sebenarnya, semua data bisa dinyatakan sebagai matriks. Skalar bisa dianggap

sebagai matriks satu baris – satu kolom (matriks 1×1), dan vektor bisa dianggap sebagai

matriks 1-dimensi: satu baris – n kolom, atau n baris – 1 kolom (matriks 1×n atau n×1).

Semua perhitungan di MATLAB dilakukan dengan matriks, sehingga disebut MATrix

LABoratory. Berikutnya kita coba contoh berikut untuk mendefinisikan matriks 3×3.

>> matriks1=[10 20 30

40 50 60

70 80 90]

>> matriks2=[10 20 30; 40 50 60; 70 80 90]

Terlihat bahwa matrix1 dan matrix2 isinya sama, karenanya kita bisa menekan Enter

untuk membuat baris baru, ataupun menggunakan titik-koma.

3.4 Matriks Khusus

MATLAB menyediakan berbagai command untuk membuat dan memanipulasi

matriks secara efisien. Di antaranya ialah command untuk membuat matriks-matriks khusus,

manipulasi indeks matriks, serta pembuatan deret. Mari kita bahas terlebih dahulu mengenai

matriks khusus. Berbagai matriks khusus yang kerap kita pergunakan dalam perhitungan bisa

dibuat secara efisien dengan command yang telah ada di MATLAB.

1. Matriks yang elemennya bilangan satu

Bentuk umum :

>>ones(n,m)

Contoh :

>> mat_1=5*ones(2,4)

Page 29: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 28

mat_1 =

5 5 5 5

5 5 5 5

2. Matriks Nol

Matriks yang elemennya bilangan nol

Bentuk umum :

>> zeros(n,m)

Contoh :

>> mat_2=zeros(2,4)

mat_2 =

0 0 0 0

0 0 0 0

3. Matriks Identitas

Bentuk umum :

>>eye(n)

Contoh :

>> eye(4)

ans =

1 0 0 0

0 1 0 0

0 0 1 0

0 0 0 1

4. Matriks Bujur Sangkar Ajaib

Matriks yang memiliki hasil jumlah yang sama pada elemenelemen baris, kolom dan

diagonalnya.

Bentuk umum :

>>magic(n)

Contoh :

>> magic(5)

ans =

Page 30: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 29

17 24 1 8 15

23 5 7 14 16

4 6 13 20 22

10 12 19 21 3

11 18 25 2 9

5. Matriks Acak

Matriks yang memiliki nilai acak berdasarkan distribusi statistic pada

elemnnya.

Bentuk umum :

>>rand(n,m)

Contoh :

>> rand(3,2)

ans =

0.9501 0.4860

0.2311 0.8913

0.6068 0.7621

Dalam vektor ataupun matriks, indeks digunakan untuk menunjuk satu/beberapa

elemen dari vektor/matriks. Indeks dituliskan di dalam tanda kurung ( ) dengan pola umum

sebagai berikut.

>> vektor_ini = [1 3 5 7 9];

>> vektor_itu = [9; 8; 7; 6; 5];

>> matrix = [10 20 30; 40 50 60; 70 80 90];

>> vektor_ini(1)

ans =

1

>> vektor_itu(2)

ans =

8

>> matrix(1,2)

Page 31: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 30

ans =

20

Deret bilangan merupakan hal yang kerap kita temui dalam pengolahan data, terutama

berkaitan dengan plot data dan proses iterasi (perhitungan berulang-ulang). Misalkan kita

memiliki data tegangan suatu baterai pada setiap menit selama 1 jam. Dalam menyajikan data

“waktu”, kita harus membuat vektor berisi deret. Kita tentunya bisa melakukannya secara

manual seperti ini : Tetapi akan lebih efisien jika deret diciptakan menggunakan operator

titik-dua. Formulanya ialah:

>> x=0:100:2300;

>> y=-10:0.5:10;

>> z=10:-0.05:0;

Di dalam MATLAB, pembuatan deret juga bisa dilakukan dengan command berikut ini.

>> linspace(0,10,11)

ans =

0 1 2 3 4 5 6 7 8 9 10

>> logspace(0,2,10)

ans =

Columns 1 through 7

1.0000 1.6681 2.7826 4.6416 7.7426 12.9155 21.5443

Page 32: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 31

Columns 8 through 10

35.9381 59.9484 100.0000

3.5 Operasi Matriks

Operasi matriks di MATLAB sama seperti yang kita temui di aljabar matriks,

misalkan penjumlahan/pengurangan, perkalian matriks, invers, transpose, dot product, cross

product, dan sebagainya. Sementara operasi elemen-per-elemen, yang merupakan ciri khas

MATLAB, mengoperasikan satu per satu elemen matriks seperti operasi skalar, meliputi

penjumlahan/pengurangan, perkalian/pembagian, dan pangkat. Dalam bab ini, operasi

matriks dibahas terlebih dahulu, dan kemudian operasi elemen-per-elemen.

Penjumlahan dan Pengurangan

>> A=[0 1;2 3];

>> B=[4 5;6 7];

>> Jumlah=A+B, Selisih=A-B, Tambah50=A+50

Jumlah =

4 6

8 10

Selisih =

-4 -4

-4 -4

Tambah50 =

50 51

52 53

Perkalian Matriks 1

>> A,B

A =

0 1

2 3

B =

4 5

6 7

>> MultAB=A*B, MultBA=B*A

Page 33: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 32

MultAB =

6 7

26 31

MultBA =

10 19

14 27

Perkalian Matriks 2

>> x=[3 2 1], y=[100;10;1]

x =

3 2 1

Operasi Matriks 39

y =

100

10

1

>> z1=x*y, z2=y*x

z1 =

321

z2 =

300 200 100

30 20 10

3 2 1

3.6 Persamaan Linier Pada Matriks

Kita sering menemui persamaan linier dengan beberapa variabel. Di dalam aljabar,

solusi persamaan tersebut bisa ditemukan, salah satunya dengan menggunakan matriks.

Misalkan kita tinjau sistem persamaan linier dengan variabel x1 dan x2.

Page 34: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 33

>> A=[1 –2;12 5]; B=[32;7];

>> X=inv(A)*B

X =

6.0000

-13.0000

Diketahui persamaan linier sbagai berikut :

untuk mencari solusi dari persamaan tersebut dapat digunakan fungsi-fungsi matriks sebagai

berikut.

A=[1 2 3;4 5 6;7 8 0]

b=[366;804;351]

det(A)

x=inv(A)*b

ans =

27.0000

x =

25.0000

22.0000

99.0000

Page 35: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 34

3.7 Latihan dan Tugas Pertemuan 3

1. Buatlah matriks M berikut ini :

2. Buatlah deret berikut ini dengan operator titik-dua, linspace, dan logspace:

x = -10, -9, -8, ... , 8, 9, 10

y = 7,5 , 7,0 , 6,5 , 6,0 , ... , 0,5 , 0

w = 0,001 , 0,01 , 0,1 , 1 , 10 , ... , 106

3. Pecahkan persamaan linier dengan tiga variabel berikut ini.

4. Pecahkanlah persamaan linier tiga variabel berikut ini:

4. Pecahkanlah persamaan linier empat variabel berikut ini:

Jawab :

4. Pertama, definisikan matriks A yang berisi koefisien yang melekat pada variabel x, y, z.

>> A=[1 2 –3; 4 5 6; 7 8 9];

Kedua, definisikan vektor b yang merupakan ruas kanan dari persamaan.

>> b=[-7; 11; 17]

>> x=inv(A)*b

x =

1.0000

-1.0000

2.0000

Sehingga diperoleh: x = 1, y = -1, z = 2.

Page 36: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 35

BAB 4

M-File dan Pemrograman MATLAB

4.1 Tujuan Pengajaran

Setelah mengikuti unit praktikum ini, maka praktikan diharapkan :

1. Mengetahui cara penanganan masukan dan keluaran pada program

2. Mampu membuat program sederhana dengan MATLAB

3. Mampu membuat dan menjalankan script dan fungsi dengan M-file

4.2 Alat dan Bahan

1. Komputer

2. Software MATLAB versi 5 atau sesudahnya.

3. White Board (untuk penjelasan oleh dosen)

4. Proyektor Komputer (untuk demonstrasi)

5. Spidol (untuk white board)

6. Kertas

7. Buku/Modul/Handout/Petunjuk Praktikum

4.3 M-file

Program adalah suatu kumpulan pernyataan, fungsi atau perintah yang diatur

sedemikian sehingga mempunyai logika tertentu. Semua pernyataan, fungsi dan perintah

dapat diberikan langsung di MATLAB Command Window yang digunakan untuk menyusun

sebuah program. MATLAB menyediakan bahasa pemrograman yang lengkap yang

memungkinkan Anda menulis perintah-perintah MATLAB ke dalam sebuah file dan

menjalankannya dengan sebuah perintah saja. m-file dapat berupa script yang secara

sederhana mengeksekusi barisan perintah-perintah MATLAB, atau m-file dapat berupa

fungsi yang menerima argumen input dan menghasilkan output. M-file dibuat dengan

menggunakan teks editor.

Mfile merupakan sederetan perintah matlab yang dituliskan secara berurutan sebagai

sebuah file. Nama file yang tersimpan akan memiliki ekstensi .m yang menandakan bahwa

file yang dibuat adalah file matlab. Mfile dapat ditulis sebagai sebuah script atau dapat pula

ditulis sebagai sebuah fungsi yang menerima argument atau masukan yang menghasilkan

Page 37: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 36

output. Program Matlab yang disimpan dalam berkas M-file dapat dikelompokkan menjadi

dua macam, yakni: (1) Skrip Matlab (Matlab script) dan (2) Fungsi Matlab. Perbedaan antara

script dan fungsi terlihat sebagai berikut.

Skrip Matlab mempunyai ciri-riri:

1. hanya berisi kumpulan perintah-perintah Matlab;

2. tidak diawali dengan perintah function;

3. untuk menjalankannya tidak diperlukan masukan (input);

4. tidak menghasilkan nilai yang dapat disimpan ke variabel lain.

Fungsi Matlab mempunyai ciri-ciri:

1. harus diawali dengan kata function dengan tata tulis:

2. function var_hasil=nama_fungsi(input)

3. memuat rumus untuk menghitung nilai fungsi (var_hasil) berdasarkan nilai-nilai

input;

4. untuk menjalankan sebuah fungsi diperlukan masukan nilai-nilai yang sesuai;

5. Nilai-nilai yang dihasilkan oleh sebuah fungsi dapat disimpan ke dalam satu atau

beberapa variabel (matriks).

Untuk menuliskan skrip M-file, Anda bisa mulai dengan membuka file baru. Dengan

editor ini, kita bisa membuka sejumlah M-file, melakukan editing, ataupun mencoba

menjalankannya dan melakukan debuging (mencari kesalahan di dalam skrip).

4.4 M-File Sebagai SCRIPT

Pada bagian ini, kita akan menggunakan M-file untuk menjalankan sederetan

command yang kita tuliskan sebagai skrip. Mari kita mulai dengan skrip sederhana untuk

menghitung rata-rata dari lima bilangan. File ini kita namakan rata_rata.m.

Page 38: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 37

Catatan : Teks yang diawali tanda “%” menunjukkan komentar, dan tidak akan dieksekusi

oleh MATLAB.

Bukalah M-file baru lalu ketikkan skrip berikut ini.

% Program sederhana untuk menghitung

% rata-rata 5 bilangan:

% rata_rata.m

a = 50;

b = 100;

c = 150;

d = 200;

e = 250;

% Menghitung dan menampilkan rata-rata

hasil = (a + b + c + d + e)/5;

hasil

Gambar 4.1 Tampilan editor M-file 1

Page 39: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 38

>> clear

>> rata_rata

hasil =

150

>> whos

Name Size Bytes Class

a 1x1 8 double array

ans 1x1 8 double array

b 1x1 8 double array

c 1x1 8 double array

d 1x1 8 double array

e 1x1 8 double array

hasil 1x1 8 double array

Grand total is 7 elements using 56 bytes

Perhatikan bahwa:

1. Di dalam M-file, setiap command diakhiri dengan titik-koma supaya hasil perhitungan di

tiap baris tidak ditampilkan di command window. Kecuali pada hasil perhitungan yang

ingin kita tampilkan, tidak diakhiri titik-koma.

2. Variabel yang didefinisikan di dalam M-file akan disimpan oleh MATLAB ketika M-file

telah dieksekusi.

Di dalam editor, skrip yang kita tuliskan akan memiliki warna tertentu:

a. hijau untuk komentar

b. hitam untuk variabel dan command

c. biru untuk statement pemrograman.

Sekarang, marilah kita mencoba M-file lain untuk menghitung sisi miring suatu segi

tiga siku-siku dengan formula phytagoras, menghitung luasnya, dan kelilingnya.

% Program menghitung segi-3 siku-siku: segi3.m

% Untuk menghitung sisi miring, luas, dan keliling

% Mendefinisikan sisi siku-siku segitiga

Sisi_A = 3;

Sisi_B = 4;

% Menghitung sisi miring

Page 40: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 39

Sisi_C = sqrt(Sisi_A^2 + Sisi_B^2)

% Menghitung luas segitiga

Luas = 1/2* Sisi_A * Sisi_B

% Menghitung keliling

Keliling = Sisi_A + Sisi_B + Sisi_C

Lalu simpan dengan nama segi3.m. Sekarang kita panggil M-file tersebut

>> segi3

Sisi_C =

5

Luas =

6

Keliling =

12

Sekarang Anda dapat mencoba script sederhana menghitunga akar menggunakan matlab :

%menghitung akar dari

%persamaan kuadrat y=ax^2 + bx + c

a=input('masukkan konstanta a=')

b=input('masukkan konstanta b=')

c=input('masukkan konstanta c=')

x1=(b+sqrt(b^2-4*a*c))/(2*a)

x2=(b-sqrt(b^2-4*a*c))/(2*a)

4.5 M-File Sebagai FUNGSI

Sebagai skrip program, jika kita ingin mengubah/mengatur parameter masukan

program, maka harus kita lakukan di dalam editor. Padahal seringkali kita harus menjalankan

satu program/algoritma berulang kali dengan nilai masukan yang berbeda-beda, misalkan

dalam proses iterasi atau optimasi. Untuk keperluan ini, kita bisa menuliskan M-file sebagai

suatu fungsi spesifik sesuai kebutuhan kita. Dalam setiap fungsi terdapat tiga unsur:

1. Parameter masukan; dalam hal ini kita sebut sebagai “argumen input”. Jumlah

parameter (argumen) tersebut bisa sebarang (satu, dua, sepuluh, atau tidak ada

argumen input sama sekali).

2. Jenis argumen pun sebarang (variabel, bilangan ataupun teks).

Page 41: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 40

3. Proses di dalam program; berupa sederetan command untukmenjalankan suatu

algoritma tertentu. Parameter keluaran; atau “argumen output” yang jumlah dan

jenisnya sebarang.

Deklarasi fungsi di M-file harus dilakukan pada baris awal dengan sintaks:

Contoh penggunaan Function :

function [a] = log3(x)

% [a] = log3(x) - Calculates the base 3 logarithm of x.

a = log(abs(x))./log(3);

% End of function

Simpan file dengan nama log3.m kemudian ketikan di command windows.

>> log3(5)

ans =

1.4650

Selajutnya kita akan membuat fungsi untuk menghitung sisi miring, luas, dan keliling

segitiga; seperti program yang ada pada contoh sebelumnya.

%Fungsi untuk menghitung segi-3 siku-siku: segitiga.m

%Untuk menghitung sisi miring, luas, dan keliling

function [Sisi_C,Luas,Kll] = segitiga(Sisi_A,Sisi_B)

% Menghitung sisi miring

Sisi_C = sqrt(Sisi_A^2 + Sisi_B^2);

% Menghitung luas segitiga

Luas = 1/2* Sisi_A * Sisi_B;

% Menghitung keliling

Kll = Sisi_A + Sisi_B + Sisi_C;

Lalu simpan dengan nama “segitiga.m”.

>> clear

>> [Hyp,Area,Circum]=segitiga(12,16)

Page 42: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 41

Hyp =

20

Area =

96

Circum =

48

Sekarang kita lihat dengan command whos:

>> whos

Name Size Bytes Class

Area 1x1 8 double array

Circum 1x1 8 double array

Hyp 1x1 8 double array

Grand total is 3 elements using 24 bytes

4.6 Displai dan Input M-File

Adakalanya kita membutuhkan interaksi dengan pengguna program untuk

memasukkan parameter tertentu di awal/tengah program. Dalam hal ini kita bisa pergunakan

cara sederhana dengan command input. Sementara command disp digunakan untuk

menampilkan teks di layar. Misalkan kita akan membuat program untuk menghitung luas

trapesium file didimpan dengan luas_trapesium.m

% Program menghitung kombinasi : luas_trapesium.m

% untuk menghitung Luas Trapesium

% Menampilkan judul program

clc;

disp(„Menghitung Luas Trapesium‟);

disp(„-------------------------„);

% Meminta masukan dari user

a = input(„Masukan Panjang Sisi Atas? : „);

b = input(„Masukan Panjang Sisi Bawah? : „);

t = input(„Masukan Tinggi Trapesium? : „);

% Menghitung luas

luas = 0.5*((a)+(b))*(t)

% Menampilkan keluaran

disp(„Luas Trapesium = „,luas);

Page 43: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 42

Maka di command windows akan menampilkan :

Menghitung Luas Trapesium

-------------------------

Masukan Panjang Sisi Atas? : 5

Masukan Panjang Sisi Bawah? : 9

Masukan Tinggi Trapesium? : 13

luas =

91

4.7 Statement Else-If

Seperti halnya bahasa program pada umumnya, kita bisa mengendalikan arah program

dengan berbagai cara, berupa percabangan arah program berdasarkan kondisi tertentu,

ataupun loop (perhitungan berulang) ketika kita melakukan iterasi. General syntax nya

sebagai berikut.

if relation

statement(s)

elseif relation % if applicable

statement(s) % if applicable

elseif relation % if applicable

statement(s) % if applicable

else % if applicable

statement(s) % if applicable

end

Sebagai contoh, gambar lah sebuah kurva yang memenuhi persamaan berikut ini

Catatan : gunakan increment 0.01 untuk menghasilkan kurva yang baik.

Jawab :

>> x=-1:0.01:1;

for i=1:length(x)

if x(i) < 0.5

F(i) = x(i)^2;

else

F(i) = 0.25;

end

end

>> plot(x,F,‟-k‟)

Page 44: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 43

Maka grafik yang akan dihasilkan :

Gambar 4.2 Grafik kurva Else-If

4.8 Statement For-End

Statement ini digunakan untuk loop/perhitungan berulang. Sebagai contoh untuk

memplot kurva parabola:

y = Ax2

dengan berbagai nilai parameter A, yaitu 0,5 , 1 , 1,5 , sampai 6

Dalam hal ini indeks vektor A kita iterasi dari 1 hingga indeks terakhir.

figure;

x = linspace(-4,4,500); % mendefinisikan nilai x

A = 0.5:0.5:6; % mendefinisikan vektor A

for i = 1:length(A)

y = A(i)* x.^2;

Page 45: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 44

plot(x,y);

hold on;

end

grid on;

Maka grafik yang akan dihasilkan

Gambar 4.3 Grafik kurva For-End Parabola

Misalkan untuk memplot fungsi akar kuadrat

y = B x1/2

dengan berbagai nilai parameter B.

figure;

x=linspace(0,4,500);

A=0.5:0.5:2;

i=1;

Page 46: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 45

while i <= length(A)

y = A(i)* x.^(1/2);

plot(x,y); hold on;

i=i+1;

end

grid on;

Maka grafik yang akan dihasilkan :

Gambar 4.4 Grafik kurva For-End Akar Kuadrat

Selain itu, statement for-end juga dapat dpergunakan untuk membuat matriks :

>> A = [1,5,-3;2,4,0;-1,6,9]

A =

1 5 -3

2 4 0

Page 47: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 46

-1 6 9

>> for i=1:3

for j=1:3

A2(i,j) = A(i,j)^2;

end

end

>> A2

A2 =

1 25 9

4 16 0

1 36 81

4.9 Latihan dan Tugas Pertemuan 4

1. Buatlah program dengan M-file untuk menghitung volume dan luas permukaan balok bila

diketahui: panjang = 5, lebar = 3, tinggi = 6,5. Beri nama program ini dengan

prog_balok.m

2. Buatlah suatu fungsi dengan M-file untuk menghitung volume dan luas permukaan balok

dengan spesifikasi:

masukan fungsi : panjang, lebar, dan tinggi balok

keluaran fungsi : volume, dan luas permukaan balok.

Beri nama fungsi ini dengan hitung_balok.

3. Buatlah suatu fungsi dengan M-file untuk menghitung volume dan luas permukaan dari

suatu prisma segiempat dengan spesifikasi:

masukan fungsi : panjang dan lebar alas prisma, serta tinggi prisma

keluaran fungsi : volume, dan luas permukaan prisma

Beri nama fungsi ini dengan hitung_prisma.m

4. Gambarkan Kurva dibawah ini dengan increment 0.01 untuk menghasilkan kurva yang

baik.

{

Page 48: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 47

Jawab

1. Menghitung Volume

% Program untuk menghitung volume &

% luas permukaan balok: prog_balok.m

panjang=5; lebar=3; tinggi=6.5;

volume = panjang * lebar * tinggi

luas = 2* (panjang*lebar + panjang*tinggi + lebar*tinggi)

Kita jalankan program tersebut:

>> prog_balok

volume =

97.5000

luas =

134

2. Menghitung Volume

% Fungsi untuk menghitung volume &

% luas permukaan balok: hitung_balok.m

function [vol,area] = hitung_balok(p,l,t)

vol = p*l*t; % hitung volume

area = 2*(p*l + p*t + l*t); % luas permukaan

Kita jalankan fungsi tersebut:

>> [V,L] = hitung_balok(10,5,3)

V =

150

L =

190

3. Menghitung Volume

% Fungsi untuk menghitung volume &

% luas permukaan prisma segi-4: hitung_prisma.m

function [vol,area] = hitung_prisma(p,l,t)

vol = 1/3*p*l*t; % hitung volume

% hitung tinggi segitiga pada sisi lebar alas

Page 49: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 48

t_l = sqrt((p/2)^2 + t^2);

% hitung tinggi segitiga pada sisi panjang alas

t_p = sqrt((l/2)^2 + t^2);

% hitung luas permukaan prisma

area = p*l + p*t_p + l*t_l;

Kita jalankan fungsi tersebut:

>> [V,L] = hitung_prisma(6,4,5)

V =

40

L =

79.6348

Page 50: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 49

BAB 5

Grafik Dua Dimensi

5.1 Tujuan Pengajaran

Setelah mengikuti unit praktikum ini, maka praktikan diharapkan :

1. Mahasiswa dapat menggunakan Matlab untuk menggambar kurva fungsi implisit.

2. Mahasiswa dapat menggunakan Matlab untuk menggambar kurva fungsi

parametrik.

3. Mahasiswa dapat menggunakan Matlab untuk menggambar kurva fungsi

parametrik pada koordinat kutub.

4. Mahasiswa dapat menggunakan Matlab untuk menggambar kurva beberapa fungsi

pada sumbu koordinat yang sama

5.2 Alat dan Bahan

1. Komputer

2. Software MATLAB versi 5 atau sesudahnya.

3. White Board (untuk penjelasan oleh dosen)

4. Proyektor Komputer (untuk demonstrasi)

5. Spidol (untuk white board)

6. Kertas

7. Buku/Modul/Handout/Petunjuk Praktikum

5.3 Plot Grafik

Program adalah suatu kumpulan pernyataan, Salah satu keunggulan MATLAB ialah

kemampuannya dalam menampilkan/mengolah grafik dan suara dengan command yang

sederhana dan fleksibel.

Untuk memvisualisasi data secara 2-dimensi ataupun 3-dimensi, kita menggunakan

berbagai command plotting; di mana command yang paling dasar ialah plot. Anda bisa

praktekan contoh berikut ini.

1. Grafik garis, mencetak grafik chirp.

>> x=0:0.05:5;

y=sin(x.^2);

Page 51: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 50

plot(x,y)

Gambar 5.1 Kurva Chirp

2. Grafik Batang (Bar), mencetak kurva BELL.

>> x=-2.9: 0.2:2.9;

bar(x,exp(x.*x));

Gambar 5.2 Kurva Batang

3. Grafik Tangga, mencetak Gelombang sinus dalam grafik tangga.

Page 52: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 51

>> x=0:0.25:10;

stairs(x,sin(x));

Gambar 5.3 Kurva Tangga

4. Grafik ErrorBar, mencetak Grafik ErrorBar pada fungsi dengan kesalahan secara acak.

>> x=-2:0.1:2;

y=erf(x);

e=rand(size(x))/10;

errorbar(x,y,e);

Gambar 5.4 Kurva Error Bar

Page 53: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 52

5. Grafik Polar, mencetak fungsi perkalina sin dan cos dalam bentuk polar.

>> t=0:.01:2*pi;

>> polar(t,abs(sin(2*t).*cos(2*t)));

Gambar 5.5 Kurva Polar

6. Grafik Stem, mencetak perkalian fungsi sin dengan eksponensial.

>> x=0:0.1:4;

>> y=sin(x.^2).*exp(x);

>> stem(x,y)

Gambar 5.6 Kurva Stem

Page 54: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 53

7. Grafik dengan Ezplot

Gambarkan persamaan

maka syntaknya :

ezplot('sin(x)/(1+x.^2)')

Gambar 5.7 Kurva Ezplot 1

ezplot('sin(t)*cos(t)/t','sin(t)^2/t',[-6*pi,6*pi])

Gambar 5.8 Kurva Ezplot 2

Page 55: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 54

8. Dua Grafik dalam 1 Koordinat

>> fplot('[t^2*sin(t)+1,sin(t)*cos(t),t*cos(t)]',[0,2*pi])

Gambar 5.9 Kurva Dua Grafik 1

>> fplot('[cos(x),1-x^2/2,1-x^2/2+x^4/24]',[-pi,pi,-1,1])

Gambar 5.10 Kurva Dua Grafik 2

Page 56: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 55

9. Multi Grafik dalam 1 Koordinat

>> x=(-5:.1:5); % x= -5, -4.9, -4.8, …, 4.9,5

y=x.*abs(x)./(1+x.^2); % perhitungan f(x)

plot(x,y);

grid on % plot y=f(x) dengan grid

y2=x.*abs(x)./(5+x.^2);

y3=x.*abs(x)./(1/5+x.^2);

plot(x,y,'-',x,y2,'-.',x,y3,':')

Gambar 5.11 Kurva Multi Grafik

10. Kurva eksponensial negatif

>> clear

x=linspace(0,5,500);

y1=exp(-x); y2=exp(-0.5*x); y3=exp(-0.25*x);

y4=exp(-0.1*x);

plot(x,y1,x,y2,x,y3,x,y4)

grid on

xlabel('sumbu-x'), ylabel('sumbu-y')

title('Kurva y = exp(-Ax)')

legend('A=1','A=0.5','A=0.25','A=0.1')

Page 57: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 56

Gambar 5.12 Kurva Eksponensial Negatif

Membuatnya dalam Semilog.

>> figure

semilogy(x,y1,x,y2,x,y3,x,y4)

grid on

xlabel('sumbu-x'), ylabel('sumbu-y')

title('Kurva y = exp(-Ax)')

legend('A=1','A=0.5','A=0.25','A=0.1')

axis([0 5 1e-2 1])

Gambar 5.13 Kurva Eksponensial Negatif danam Semilog

Page 58: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 57

11. Subplot. Memplot gelombang sinus, cosinus, kotak, dan gigi gergaji dengan melibatkan

command..

>> figure

t=0:0.05:10;

sinus=sin(2*pi*0.25*t);

cosinus=cos(2*pi*0.25*t);

kotak=square(2*pi*0.25*t);

gigi=sawtooth(2*pi*0.25*t);

subplot(2,2,1);

plot(t,sinus), title('sinus 1/4 Hz')

subplot(2,2,2);

plot(t,cosinus), title('cosinus 1/4 Hz')

subplot(2,2,3);

plot(t,kotak), title('kotak 1/4 Hz')

subplot(2,2,4);

plot(t,gigi), title('gigi gergaji 1/4 Hz')

Gambar 5.14 Kurva menggunakan Subplot

Page 59: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 58

12. Penggambaran Sinusoid. Memplot gelombang sinusoidal.

time = [0:0.001:0.099];

x = cos(0.1*pi*(0:99));

plot(time,x)

xlabel('time (msec)')

ylabel('x(t)')

Gambar 5.15 Hasil plot gelombang sinusoidal.

stem(time,x)

xlabel('time (msec)')

ylabel('x(t)')

Gambar 5.16 Hasil plot Distkrit gelombang sinusoidal.

Page 60: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 59

5.4 Latihan dan Tugas Pertemuan 5

1. Gambarkan kurva y = x4−9x

2 pada rentang –6 ≤ x ≤ 6.Buatlah inkremen x cukup kecil

sehingga kurva terlihat mulus.

2. Gambarkan kurva-kurva berikut pada rentang −10 ≤ x ≤10 dalam satu figure

sekaligus!

3. Buat lah sebuah Papan Catur dengan perintah dari MATLAB.

Jawab :

1. Syntax matlabnya :

x = linspace(-6,6,100); % mendefinisikan x

y = x.^4 - 9.*x.^2; % menghitung y

figure; plot(x,y); grid on; % membuat plot x-y

xlabel('x'), ylabel('y');

Gambar 5.17 Hasil simulasi 1

Page 61: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 60

2. Syntax matlabnya :

>> x = linspace(-10,10,150); % definisikan x

y1= sqrt(100 + x.^2); % hitung y1 s.d. y4

y2= sqrt(100 + 2.*x.^2);

y3= sqrt(100 + 4.*x.^2);

y4= sqrt(100 + 16.*x.^2);

figure;

plot(x,y1,'k-',x,y2,'k--',x,y3,'k:',x,y4,'r-');

grid on; % membuat plot

xlabel('sumbu-X'), ylabel('sumbu-Y')

legend('Y1','Y2','Y3','Y4')

Gambar 5.18 Hasil simulasi 2

Page 62: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 61

3. Buat lah sebuah Papan Catur dengan perintah dari MATLAB.

>> white = [1 1 1]; gray = 0.7*white;

a = [0 1 1 0]; b = [0 0 1 1]; c = [1 1 1 1];

figure; hold on

for k = 0:1, for j = 0:2:6

fill(a'*c + c'*(0:2:6) + k, b'*c + j + k, gray)

end, end

plot(8*a', 8*b', 'k')

set(gca, 'XTickLabel', [], 'YTickLabel', [])

set(gcf, 'Color', white); axis square

Gambar 5.19 Hasil simulasi 3

Page 63: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 62

BAB 6

Grafik Tiga Dimensi

6.1 Tujuan Pengajaran

Setelah mengikuti unit praktikum ini, maka praktikan diharapkan :

1. Mahasiswa dapat menggambar kurva ruang.

2. Mahasiswa dapat menggambar bidang permukaan.

3. Mahasiswa dapat menggambar grafik fungsi parameterik dimensi tiga.

4. Mahasiswa dapat menggambar bidang permukaan dengan berbagai atributnya.

5. Mahasiswa dapat melihat gambar tiga dimensi dari berbagai sudut pandang.

6.2 Alat dan Bahan

1. Komputer

2. Software MATLAB versi 5 atau sesudahnya.

3. White Board (untuk penjelasan oleh dosen)

4. Proyektor Komputer (untuk demonstrasi)

5. Spidol (untuk white board)

6. Kertas

7. Buku/Modul/Handout/Petunjuk Praktikum

6.3 Plot Permukaan

MATLAB memiliki beberapa bentuk grafik yang dapat dibuat dengan mudah dan

cara penggunaannyapun sederhana. Berikut ini akan diberikan contoh-contoh untuk

menampilkan berbagai grafik berdasarkan kategori : Subbab ini akan dibahas tiga macam plot

3-dimensi: plot garis, plot permukaan (surface), dan plot kontur. Syntaxnya memenuhi :

subplot create an array of (tiled) plots in the same window

loglog plot using log-log scales

semilogx plot using log scale on the x-axis

semilogy plot using log scale on the y-axis

surf 3-D shaded surface graph

surfl 3-D shaded surface graph with lighting

mesh 3-D mesh surface

Page 64: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 63

1. Plot Garis

Mari kita mulai dengan plot garis di dalam ruang 3-dimensi. Ini mirip dengan plot 2-dimensi,

tetapi kali ini kita gunakan command plot3( ... ), dan dibutuhkan vektor z, untuk dimensi

ketiga.

X = [10 20 20 10 10];

Y = [5 5 15 15 5];

Z = [0 0 70 70 0];

plot3(X,Y,Z); grid on;

xlabel(„sumbu X‟); ylabel(„sumbu Y‟);

zlabel(„sumbu Z‟);

title („Contoh plot 3-D‟);

axis([0 25 0 20 0 80])

Gambar 6.1 Contoh plot 3-dimensi dengan command “plot3”

2. Plot Helix

Mari kita mulai dengan plot garis di dalam ruang 3-dimensi.

t=0:0.1:25;

X=sin(t); Y=cos(t); Z=0.5*t;

Page 65: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 64

plot3(X,Y,Z)

xlabel(„sumbu X‟); ylabel(„sumbu Y‟);

zlabel(„sumbu Z‟);

title („Helix‟);

Gambar 6.2 Penggunaan command “plot3”

3. Plot Permukaan 1

Sementara itu, untuk plot permukaan (surface) dalam ruang 3-dimensi digunakan

command mesh atau surf. Contoh berikut ini menggambarkan fungsi dua variabel :

z = x2 + y

2.

batas_x = -10:1:10; batas_y = -10:4:10;

[X,Y] = meshgrid(batas_x,batas_y);

Z = X.^2 + Y.^2;

mesh(X,Y,Z);

Page 66: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 65

Gambar 6.3 Penggunaan plot Mesh

Gambar 6.4 Penggunaan plot Surf

4. Plot Permukaan 2

Sekarang kita coba contoh yang lain untuk memplot fungsi 3- dimensi.

>> x = linspace(-10,10,40); y = x;

[X,Y] = meshgrid(x,y);

R = sqrt(X.^2+Y.^2);

Page 67: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 66

Z = sin(R)./(R+eps);

surf(X,Y,Z);

Gambar 6.5 Penggunaan plot Surf

Mari kita gambarkan kontur dari fungsi sin(r)/r di atas, lalu bandingkan dengan plot

permukaannya:

>> figure; contour(X,Y,Z);

figure; meshc(X,Y,Z);

Gambar 6.6 Penggunaan plot Contour

Page 68: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 67

Gambar 6.7 Penggunaan plot Contour

5. Grafik Quiver, mencetak pola arah gerakan suatu nilai.

x = -2:.2:2;

y = -1:.2:1;

[xx,yy] = meshgrid(x,y);

zz = xx.*exp(xx.^2-yy.^2);

[px,py] = gradient(zz,.2,.2);

quiver(x,y,px,py,2);

Gambar 6.8 Penggunaan Grafik Quiver

Page 69: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 68

6. Menggunakan esurf

Sebuah permukaan dapat dinyatakan sebagai sebuah fungsi dua variabel bebas,

( ) ( )

ezsurf('x*y*exp(-(x^2+y^2))')

Gambar 6.9 Penggunaan Esurf

x=(-2:.2:2); y=(0:.2:2); % nilai-nilai x dan y

[X,Y]=meshgrid(x,y); % definisi titik-titik grid

Z=X.*Y.*exp(-(X.^2+Y.^2)); % nilai-nilai Z pada grid

surf(X,Y,Z) %gambar permukaan

xlabel('x') % label sumbu-sumbu koordinat

ylabel('y')

zlabel('z')

Page 70: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 69

Gambar 6.10 Penggunaan Esurf

7. Perbandingan Surf dan Mesh

>> x=0:pi/20:pi;

y=x;

[X,Y]=meshgrid(x,y);

f=inline('sin(2*x).*cos(3/2*y)','x','y')

%Note the function is vectorized

subplot(1,2,1),mesh(X,Y,f(X,Y))

title('A Mesh Plot')

subplot(1,2,2),surf(X,Y,f(X,Y))

title('A Surf Plot')

Gambar 6.11 Perbandingan Mesh dan Surf

Page 71: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 70

8. Multi dimensional

>> [x,y] = meshgrid(-3:.1:3,-3:.1:3);

>> z = 3*(1-x).^2.*exp(-(x.^2) - (y+1).^2)- 10*(x/5 - x.^3 -

y.^5).*exp(-x.^2-y.^2)- 1/3*exp(-(x+1).^2 - y.^2);

>> surf(z)

>> xlabel('x')

>> ylabel('y')

>> zlabel('z')

>> title('Peaks')

Gambar 6.12 Multidimensioal

Page 72: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 71

6.4 Latihan dan Tugas Pertemuan 6

1. Gambarkan kurva berikut ini di dalam ruang 3-D:

2. Plot fungsi dua variabel berikut ini:

z = x2 - y

2, untuk rentang -5 ≤ x ≤ 5, -5 ≤ y ≤ 5

3. Plot kontur dari fungsi dua variabel berikut ini:

f (x, y) = cos x sin 2y , untuk 0 ≤ x ≤ 4π, 0 ≤ y ≤ 4π

4. Buatlah sebuah bola dalam grafik 3D.

5. Buatlah sebuah hemisphere dalam grafik 3D.

Jawab :

1. Gambarkan kurva berikut ini di dalam ruang 3-D:

t = linspace(0,2*pi,100);

% definisikan parameter t

x = 1 + cos(t); y = 2 + sin(t); z = 1 – cos(2.*t);

% hitung x,y,z

figure; plot3(x,y,z);

grid on; xlabel(„x‟), ylabel(„y‟), zlabel(„z‟)

2. Plot fungsi dua variabel berikut ini:

Page 73: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 72

clear;

x = linspace(-5,5,25); y=x;

% definisikan batas x dan y

[X,Y]=meshgrid(x,y);

% buat jalinan titik pada bidang xy

Z = X.^2 – Y.^2; % hitung z

figure; surf(X,Y,Z);

grid on; xlabel(„x‟), ylabel(„y‟), zlabel(„z‟)

3. Plot kontur dari fungsi dua variabel berikut ini:

>> clear;

x = linspace(0,4*pi,100); y=x;

[X,Y]=meshgrid(x,y);

Z = cos(X).*sin(2.*Y);

figure; contour(x,y,Z);

Page 74: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 73

4. Buatlah sebuah bola dalam grafik 3D.

>> ezsurf('sqrt(1-s^2)*cos(t)', 'sqrt(1-s^2)*sin(t)', ...

's', [-1, 1, 0, 2*pi]); axis equal

Page 75: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 74

6. Buatlah sebuah hemisphere dalam grafik 3D.

% Plotting the hemisphere

u = linspace(0,pi,20); v = linspace(-pi/2,pi/2,20);

[U,V] = meshgrid(u,v); % creating 2-D arrays

figure; % opening new window for Figure 2

surf(2*sin(U).*cos(V),2*sin(U).*sin(V),2*cos(U));

title('Hemisphere');

xlabel('x'); ylabel('y'); zlabel('z');

Page 76: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 75

BAB 7

Diferensial dan Integral

7.1 Tujuan Pengajaran

Setelah mengikuti unit praktikum ini, maka praktikan diharapkan :

1. Mahasiswa dapat menghitung diferensial

2. Mahasiswa dapat menghitung integral

3. Mahasiswa dapat menghitung integral lipat

7.2 Alat dan Bahan

1. Komputer

2. Software MATLAB versi 5 atau sesudahnya.

3. White Board (untuk penjelasan oleh dosen)

4. Proyektor Komputer (untuk demonstrasi)

5. Spidol (untuk white board)

6. Kertas

7. Buku/Modul/Handout/Petunjuk Praktikum

7.3 Diferensial dan Integral

Diferensial dan Integral merupakan operasi fundamental dalam kalkulus dan hampir

setiap bidang matematika, sains dan teknik. Menentukan turunan fungsi secara analitik

mungkin menyulitkan meskipun relatif langsung. Pembalikan dari proses ini akan

menentukan integral fungsi, tapi lebih sering sulit jika secara analitik atau bahkan tidak

mungkin.

7.4 Diferensial Menggunakan MATLAB

Ketik syms untuk mendefinisikan variabel / ekspresi simbollik secara eksplisit secara

bersamaan: sym a b atau syms („a‟,‟b‟) adalah cara singkat untuk a=sym(a), b=sym(b). Jika

kita tidak menuliskan sym, maka Matlab akan menampilkan fungsi yang telah kita tuliskan,

akan tetapi setiap variabel x tidak diketahui.

Setelah kita menuliskan syms x dan fungsi yang akan kita cari, maka kita harus

mengetik Diff sebagai bahasa program untuk mendiferensialkan ekspresi simbolik atau

Page 77: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 76

elemen. Jika elemen bersifat numerik maka akan dicari differensial dari ekspresi tersebut. Di

bawah ini akan ditunjukkan penggunaan Matlab dalam rumus-rumus differensial .

1. Diferensial 1

Kerjakan diferensial berikut ini.

dengan program Matlab dapat dikerjakan sebagai berikut

>> syms x;

y=2*x^4;

z=diff(y)

z =

8*x^3

2. Diferensial 2

Kerjakan diferensial berikut ini.

dengan program Matlab dapat dikerjakan sebagai berikut

>> syms x;

y=('2*x^4-6*x+5');

z=diff(y)

Warning: The method char/diff will be removed in a future

release. Use sym/diff instead. For example diff(sym('x^2')).

After removal diff('x^2') will return diff(double('x^2')).

> In char.diff at 10

z =

8*x^3 - 6

3. Diferensial 3

Kerjakan diferensial berikut ini.

3144 .84.22 xxdx

dyxy

68562 34 xdx

dyxx

)(')(' xgxfdx

dy

Page 78: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 77

dengan program Matlab dapat dikerjakan sebagai berikut

>> syms x;

f=x^2;

g=x^2+2;

y=f*g;

z=diff(y)

z =

2*x*(x^2 + 2) + 2*x^3

4. Diferensial 4

Kerjakan diferensial berikut ini.

dengan program Matlab dapat dikerjakan sebagai berikut

>> syms x;

y=exp(2*x+1);

z=diff(y)

z =

2*exp(2*x + 1)

5. Diferensial 5

Kerjakan diferensial berikut ini.

dengan program Matlab dapat dikerjakan sebagai berikut

xx

xxxxy

xxgxxg

xxfxxf

xxy

44

)(2)2(2'

2)(')2()(

2)(')(

)2(

3

22

2

2

22

1212

12

22.

2)('12)(

xx

x

eedx

dy

xfxxf

ey

)1cos(22)].1[cos(

2'1)(

)1sin(

22

2

2

xxxxdx

dy

xfxxf

xy

Page 79: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 78

>> syms x;

y=sin(x^2+1);

z=diff(y)

z =

2*x*cos(x^2 + 1)

7.5 Integral Menggunakan MATLAB

Integral biasanya didefinisikan sebagai proses penjumlahan tetapi juga

diinterpretasikan sebagai daerah dibawah kurva y = f(x) dari a ke b.

daerah diatas x dihitung positif sementara dibawah x dihitung negatif.

Banyak metode numerik untuk integrasi didasarkan pada impretasi untuk mendapatkan

aprokimasi integralnya. Misalnya fungsi trapz berdasarkan impretasi bangunan trapesium.

Page 80: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 79

Terdapat sejumlah metode perhitungan integral secara numerik, misalkan: trapezoid,

kuadratur, dll. Sebagai contoh.

1. Hitung nilai integral 1

Hitung nilai integral dibawah ini.

Hitung dengan mempergunakan m-fle editor

Metode 1

x = linspace(0,2,50); % definisikan vektor x

y = exp(-x.^3); % hitung nilai y

integral = trapz(x,y) % integralkan !

integral =

0.8930

Metode 2

Dengan command quad, kita terlebih dahulu harus mendefinisikan fungsi dalam M-file:

function y = myfun(x)

y = exp(-x.^3);

Kita hitung integral tersebut dengan toleransi yang berbeda: pergunakan m-fle editor

>> format long; % format bilangan “long”

>> int_1 = quad(„myfun‟,0,2,0.001), ...

int_2 = quad(„myfun‟,0,2,0.00001)

int_1 =

0.893097075892141

int_2 =

0.892952253878937

Metode 2

Dengan command quad8,

Kita bandingkan akurasinya dengan quad8:

>> int_3 = quadl(„myfun‟,0,2)

int_3 =

0.892953514295467

Ini adalah hasil paling akurat yang bisa diperoleh MATLAB.

Page 81: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 80

2. Hitung nilai integral lipat 2

Kita bisa menghitung integral terbatas lipat-2 dengan menyelesaikan integralnya satu

per satu menggunakan command quad. Misalkan kita ingin menghitung integral berikut ini:

∫ ∫

Metode 1 Trapz

Pertama, kita buat M-file untuk fungsi ini:

function z = fungsiku(x,y)

z = exp(-x.^3-y);

Kedua, kita hitung integral-integral pada arah y untuk x yang tetap:

x = linspace(0,1,50); % definisikan nilai x

for i = 1:50 % hitung integral unt setiap x(i)

integral(i) = quad('fungsiku',0,1,[],[],x(i));

end

Integral2 = trapz(x,integral)

[X,Y] = meshgrid(x,x);

Z = fungsiku(X,Y);

surf(X,Y,Z)

Integral2 =

0.510462132119748

Gambar 7.1 kurva 3D

Page 82: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 81

Metode 2 dblquad

Cara lain yang lebih praktis untuk menghitung integral lipat-2 ialah menggunakan command

berikut ini dblquad.

Integral_dobel = dblquad('fungsiku',0,1,0,1)

Integral_dobel =

0.510444416971909

3. Hitung nilai integral lipat 3

Serupa dengan integral lipat-2, integral lipat-3 bisa kita selesaikan setahap demi setahap.

Misalkan untuk integral berikut ini kita simpan dalam M-file:

∫ ∫ ∫ √

Buat fungsi terlebih dahulu. Harus dibuat. Simpan dengan nama funxyz.m

function w = funxyz(x,y,z)

w = sqrt(x.^2 + y.^2 + z.^2);

Metode 1

Pertama, kita definisikan batas-batas nilai x, y, dan z:

x = linspace(-2,2,50); % definisikan nilai x

y = x; % definisikan nilai y

z = x; % definisikan nilai z

int_w = 0;

for i = 1:length(x)-1

X = (x(i)+x(i+1))/2;

dX = x(i+1)-x(i);

for j = 1:length(y)-1

Y = (y(j)+y(j+1))/2;

dY = y(j+1)-y(j);

for k = 1:length(z)-1

Z = (z(k)+z(k+1))/2;

dZ = z(k+1)-z(k);

int_w = int_w + funxyz(X,Y,Z)*dX*dY*dZ;

end

end

end

int_w

Page 83: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 82

int_w =

1.229346100129595e+002

Metode 2

Cara lain yang lebih praktis ialah menggunakan command berikut ini. Untuk contoh integral

di atas, kita hitung dengan toleransi 0,001:

Integral_tripel = triplequad(„funxyz‟, ...

-2,2,-2,2,-2,2,0.001)

Integral_tripel =

122.9577

7.5 Latihan dan Tugas Pertemuan 7

1. Hitung nilai diferensial persamaan berikut ini.

a.

b.

c.

d.

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

∫ √

22

2

22

2

2

2

)1(

1

)1(

)(.2)1.(1

2)('1)(

1)(')(

1

x

x

x

xxx

dx

dy

xxgxxg

xfxxf

x

xy

1

]1[)2(12

1

)1(1

2)('1)(

1

2

2

1

212

12

2

1

22

2

2

x

xxxxx

dx

dy

xxy

xxfxxf

xy

1

22.

1

1

2)('1)(

)1ln(

22

2

2

x

xx

xdx

dy

xxfxxf

xy

x

xxf

cos

sin1)(

Page 84: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 83

3. Hitunglah integral lipat-2 berikut ini:

∫ ∫

4. Hitunglah integral lipat-3 dari fungsi tiga variabel berikut ini:

w(x, y, z) = x2 + xy + yz + z

2

pada batas-batas -1 ≤ x ≤ 1, -1 ≤ y ≤ 1, -1 ≤ z ≤ 1.

Jawaban.

2. Hitunglah integral

x = linspace(-10,10,200); % metode trapezoid

y = sqrt(100 - x.^2);

int_trap = trapz(x,y)

int_trap =

1.570204080504092e+002

Untuk metode kuadratur, kita tuliskan M-file terlebih dahulu bernama

fungsi_01.m

function y = fungsi_01(x)

y = sqrt(100 – x.^2);

int_quad = quad(„fungsi_01‟,-10,10)

int_quad =

157.0796

3. Hitunglah integral lipat 2. Kita tuliskan M-file bernama fungsi_02.m

function z = fungsi_02(x,y)

z = 10 – 2.*x.^2 – y.^2;

int_2 = dblquad(„fungsi_02‟,-4,4,-5,5)

int_2 =

-720

4. Hitunglah integral lipat 3. Kita tuliskan M-file bernama fungsi_03.m

function w = fungsi_03(x,y,z)

w = x.^2 + x.*y + y.*z + z.^2;

>> int_3 = triplequad(„fungsi_03‟,-1,1,-1,1,-1,1)

int_3 =

5.3333

Page 85: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 84

BAB 8

Transformasi Z dan Laplace

8.1 Tujuan Pengajaran

Setelah mengikuti unit praktikum ini, maka praktikan diharapkan :

1. Mahasiswa dapat mengerti cara mendapatkan transformasi-z dari fungsi waktu

dan juga mendapatkan invers dari transformasi-z menggunakan Matlab.

2. Mahasiswa dapat mengerti cara mendapatkan transformasi-z dari fungsi waktu

dan juga mendapatkan invers dari transformasi laplace menggunakan Matlab.

3. Mahasiswa dapat apat mengimplementasikan permasalahan transformasi-z,

laplace dan fourier dengan GUIDE

8.2 Alat dan Bahan

1. Komputer

2. Software MATLAB versi 5 atau sesudahnya.

3. White Board (untuk penjelasan oleh dosen)

4. Proyektor Komputer (untuk demonstrasi)

5. Spidol (untuk white board)

6. Kertas

7. Buku/Modul/Handout/Petunjuk Praktikum

8.3 Transformasi Z

Beberepa kegunaan dari transformasi-z adalah sebagai berikut:

a. Untuk menyelesaikan sistem persamaan.

b. Konvolusi dua buah sinyal

Matlab menyediakan function untuk mendapatkan transformasi-z dari suatu fungsi diskrit,

yaitu menggunakan ztrans. Lakukan langkah-langkah percobaan untuk mendapatkan

transformasi-z dari suatu fungsi sebagai berikut. Sebagai contoh :

1. Transformasi Z

Tentukan transformasi z dari y = 4n

menggunakan MATLAB.

Page 86: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 85

Hasilnya adalah

>> syms n

f=4^n;

F=ztrans(f)

F =

z/(z - 4)

Apabila dimodifikasi menjadi bentuk matematika maka :

>> pretty(F)

z

-----

z - 4

Sementara apabila di sederhanakan maka :

>> simplify(F)

ans =

4/(z - 4) + 1

2. Transformasi Z

Tentukan transformasi z dari y = e-n

+n menggunakan MATLAB.

>> syms n

>> f=exp(-n)+n;

>> F=ztrans(f)

F =

z/(z - 1)^2 + z/(z - 1/exp(1))

Apabila dimodifikasi menjadi bentuk matematika maka :

>> pretty (F)

z z

-------- + ----------

2 1

(z - 1) z - ------

exp(1)

Page 87: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 86

3. Transformasi Z

Tentukan transformasi z dari y = e-n

+ sin n menggunakan MATLAB.

>> syms n

>> f=exp(-n)*sin(n);

>> F=ztrans(f)

F =

(z*exp(1)*sin(1))/(exp(2)*z^2 - 2*cos(1)*exp(1)*z + 1)

Apabila dimodifikasi menjadi bentuk matematika maka :

>> pretty (F)

z exp(1) sin(1)

---------------------------------

2

exp(2) z - 2 cos(1) exp(1) z + 1

Invers transformasi-z dapat dicari menggunakan metode eksapansi pecahan parsial

dan metode pembagian panjang. Matlab memiliki fungsi untuk mencari invers transformasi-z

menggunakan ekspansi pecahan parsial, yaitu: [R, P, K]=residue(B,A), dimana A dan B

adalah konstanta dari fungsi z. Misal dapatkan invers transformasi-z dari fungsi berikut:

4. Invers Transformasi Z

Tentukan transformasi z dari persamaan berikut menggunakan MATLAB.

Maka syntaxnya adalah :

>> syms z n

>> f=iztrans((2*z)/(z^2+3*z+2))

f =

2*(-1)^n - 2*(-2)^n

Apabila dimodifikasi menjadi bentuk matematika maka :

>> pretty(f)

n n

2 (-1) - 2 (-2)

Page 88: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 87

5. Invers Transformasi Z

Tentukan transformasi z dari persamaan berikut menggunakan MATLAB.

( )

( )( )

Maka syntaxnya adalah :

>> syms z n

f=iztrans((2*z^2)/((z-1)*(z-0.905)))

f =

400/19 - (362*(181/200)^n)/19

Apabila dimodifikasi menjadi bentuk matematika maka :

>> pretty(f)

n

362 (181/200)

400/19 - ---------------

19

8.4 Transformasi Laplace

Banyak permasalahan dalam bidang teknik yang memanfaatkan transformasi Laplace.

Transformasi Laplace merupakan klas dari transformasi integral yang dimanfaatkan untuk

merubah bentuk persamaan diferensial biasa menjadi bentuk persamaan aljabar dan untuk

merubah persamaan diferensial parsial menjadi persamaan diferensial biasa. Misal fungsi f(t)

terdefinisi untuk t 0, maka transformasi Laplace (satu sisi atau unilateral) dari f(t)

didefinisikan sebagai:

dt)t(fetfL0

st

Sebab bentuk integral merupakan fungsi dalam parameter s, maka notasi lain yang biasa

digunakan adalah F(s) = L (f(t)).

1. Transformasi Laplace

Tentukan transformasi laplace dari f(t) = -1,25 + 3,5te-2t

+1,25 e-2t

menggunakan MATLAB.

Maka syntaxnya adalah :

>> syms t s

Page 89: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 88

f=-1.25+3.5*t*exp(-2*t)+1.25*exp(-2*t);

F=laplace(f,t,s)

F =

5/(4*(s + 2)) + 7/(2*(s + 2)^2) - 5/(4*s)

Apabila hendak disederhanakan :

>> simplify(F)

ans =

(s - 5)/(s*(s + 2)^2)

Apabila dimodifikasi menjadi bentuk matematika maka :

>> pretty (f)

5 7 t

---------- + ---------- - 5/4

4 exp(2 t) 2 exp(2 t)

2. Transformasi Laplace

Tentukan transformasi laplace dari f(t) = 3e-2t

sin 5t + 4 e-2t

cos 5t menggunakan MATLAB.

Maka syntaxnya adalah :

>> syms t s;

f = 3*exp(-2*t)*sin(5*t)+ 4*exp(-2*t)*cos(5*t);

F = laplace(f)

F =

(4*(s + 2))/((s + 2)^2 + 25) + 15/((s + 2)^2 + 25)

Apabila akan menyederhanakannya maka,

>> simplify (F)

ans =

(4*s + 23)/(s^2 + 4*s + 29)

Apabila dimodifikasi menjadi bentuk matematika maka :

>> pretty (F)

4 (s + 2) 15

------------- + -------------

2 2

(s + 2) + 25 (s + 2) + 25

Page 90: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 89

3. Invers Transformasi Laplace

Tentukan transformasi laplace dari persamaan berikut ini menggunakan MATLAB.

( ) ( )

( )

Maka syntaxnya adalah :

>> syms t s

>> f = ilaplace((s-5)/(s*(s+2)^2))

f =

5/(4*exp(2*t)) + (7*t)/(2*exp(2*t)) - 5/4

Apabila dimodifikasi menjadi bentuk matematika maka :

>> pretty (f)

5 7 t

---------- + ---------- - 5/4

4 exp(2 t) 2 exp(2 t)

4. Invers Transformasi Laplace

Tentukan transformasi laplace dari persamaan berikut ini menggunakan MATLAB.

( ) ( )

( )

Maka syntaxnya adalah :

syms t s

f = ilaplace((10*(s+2))/(s*(s^2+4*s+5)))

f =

4 - (4*(cos(t) - sin(t)/2))/exp(2*t)

Apabila dimodifikasi menjadi bentuk matematika maka :

>> pretty (f)

/ sin(t) \

4 | cos(t) - ------ |

\ 2 /

4 - ---------------------

exp(2 t)

Page 91: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 90

5. Invers Transformasi Laplace

Tentukan transformasi laplace dari persamaan berikut ini menggunakan MATLAB.

( ) ( )

( )( )( )

Maka syntaxnya adalah :

>> syms t s;

F=100*(s+3)/((s+1)*(s+2)*(s^2+2*s+5));

f = ilaplace(F)

f =

50/exp(t) - 20/exp(2*t) - (30*(cos(2*t) + sin(2*t)/3))/exp(t)

Apabila dimodifikasi menjadi bentuk matematika maka :

pretty(f)

/ sin(2 t) \

30 | cos(2 t) + -------- |

50 20 \ 3 /

------ - -------- - --------------------------

exp(t) exp(2 t) exp(t)

6. Persamaan Diferensial menggunakan Transformasi Laplace

Secara symbolik pada MATLAB mengikuti syntax sebagai berikut.

Cari solusi persamaan diferensial sebagai berikut kemudian plot kan hasilnya kedalam grafik.

( )

Maka syntaxnya adalah :

y = dsolve('Dy + 2*y = 12', 'y(0)=10')

ezplot(y, [0 3])

axis([0 3 5 10])

2

2

n

n

y

dy

dt

d y

dt

d y

dt

y

Dy

D2y

Dny

Page 92: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 91

y =

4/exp(2*t) + 6

>> pretty (y)

4

-------- + 6

exp(2 t)

Gambar 8.1 Plot kurva hasil persamaan diferensial 1

7. Persamaan Diferensial menggunakan Transformasi Laplace

Cari solusi persamaan diferensial sebagai berikut kemudian plot kan hasilnya kedalam grafik.

( )

Maka syntaxnya adalah :

>> y = dsolve('Dy + 2*y = 12*sin(4*t)','y(0)=10')

ezplot(y, [0 8])

axis([0 8 -3 10])

pretty (y)

y =

62/(5*exp(2*t)) - (12*cos(4*t))/5 + (6*sin(4*t))/5

Page 93: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 92

62 12 cos(4 t) 6 sin(4 t)

---------- - ----------- + ----------

5 exp(2 t) 5 5

Gambar 8.2 Plot kurva hasil persamaan diferensial 2

8. Persamaan Diferensial menggunakan Transformasi Laplace

Cari solusi persamaan diferensial sebagai berikut kemudian plot kan hasilnya kedalam grafik.

( ) ( )

Maka syntaxnya adalah :

>> y = dsolve('3*D2y + 2*Dy + 5*y = 20','y(0) = 5', 'Dy(0) =

10')

ezplot(y, [0 5])

y =

cos((14^(1/2)*t)/3)/exp(t/3) +

(31*14^(1/2)*sin((14^(1/2)*t)/3))/(14*exp(t/3)) + 4

Page 94: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 93

>> pretty (y)

/ 1/2 \ / 1/2 \

| 14 t | 1/2 | 14 t |

cos| ------- | 31 14 sin| ------- |

\ 3 / \ 3 /

-------------- + ----------------------- + 4

/ t \ / t \

exp| - | 14 exp| - |

\ 3 / \ 3 /

Gambar 8.3 Plot kurva hasil persamaan diferensial 3

Page 95: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 94

8.5 Latihan dan Tugas Pertemuan 8

1. Tentukan transformasi z dari persamaan berikut menggunakan MATLAB.

( )

2. Tentukan transformasi z dari persamaan berikut menggunakan MATLAB.

( )

3. Hitung menggunakan MATLAB transformasi Laplace dari

f(t) = 5 cos 3t + 2 sin 5t -6t3

4. Hitung menggunakan MATLAB Invers transformasi Laplace dari

( ) ( )

( )( )( )

5. Cari solusi persamaan diferensial sebagai berikut kemudian plot kan hasilnya kedalam

grafik.

( ) ( )

Page 96: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 95

BAB 9

Transformasi Fourier

9.1 Tujuan Pengajaran

Setelah mengikuti unit praktikum ini, maka praktikan diharapkan :

1. Mahasiswa dapat mengerti cara mendapatkan transformasi fourier.

2. Mahasiswa dapat apat mengimplementasikan permasalahan transformasi fourier

dan penggunaannya dengan GUIDE

9.2 Alat dan Bahan

1. Komputer

2. Software MATLAB versi 5 atau sesudahnya.

3. White Board (untuk penjelasan oleh dosen)

4. Proyektor Komputer (untuk demonstrasi)

5. Spidol (untuk white board)

6. Kertas

7. Buku/Modul/Handout/Petunjuk Praktikum

9.3 Transformasi Z

Fourier transform merupakan operasi matematika yang bertujuan untuk dekomposisi

dari suatu sinyal (umumnya bentuk time-domain) ke unsur pokok berdasarkan frekuensi yang

terkandung. Pada artikel ini akan diberikan ilustrasi Fourier transform dengan menggunakan

Matlab. Dengan transformasi ini, kita bisa mengamati dan mengukur komponen frekuensi

berapa saja yang menyusun data / sinyal tersebut. Untuk melakukan analisis frekuensi di

dalam MATLAB, telah tersedia command “Fast Fourier Transform” (FFT) sebagai berikut:

Page 97: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 96

1. Sinyal dan Fourier 1

Sebagai contoh, kita memiliki suatu sinyal seperti berikut ini:

clear;

Fs = 1000; % frekuensi sampling 1000Hz

t = 0:1/Fs:1.5; % durasi sinyal 1,5 detik

tone1 = 200;

tone2 = 300;

tone3 = 450; % 3 frekuensi tone dalam Hz

sinyal = cos(2*pi*tone1.*t) +1/2*cos(2*pi*tone2.*t) +

1/3*sin(2*pi*tone3.*t);

Kita bisa lihat bentuk “time-domain” dari sinyal tersebut, kemudian kita dengarkan:

plot(t,sinyal); axis([0 0.2 -1.5 1.5]);

xlabel('waktu (detik)'); ylabel('amplitude')

sound(sinyal,Fs);

Gambar 9.1 Time Domain Sinyal 1

Page 98: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 97

S = fft(sinyal,Fs);

plot(abs(S));

xlabel('frekuensi (Hz)'); ylabel('magnitude')

Gambar 9.2 Frekuensi Domain Sinyal 2

2. Sinyal dan Fourier 2

Sebagai contoh, kita memiliki suatu sinyal seperti berikut ini:

Definisikan sinyal

dt = 1/100;

et = 4;

t = 0:dt:et;

y = 3*sin(4*2*pi*t) + 5*sin(2*2*pi*t);

Plot grafik 1

subplot(2,1,1);

plot(t,y); grid on

axis([0 et -8 8]);

xlabel('Time (s)');

ylabel('Amplitude');

Page 99: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 98

Fourier Transform

Y = fft(y);

n = size(y,2)/2;

amp_spec = abs(Y)/n;

Plot grafik 2

subplot(2,1,2);

freq = (0:79)/(2*n*dt);

plot(freq,amp_spec(1:80)); grid on

xlabel('Frequency (Hz)');

ylabel('Amplitude');

Gambar 9.3 Time domain dan Frekuensi Domain Sinyal

Page 100: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 99

3. Sinyal dan Fourier 3

Gambarkan sinyal modulasi AM dengan frequency 1kHz dan carrier 20kHz dengan

presentasi modulasi sebesar 0,75. Pergunakan m-file editor.

clear

fm = 1e3;

fc = 2e4;

mu = 0.75;

t = 1e-6:1e-6:0.1;

y = (1+mu*cos(2*pi*fm*t)).*cos(2*pi*fc*t);

figure(1)

plot(t,y);

xlim([0 0.002])

xlabel('Time (s)')

ylabel('Amplitudo')

title('Gelombang AM: fc = 2e4 Hz, fm = 1e3 Hz, indeks modulasi

= 0.75')

Gambar 9.4 Time Domain Sinyal

clear

fm = 1e3;

fc = 2e4;

mu = 0.75;

t = 1e-6:1e-6:0.1;

y = (1+mu*cos(2*pi*fm*t)).*cos(2*pi*fc*t);

L = length(y);

Page 101: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 100

Y = fft(y,L);

Y = fftshift(Y);

Ys = Y.*conj(Y);

f = 1e6/L*(-(L/2):L/2-1);

plot(f,Ys)

xlim([-0.5e5 0.5e5])

xlabel('Frequensi (Hz)')

ylabel('Power')

title('Spektrum: fc=2e4 Hz, fm=1e3 Hz,index modulasi = 0.75')

Gambar 9.5 Frequency Domain Sinyal

4. Sinyal dan Fourier 4

Gambarkan sinyal segitiga dengan frequency 1Hz dan di modulasi carrier 25 Hz dengan

presentasi modulasi sebesar 0,8. Pergunakan m-file editor.

fo = 1;

t = 0:0.0001:5;

m = sawtooth(2*pi*fo*t,0.5);

mu = 0.8;

y = (1+mu*m).*cos(2*pi*25*t);

Page 102: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 101

figure(2);

plot(t,y);

xlim([0 2])

xlabel('Time (s)')

ylabel('Amplitudo')

title('Gelombang Hasil Modulasi')

Gambar 9.6 Time Domain Sinyal

fo = 1;

t = 0:0.0001:5;

m = sawtooth(2*pi*fo*t,0.5);

mu = 0.8;

y = (1+mu*m).*cos(2*pi*25*t);

L = length(y);

Y = fft(y,L);

Y = fftshift(Y);

Ys = abs(Y);

f = 1e4/L*(-(L/2):L/2-1);

plot(f,Ys)

xlim([-50 50])

xlabel('Frequensi (Hz)')

Page 103: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 102

ylabel('Magnitudo')

title('Spektrum AM: fc = 25 Hz, fm = 1 Hz, indek modulasi =

0.8')

Gambar 9.7 Frekuensi Domain Sinyal

5. Sinyal dan Fourier 5

Barapakah nilai minimum frekuensi carrier agar tidak terjadi overlap antara lower dan upper

sideband gelombang AM.

fo = 1;

t = 0:0.0001:5;

m = sawtooth(2*pi*fo*t,0.5);

mu = 0.8;

y = (1+mu*m).*cos(2*pi*1*t);

L = length(y);

Y = fft(y,L);

Y = fftshift(Y);

Ys = abs(Y);

Page 104: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 103

f = 1e4/L*(-(L/2):L/2-1);

plot(f,Ys)

xlim([-20 20])

xlabel('Frequensi (Hz)')

ylabel('Magnitudo')

title('Spektrum: fc = 25 Hz, fm = 1 Hz, Indeks Modulasi =

0.8')

Gambar 9.8 Frekuensi Domain Sinyal

fo = 1;

t = 0:0.0001:5;

m = sawtooth(2*pi*fo*t,0.5);

mu = 0.8;

y = (1+mu*m).*cos(2*pi*2*t);

L = length(y);

Y = fft(y,L);

Y = fftshift(Y);

Ys = abs(Y);

f = 1e4/L*(-(L/2):L/2-1);

plot(f,Ys)

xlim([-15 15])

xlabel('Frequensi (Hz)')

Page 105: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 104

ylabel('Magnitudo')

title('Spektrum: fc = 25 Hz, fm = 1 Hz, indek modulasi = 0.8')

Gambar 9.9 Frekuensi Domain Sinyal

6. Sinyal dan Fourier 6

Pada percobaan berikut ini anda coba bangkitkan 4 sinyal sinus dengan frekuensi f1, f2,

f3, dan f4. Sementara nilai amplitudo dapat anda lihat pada listing program berikut ini.

Caranya adalah dengan mengetik program berikut ini

>> Fs=100;

t=(1:400)/Fs;

f1=1;

s1=(2/pi)*sin(2*pi*f1*t);

f2=3;

s2=(2/3/pi)*sin(2*pi*f2*t);

f3=5;

s3=(2/5/pi)*sin(2*pi*f3*t);

f4=7;

s4=(2/7/pi)*sin(2*pi*f4*t);

s=s1+s2+s3+s4;

subplot(2,1,1)

plot(t,s)

xlabel('time')

Page 106: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 105

S=fft(s,512);

w=(0:255)/256*(Fs/2);

subplot(2,1,2)

plot(w,abs(S(1:256)))

xlabel('frequency')

Gambar 9.10 Time domain dan Frekuensi Domain Sinyal

7. Sinyal dan Fourier 7

Pergunakan MATLAB untuk menghasilkan gelombang PAM dengan menggunakan sinusoid

modulasi m= 0.5 rad/sec, sampling Ts= 1 second, and pulse duration To= 0.2s. Plot juga

hasil magnitudo nya.

clear;clc;

wc = 0.5*pi;

res = 0.001;

Fs = 1;

sam = floor(1/(Fs*res));

t = 0:res:10-res;

m = sin(wc*t);

Page 107: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 106

f = 1/res * ([0:1/(length(t)-1):1] - 0.5);

T = 0.2;

durInSam = floor(T/res);

sm = zeros(size(t));

for i=0:floor(length(t)/sam)-1;

sm((i*sam)+1:(i*sam)+durInSam) = m(i*sam+1);

end

y = fftshift(abs(fft(sm)));

figure(1)

subplot(2,1,1)

plot(t,sm);

xlabel('Time (s)')

ylabel('Amplitude')

title('PAM Wave: T_0 = 0.2 s')

subplot(2,1,2)

plot(f,y)

xlabel('Frequency (Hz)')

ylabel('Amplitude')

xlim([-15 15])

Gambar 9.11 Time domain dan Frekuensi Domain Sinyal PAM

Page 108: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 107

BAB 10

Fungsi, Interpolasi, dan Statistik

10.1 Tujuan Pengajaran

Setelah mengikuti unit praktikum ini, maka praktikan diharapkan :

1. Mahasiswa dapat mendefinisikan fungsi matematika pada Matlab secara inline

dan dengan M-file.

2. Mahasiswa dapat menghitung nilai suatu fungsi.

3. Mahasiswa dapat mencari nilai minimum dan maksimum suatu fungsi.

4. Mahasiswa dapat mencari akar-akar suatu polinomial.

10.2 Alat dan Bahan

1. Komputer

2. Software MATLAB versi 5 atau sesudahnya.

3. White Board (untuk penjelasan oleh dosen)

4. Proyektor Komputer (untuk demonstrasi)

5. Spidol (untuk white board)

6. Kertas

7. Buku/Modul/Handout/Petunjuk Praktikum

10.3 Polinomial di MATLAB

Berbagai fungsi matematis bisa dievaluasi dan dianalisis dengan berbagai command

yang ada di MATLAB. Salah satu fungsi matematis yang sering digunakan, yaitu polinomial,

penanganan dan evaluasinya akan dibahas pula dalam bagian ini. Berikutnya akan disajikan

juga analisis fungsi, misalkan mencari nol, maksimum, dan minimum. Di samping itu,

interpolasi dan curvefitting menggunakan MATLAB akan dibahas pula. Pada bagian akhir

akan dikenalkan “Function Tool, yaitu sebuah tool analisis fungsi yang ada di MATLAB.

Misalkan kita memiliki dua polinomial sebagai berikut:

g(x) = 2x3 + 5x −1 h(x) = 6x

2 − 7

Dalam MATLAB kedua polinomial ini dinyatakan dengan:

>> g = [2 0 5 –1];

>> h = [6 0 –7];

Page 109: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 108

Untuk mengevaluasi polinomial pada x = 10 kita tuliskan:

>> nilai1 = polyval(g,10), nilai2 = polyval(h,10)

nilai1 =

2049

nilai2 =

593

Command berikut digunakan untuk menangani polinomial:

Akar-akar dari polinomial g(x) dan h(x) bisa kita hitung:

>> akar_g = roots(g), akar_h = roots(h)

akar_g =

-0.0985 + 1.5903i

-0.0985 - 1.5903i

0.1969

akar_h =

1.0801

-1.0801

Jika kita kalikan kedua polinomial tersebut, akan diperoleh sebuah polinomial baru:

>> p = conv(g,h)

p =

12 0 16 -6 -35 7

Page 110: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 109

yang mewakili: p(x) = 12x5 +16x

3 − 6x

2 − 35x + 7

Untuk memplot polinomial g(x) dan h(x) maka kita bisa pergunakan syntax :

clear

x=linspace(-5,5,10);

y1=2*x.^3+5*x-1;

y2=6*x.^2-7;

plot(x,y1,x,y2)

grid on

xlabel('sumbu-x'), ylabel('sumbu-y')

title('Kurva g(x) dan h(x))')

legend('g(x)','h(x)')

Gambar 10.1 Plot kurva

Turunan pertama dan kedua dari g(x) bisa kita hitung pula:

>> g1=polyder(g), g2=polyder(g1)

g1 =

6 0 5

g2 =

12 0

yang masing-masing mewakili

g'(x) = 6x2

+ 5 dan g''(x) = 12x

Page 111: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 110

10.4 Nilai nol dari fungsi

Permasalahan pemecahan persamaan nonlinear sering muncul dari ebrbagai macam persoalan

praktis. Bentuk umum permasalahannya secara sederhana adalah menemukan sebuah nilai

variabel x sedemikian sehingga f(x) = 0, dimana f adalah sembarang fungsi nonlinear x,

sedangkan x merupakan solusi atau akar persamaan ini. Fungsi matematis bisa dinyatakan

dalam bentuk M-file di MATLAB. Misalkan fungsi

bisa kita tuliskan pada editor M-file.

function y = f(x)

y = (5.*x - 6.4)./((x-1.3).^2 + 0.002) + ...

(9.*x)./(x.^3 + 0.003) - ...

(x - 0.4)./((x-0.92).^2 + 0.005);

Fungsi tersebut bisa diplot dengan command plot:

x = linspace(0,2); % membuat vektor x

plot(x,f(x)); % memplot grafik f(x)

grid on;

title('Fungsi f(x)');

Gambar 10.2 Plot fungsi 1

Lihat angka yang menuju nilai nol.

>> x1=fzero(„f‟,0), x2=fzero(„f‟,0.5), x3=fzero(„f‟,2)

Page 112: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 111

x1 =

0.0011

x2 =

0.7320

x3 =

1.2805

10.5 Titik potong dua fungsi

Misalkan kita ingin menghitung titik potong dari dua fungsi :

cos 2x dan 5x − 2;

atau dengan kata lain mencari solusi dari persamaan:

s(x) = cos 2x − 5x + 2 = 0

Maka, pertama kita definisikan fungsi cosm.m dalam M-file.

function s = cosm(x)

s = cos(2.*x) – 5.*x + 2;

Kemudian kita plot untuk memudahkan mendapatkan tebakan awal:

fplot(„cosm‟,[-10 10]);

grid on;

title(„cos(2x) – 5x + 2‟);

Gambar 10.3 Plot dua fungsi

Page 113: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 112

Kita lihat bahwa x = 2 merupakan tebakan awal yang bagus.

>> nol = fzero(„cosm‟,2)

nol =

0.5060

10.6 Nilai Maksimum dan Minimum

Untuk melakukan optimisasi, yaitu mendapatkan solusi optimal, kita harus mendapatkan

maksimum atau minimum dari fungsi pada suatu interval. Dalam hal ini MATLAB

menggunakan metode numerik untuk menemukan minimum dari suatu fungsi. Algoritma

yang digunakannya iteratif, yaitu suatu proses berulang.

Misalkan kita definisikan suatu fungsi dua variabel:

Kita tuliskan dalam M-file gx1x2.m

function g = gx1x2(x)

g = x(1).^2 + x(2).^2 – 0.25.*x(1).*x(2) – sin(x(1));

Kemudian kita coba plot fungsi ini beserta konturnya.

x=linspace(-5,5,50); % menciptakan vektor x

% asumsikan y = x

for i = 1:50 % menghitung gx1x2 pada setiap titik

for j = 1:50

Z(i,j) = gx1x2([x(i) x(j)]);

end

Page 114: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 113

end

meshc(x,x,Z); % plot grafik 3-D plus kontur

>> meshc(x,x,Z); % plot grafik 3-D plus kontur

Gambar 10.4 Plot fungsi dan konturnya

Dari gambar tersebut, kita coba tebakan awal pada titik (1,0):

>> minimum_gx1x2 = fmins(„gx1x2‟,[1,0])

minimum_gx1x2 =

1.0e-004 *

0.1467 -0.4034

10.7 Interpolasi dan Curve Fitting

Pada fungsi yang memiliki sejumlah titik terbatas, dimungkinkan untuk menentukan titik-titik

perantaranya dengan interpolasi. Cara termudah untuk menghitungnya ialah dengan

menggunakan interpolasi linier untuk menghubungkan dua titik yang berdekatan. Command

interp1 menggunakan algoritma khusus untuk interpolasi titik-titik data yang terpisah secara

seragam. Untuk command ini, kita harus tambahkan tanda asteris „*‟ di depan nama metoda

yang diinginkan, misalkan interp(x,y,xx,’*nearest’).

Page 115: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 114

Misalkan kita memiliki data tekanan udara dalam suatu ruang tertutup yang diukur pada jam-

jam tertentu sebagai berikut:

t = [0 2 3 5 8.5 10 12];

pres = [660 900 400 300 500 50 300];

Sekarang kita interpolasi dengan beberapa metode dan kita plot pada satu gambar sekaligus:

tt = linspace(0,12,100);

PP1 = interp1(t,pres,tt,‟*linear‟);

PP2 = interp1(t,pres,tt,‟*cubic‟);

PP3 = interp1q(t‟,pres‟,tt‟);

figure;

plot(t,pres,‟k*‟,tt,PP1,‟k-„,tt,PP2,‟k:‟, tt,PP3,‟k--‟)

grid on;

xlabel(„waktu (jam)‟), ylabel(„Pressure‟)

legend(„data‟,‟linier‟,‟kubik‟,‟interp1q‟)

title(„Perbandingan metode interpolasi‟)

Page 116: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 115

Gambar 10.5 Perbandingan metode interpolasi

Pencocokkan kurva (curve-fitting) yang akan dibahas di sini ialah pencocokkan titik-titik data

dengan suatu fungsi polinomial dengan metode pendekatan kuadrat terkecil (least squares

approximation). Mari kita coba dekati data tekanan udara seperti contoh sebelumnya dengan

polinomial orde tiga, empat, dan lima.

t = [0 2 3 5 8.5 10 12];

pres = [660 900 400 300 500 50 300];

p3 = polyfit(t,pres,3)

p4 = polyfit(t,pres,4)

p5 = polyfit(t,pres,5)

Maka jawabannya :

p3 =

0.5857 -6.9967 -38.3200 727.0393

p4 =

-0.3022 7.8645 -60.4717 77.6181 704.1170

p5 =

1.0e+003 *

0.0006 -0.0183 0.1908 -0.8055 1.0783 0.6648

Page 117: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 116

Polinomial yang diwakili oleh p3, p4, dan p5 ialah:

Berikutnya kita plot data dan ketiga kurva polinomial tersebut

untuk dibandingkan.

tt = linspace(0,12,100);

kurva_p3 = polyval(p3,tt);

kurva_p4 = polyval(p4,tt);

kurva_p5 = polyval(p5,tt);

figure;

plot(t,pres,‟ko‟,tt,kurva_p3,‟k-„,

tt,kurva_p4,‟k:‟,tt,kurva_p5,‟k--‟)

grid on;

xlabel(„waktu (jam)‟), ylabel(„Pressure‟)

legend(„data‟,‟orde-3‟,‟orde-4‟,‟orde-5‟)

title(„Perbandingan pendekatan polinomial‟)

Gambar 10.6 Perbandingan pendekatan polinomial

Page 118: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 117

10.8 Statistik

Dalam bab ini, kita akan belajar bagaimana menganalisis dan memanipulasi data

mempergunakan MATLAB, terutama untuk perhitungan statistik: rentang data,

maksimum/minimum, rata-rata, deviasi, jumlah kumulatif, dan sebagainya. Di MATLAB

fungsifungsi statistik semacam ini telah ada dan bisa digunakan secara fleksibel.

Misalkan kita gunakan rata-rata data tinggi badan mahasiswa.

x=[175 177 173 165 160 170 174 177 168 170];

nilai_tengah = median(x), deviasi = std(x), variansi = var(x)

nilai_tengah =

171.5000

deviasi =

5.4661

variansi =

29.8778

Kita bisa mengurutkan data (sortir) di MATLAB dengan command berikut ini:

Kita urutkan data tinggi badan dari kecil ke besar (ascending).

sort(x)

ans =

160 165 168 170 170 173 174 175 177 177

Atau kita urutkan disertai indeks yang menunjukkan nomor urut elemen pada vektor x

sebelum disortir.

[y,ind]=sort(x)

y =

160 165 168 170 170 173 174 175 177 177

ind =

5 4 9 6 10 3 7 1 2 8

Untuk mengurutkan tinggi badan dari besar ke kecil (descending).

>> fliplr(sort(x))

ans =

177 177 175 174 173 170 170 168 165 160

Histogram dan diagram batang yang kerap digunakan untuk menggambarkan data statistik

juga bisa ditampilkan dengan MATLAB dengan command berikut ini:

Page 119: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 118

Mari kita coba gunakan data tinggi badan yang ada menjadi histogram dengan 10 interval.

x=[175 177 173 165 160 170 174 177 168 170];

hist(x); title(„Histogram tinggi badan‟);

xlabel(„Interval tinggi badan‟);

ylabel(„frekuensi‟);

Gambar 10.7 Histogram 1

Page 120: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 119

Jika kita hanya menginginkan 4 interval, maka:

hist(x,4);

title(„Histogram tinggi badan‟);

xlabel(„Interval tinggi badan‟);

ylabel(„frekuensi‟);

Gambar 10.8 Histogram 2

Page 121: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 120

BAB 11

IIR dan FIR Filter

11.1 Tujuan Pengajaran

Setelah mengikuti unit praktikum ini, maka praktikan diharapkan :

1. Mahasiswa mampu menyusun filter digital dan melakukan pemfilteran pada sinyal

digital menggunakan MATLAB.

2. Mahasiswa mampu menyusun filter digital dan melakukan pemfilteran pada sinyal

digital menggunakan IIR filter

3. Mahasiswa mampu menyusun filter digital dan melakukan pemfilteran pada sinyal

digital menggunakan FIR filter

11.2 Alat dan Bahan

1. Komputer

2. Software MATLAB versi 5 atau sesudahnya.

3. White Board (untuk penjelasan oleh dosen)

4. Proyektor Komputer (untuk demonstrasi)

5. Spidol (untuk white board)

6. Kertas

7. Buku/Modul/Handout/Petunjuk Praktikum

11.3 Filter IIR

Perlu diingat disini bahwa infinite inpulse response (IIR) dalam hal ini bukan berarti

filter yang bekerja dari nilai negatif tak hingga sampai positif tak hingga. Pengertian

sederhana untuk infinite impulse respon filter disini adalah bahwa output filter merupakan

fungsi dari kondisi input sekarang, input sebelumnya dan output di waktu sebelumnya.

Konsep ini kemudian lebih kita kenal sebagai recursive filter, yang mana melibatkan proses

feedback dan feed forward.

Untuk implementasi sebuah low pass filter bersifat narrow-band menggunakan

sebuah filter IIR merupakan pilihan yang sangat sulit tetapi masih mungkin dilakukan. Satu

alasannya adalah penentuan orde yang tepat sehingga menghasilkan bentuk yang tajam pada

respon frekuensi relative sulit. Pada domain unit circle bidang-z sering ditandai dengan letak

Page 122: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 121

pole-pole yang ada diluar lingkaran, hal ini secara fisis memberikan arti bahwa filter yang

dihasilkan tidak stabil.

1. Filter IIR 1

Kita akan mencoba merancang sebuah low pass filter (LPF) IIR dengan memanfaatkan filter

Butterworth. Frekuensi cut off ditetapkan sebesar 2000 Hz. Dalam hal ini frekuensi sampling

adalah 10000 Hz. Langkah realisasi dalam Matlab adalah sebagai berikut.

clear all;

R=0.2;

N=16;

Wn=0.2;

figure(1);

[B,A] = butter(N,Wn);

[H,w]=freqz(B,A,N);

len_f=length(H);

f=1/len_f:1/len_f:1;

plot(f,20*log10(abs(H)),'linewidth',2)

grid on

Gambar 11.1 Response Filter IIR 1

Page 123: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 122

2. Filter IIR 2

Desain low pass butterwoth IIR filter dengan cut off frekuensi 300 Hz yang berorde 5 dan

frekuensi sampling 1000 Hz. Gunakan metode standar, impulse invariant method dan

bilinear method.

Menggunakan metode standar :

FN=1000/2; fc=300; % cut offf frequency N=5;

% filter order

[z, p, k]=buttap(N); % create an analog filter

w=linspace(0, FN/fc, 1000); % plot the response of filter

h=freqs(k*poly(z), poly(p), w);

f=fc*w;

plot(f, 20*log10(abs(h))), grid

ylabel('Magnitude (dB)')

xlabel('Frequency (Hz)')

Gambar 11.2 Response Filter IIR 2a

Page 124: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 123

Menggunakan metode impulse invariant method :

Fs=1000; % sampling frequency

N=5; % filter order

[b,a]=butter(N,WC,'s'); % create an analog filter

[z, p, k]=butter(N, WC, 's');

[bz, az]=impinvar(b,a,Fs); % determine coeffs of IIR

filter

[h, f]=freqz(bz, az, 512,Fs);

plot(f, 20*log10(abs(h))), grid

xlabel('Frequency (Hz)')

ylabel('Magnitude (dB)')

Gambar 11.3 Response Filter IIR 2b

Menggunakan metode impulse bilinear method.

Fs=1000; % sampling frequency FN=Fs/2;

fc=300; % cutoff frequency

N=5;

[z, p, k]=butter(N, fc/FN);

[h, f]=freqz(k*poly(z), poly(p), 512, Fs);

plot(f, 20*log10(abs(h))), grid

ylabel('Magnitude (dB)')

xlabel('Frequency (Hz)')

Page 125: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 124

Gambar 11.4 Response Filter IIR 2c

11.4 Filter FIR

Sebuah finite impulse respon filter (filter FIR) memiliki hubungan input dan output

dalam domain waktu diskrit sebagai berikut. Untuk tujuan simulasi perangkat lunak kita bisa

memanfaatkan fungsi standar berikut ini:

B = FIR1(N,Wn)

Ini merupakan sebuah langkah untuk merancang filter digital FIR dengan orde sebesar

N, dan frekuensi cut off Wn. Secara default oleh Matlab ditetapkan bahwa perintah tersebut

akan menghasilkan sebuah low pass filter (LPF). Perintah ini akan menghasilkan koefisien-

koesifien filter sepanjang (N+1) dan akan disimpan pada vektor B. Karena dalamdomain

digital, maka nilai frekuensi cut off harus berada dalam rentang 0<Wn<1.0. Nilai 1.0 akan

memiliki ekuivalensi dengan nilai 0,5 dari sampling rate (fs/2).Yang perlu anda ketahui juga

adalah bahwa B merupakan nilai real dan memiliki fase yang linear. Sedangkan gain

ternormalisasi filter pada Wn sebesar -6 dB.

1. Filter FIR 1

Kita akan merancang sebuah LPF dengan frekuensi cut off sebesar 2000 Hz.

Frekuensi sampling yang ditetapkan adalah 10000 Hz. Orde filter ditetapkan sebesar 32.

Maka langkah pembuatan programnya adalah sebagai berikut:

Page 126: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 125

fs=10000;

Wn = .20;

N = 32;

LP = fir1(N,Wn);

[H_x,w]=freqz(LP);

len_f=length(H_x);

f=1/len_f:1/len_f:1;

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

grid on

Gambar 11.5 Response Filter FIR 1

2. Filter FIR 2

Kita akan merancang sebuah Band Pass Filter (BPF) dengan frekuensi cut off sebesar

2000 Hz (untuk daerah rendah) dan 5000 Hz (untuk daerah tinggi). Frekuensi sampling yang

ditetapkan adalah 10000 Hz. Orde filter ditetapkan sebesar 32. Beberapa bagian program

diatas perlu modifikasi seperti berikut.

fs=10000;

Wn1 = [.20, .50];

N = 32;

Page 127: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 126

BP = fir1(N,Wn1);

[H_x,w]=freqz(BP);

len_f=length(H_x);

f=1/len_f:1/len_f:1;

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

grid on

Gambar 11.6 Response Filter FIR 2

3. Filter FIR 3

Kita akan merancang sebuah High Pass Filter (HPF) dengan frekuensi cut off sebesar 5000

Hz (untuk daerah tinggi). Frekuensi sampling yang ditetapkan adalah 10000 Hz. Orde filter

ditetapkan sebesar 32. Beberapa bagian program diatas perlu modifikasi seperti berikut.

fs=10000;

Wn2 = .50;

N = 32;

HP = fir1(N,Wn2,'high');

[H_x,w]=freqz(HP);

len_f=length(H_x);

f=1/len_f:1/len_f:1;

Page 128: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 127

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

grid on

Gambar 11.7 Response Filter FIR 3

Page 129: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 128

BAB 12

Graphical User Interface

12.1 Tujuan Pengajaran

Setelah mengikuti unit praktikum ini, maka praktikan diharapkan :

1. Mahasiswa mampu mengenal pemrograman grafis di dalam MATLAB

2. Mahasiswa dapat membuat program sederhana dengan GUI

12.2 Alat dan Bahan

1. Komputer

2. Software MATLAB versi 5 atau sesudahnya.

3. White Board (untuk penjelasan oleh dosen)

4. Proyektor Komputer (untuk demonstrasi)

5. Spidol (untuk white board)

6. Kertas

7. Buku/Modul/Handout/Petunjuk Praktikum

12.3 Dasar Teori GUI

MATLAB menyediakan tool untuk pembuatan GUI (Graphical User Interface).

Fasilitas ini dinamakan GUIDE (GUI Development Environment). Untuk pembuatan GUI,

ketikkan perintah guide di command window. Atau dengan mengclick icon GUI.

Gambar 12.1 Guide Quick Start

Page 130: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 129

Pada Quick Start dialog, select Blank GUI (Default) template. Click OK maka akan

menampilakn Layout Editor, terlihat dibawah ini.

Gambar 12.2 Layout Editor

GUIDE Toolset :

Layout Editor : tempat untuk menambah dan menyusun objek di jendela GUI

Alignment Tools : untuk mengatur posisi masing-masing objek

Property Inspector : memeriksa dan mengeset nilai-nilai (sifat) objek

Object Browser : memantau hirarki objek-objek yang telah ada do layout

Menu Editor : membuat menu dan submenu dari GUI

Untuk memudahkan pemahaman, buatlah GUI sederhana berikut. Pembuatan GUI ini

di bagi dalam 3 tahap yakni :

1. Perancangan GUI akan lebih baik jika tampilan GUI digambar terlebih dahulu dalam

kertas

2. Penempatan dan pengaturan objek seperti pushbutton, axis dll

3. Pemrograman GUI membuat program bagi objek-objek GUI di M-File

Page 131: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 130

Ketika kita membuat layout GUI kemudian menyimpannya, maka MATLAB akan

membuat M-File secara otomatis yang nantinya akan digunakan untuk pemrograman. Nama

M-File harus sama dengan nama figure dari GUI tersebut.

Langkah-langkah :

1. Silahkan anda membuat plot seperti dibawah ini.

a. 3 buah push button

b. 1 buah axes

c. 1 buah static text

d. 1 buah pop-up menu

Gambar 12.3 Tampilan desain

2. Rapihkan push button dengan menekan CRTL dan menclick push button ketiganya.

Kemudian pilih Tools dan Align Object.

Atur align object sehingga mengikuti gambar dibawah ini. Set spacing 20 pixel.

Page 132: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 131

Gambar 12.4 Merapikan tampilan desain

Click 2 kali : Push Button 1 lalu pilih string.. Ganti Push Button 1 menjadi Surf

Gambar 12.5 Memberikan atribut Push Button

Page 133: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 132

Click 2 kali : Push Button 2 lalu pilih string.. Ganti Push Button 2 menjadi Mesh

Click 2 kali : Push Button 3 lalu pilih string.. Ganti Push Button 3 menjadi Contour

Gambar 12.6 Tampilan Push Button setelah diganti

Click 2 kali : Pop-up Menu lalu pilih string.. Ganti Pop-up Menu menjadi

Peaks

Membrane

Sinc

Gambar 12.7 Memberikan atribut Pop-up Menu

Page 134: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 133

Click 2 kali : Static Text lalu pilih string.. Ganti Static Text menjadi Select Data

Gambar 12.8 Memberikan atribut Static text

SAVE dan ACTIVATE

1 Save and activate your GUI by selecting Run from the Tools menu.OK.

Gambar 12.9 Tampilan GUI

Page 135: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 134

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

Gambar 12.10 Tampilan file GUI.fig

Gambar 12.11 Tampilan file GUI.m

Page 136: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 135

Programming a Simple GUI

The code uses the MATLAB functions peaks, membrane, and sinc.

1. Display the opening function in the M-file editor. If the GUI M-file, simple_gui.m, is not

already open in your editor, open it by selecting M-file Editor from the View menu. In

the editor, click the function icon on the toolbar, then select simple_gui_OpeningFcn in

the pop-up menu that displays.

Gambar 12.12 Tampilan mfile GUI.m

2. Create data for the GUI to plot by adding the following code to the opening function

immediately after the comment that begins % varargin...

% Create the data to plot.

handles.peaks=peaks(35);

handles.membrane=membrane;

[x,y] = meshgrid(-8:.5:8);

r = sqrt(x.^2+y.^2) + eps;

sinc = sin(r)./r;

handles.sinc = sinc;

% Set the current data value.

handles.current_data = handles.peaks;

Page 137: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 136

surf(handles.current_data)

Kemudian click RUN maka akan menujukan tampilan

Gambar 12.13 Tampilan fig GUI.m

Programming the Pop-Up Menu

1. Display the pop-up menu callback in the M-file editor. Right-click the pop-up menu

component in the Layout Editor to display a context menu. From that menu, select

View Callbacks > Callback

Gambar 12.14 Memanggil callback 1

2 Add the following code to the popupmenu1_Callback after the comment

that begins % handles...

Page 138: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 137

% Determine the selected data set.

str = get(hObject, 'String');

val = get(hObject,'Value');

% Set current data to the selected data set.

switch str{val};

case 'Peaks' % User selects peaks.

handles.current_data = handles.peaks;

case 'Membrane' % User selects membrane.

handles.current_data = handles.membrane;

case 'Sinc' % User selects sinc.

handles.current_data = handles.sinc;

end

% Save the handles structure.

guidata(hObject,handles)

Programming the Push Buttons

1. Display the Surf push button callback in the M-file editor. Right-click the Surf push

button in the Layout Editor to display a context menu. From that menu, select View

Callbacks > Callback.

Gambar 12.15 Memanggil callback 2

Page 139: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 138

2 Add the following code to the callback immediately after the comment that

begins % handles...

% Display surf plot of the currently selected data.

surf(handles.current_data);

3 Repeat steps 1 and 2 to add similar code to the Mesh and Contour push

button callbacks.

• Add this code to the Mesh push button callback, pushbutton2_Callback:

% Display mesh plot of the currently selected data.

mesh(handles.current_data);

• Add this code to the Contour push button callback,

pushbutton3_Callback:

% Display contour plot of the currently selected data.

contour(handles.current_data);

4 Save the M-file by selecting Save from the File menu.

Gambar 12.16 Memanggil callback 2

Page 140: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 139

BAB 13

Simulink

13.1 Tujuan Pengajaran

Setelah mengikuti unit praktikum ini, maka praktikan diharapkan :

1. Mahasiswa mampu mengenal pemrograman real time membuat simulasi dengan

simulink.

2. Mampu menjalankan dan menggunakan Simulink untuk kegunaan simulasi dalam

bidang telekomunikasi.

3. Mampu membuat diagram blok dari model matematika sistem telekomunikasi.

13.2 Alat dan Bahan

1. Komputer

2. Software MATLAB versi 5 atau sesudahnya.

3. White Board (untuk penjelasan oleh dosen)

4. Proyektor Komputer (untuk demonstrasi)

5. Spidol (untuk white board)

6. Kertas

7. Buku/Modul/Handout/Petunjuk Praktikum

13.3 Simulink

Simulink adalah salah satu bagian dari MatLab. Simulink dapat digunakan untuk

mensimulasi sistem artinya mengamati dan menganalisa perilaku dari TIRUAN sistem.

Tiruan sistem diharapkan mempunyai perilaku yang sangat mirip dengan sistem fisik. Jika

digunakan dengan benar, simulasi akan membantu proses analisis dan desain sistem.

Simulink mendukung banyak simulasi diantaranya :

a. sistem linier,

b. sistem kontrol,

c. sistem yang menggunakan logika,

d. jaringan syaraf tiruan,

e. telekomunikasi, dan lain-lain.

Page 141: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 140

Simulink dapat digunakan sebagai sarana pemodelan, simulasi dan analisis dari sistem

dinamik dengan menggunakan antarmuka grafis (GUI). Simulink terdiri dari beberapa

kumpulan toolbox yang dapat digunakan untuk analisis sistem linier dan non-linier. Beberapa

library yang sering digunakan dalam sistem kontrol antara lain math, sinks, dan sources.

Gambar 13.1 Icon untuk simulink

Gambar 13.2 Library simulink

Pada simulink terdapat banyak library yang dipergunakan. Pada contoh ini akan kita

pergunakan banyak library dai sistem telekomunikasi. Sebagai pendahuluan, kita akan

berlatih menggunakan simulink untuk simulasi modulasi dengan BPSK.

Page 142: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 141

1. Simulasi BPSK menggunakan Simulink.

Silahkan anda mencari blok diagram seperti berikut.

Gambar 13. 3 Simulasi BPSK menggunakan Simulink

Hasil hasil keluaran dari simulink ini akan ditampilkan pada gambar dibawah ini.

Gambar 13. 4 Perbandingan sinyal transmit dan receiver

Page 143: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 142

Pada gambar 13.4 terlihat perbandingan transmiter dan receiver terdapat satu buah bit error

hal itu juga terlihat pada gambar 13.5 dibawah ini.

Gambar 13.5 Tampilan error rate calculation

Pada gambar ini terlihat jumlah error pada simulasi BPSK. Sistem ini akan mendetect

jumlah error yang dihasilkan. Pada gambar 13.6 memperlihatkan kontelasi antara transmitter

dan receiver.

Gambar 13.6 Perbandingan konstelasi sinyal

Pada gambar ini terlihat pada receiver, konstelasi akan berubah, namun apabila masih

dalam threshold maka masih dianggap bit yang benar.

Gambar 13.7 Histori arah pergerakan bit

Page 144: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 143

2. Simulasi 16QAM menggunakan Simulink.

Silahkan anda mencari blok diagram seperti berikut.

Gambar 13.8 Simulasi 16 QAM

Berikan analisa anda terhadap modulasi 16 QAM.

Page 145: Diktat Praktikum DSP

Politeknik Negeri Jakarta 2013

Diktat Praktikum Pengolahan Sinyal Digital Halaman 144

DAFTAR PUSTAKA

[1] MathWorks. MATLAB® 7 Creating Graphical User Interfaces.The MathWorks, Inc.

Natick, MA. 2008.

[2] Gonzalez,Woods. Digital Image Processing 2nd Ed. Prentice Hall. Upper Saddle.

New Jersey. 2006.

[3] MathWorks. Learning MATLAB 7. The MathWorks, Inc. Natick, MA. 2008.

[4] MathWorks. Learning MATLAB 6 : Student Version. The MathWorks, Inc. Natick,

MA. 2001.

[5] MathWorks. MATLAB® The Language of Technical Computing Getting Started with

MATLAB® Version 7. The MathWorks, Inc. Natick, MA. 2001

[6] B. Hunt, R. Lipsman. A Guide to MATLAB for Beginners and Experienced Users.

Cambridge University Press, New York. 2001.

[7] Christos Xenophontos. A Beginner’s Guide to MATLAB. Department of Mathematical

Sciences. Loyola College. 1998.

[8] Saluky, S.Si. Modul Praktikum MATLAB Versi 6.5. Sekolah Tinggi Manajemen

Informatika dan Komputer STMIK CIC.

[9] Sahid. Petunjuk Praktikum : Aplikasi Komputer dengan Matlab (edisi revisi).

Laboratorium Komputer. Jurusan Pendidikan Matematika FMIPA. UNY. 2004.

[10] Tim Dosen, Modul Praktikum Dasar Pemrograman Komputer, Teknik Elektro. UII.

2005.

[11] Tim Dosen. Petunjuk Praktikum Pengolahan Sinyal Digital. Laboratorium Dasar

Teknik Elektro. Sekolah Teknik Elektro dan Informatika. Institut Teknologi Bandung

(ITB). 2012.

[12] Tim Dosen. Modul Praktikum MATLAB. Divisi Pelatihan dan Informasi. Universitas

Muhamadiyah Malang. 2001.

[13] Teguh Widiarsono, M.T. Tutorial Praktis Belajar MATLAB. Oktober 2005. (online

edition).