EL3110_1_13213060

11 

Loading....

Loading....

Loading....

Loading....

Loading....

Teks penuh

(1)

Laporan Praktikum - Laboratorium Dasar Teknik Elektro – STEI ITB 1

MODUL I PENGENALAN MATLAB

Rosana Dewi Amelinda (13213060) Asisten : Kalam A. L (13212090)

Tanggal Percobaan: 21/9/2015 EL3110-Praktikum Pengolahan Sinyal Digital

Laboratorium Dasar Teknik Elektro - Sekolah Teknik Elektro dan Informatika ITB

Abstrak

Abstrak

Pada praktikum Modul I ini dilakukan beberapa

percobaan yaitu pertama dilakukan pembuatan sinyal input

filter yang berasal dari hasil superposisi tiga buah sinyal

sinusoidal dengan frekuensi yang berbeda-beda menggunakan

frekuensi sampling 16 kHz. Sinyal hasil superposisi tersebut

selanjutnya diplot kedalam sebuah grafik dan diamati pula

respon frekuensinya. Percobaan kedua yaitu pembuatan filter

dengan fungsi FIR1 berorde 32 yang terdiri dati filter

low-pass, band-low-pass, dan high-pass filter. Lalu diamati frekuensi

response untuk masing-masing filter yang telah dibuat.

Percobaan ketiga yaitu melakukan desain dan simulasi

menggunakan filter FIR2. Pembuatan filter dilakukan

dengan metode frekuensi sampling menggunakan respon

frekuensi filter yang berasal dari gambar. Perancangan filter

tersebut dilakukan untuk filter berorde 16 dan 128.

Percobaan terakhir yaitu membandingkan hasil konvolusi

(input hasil superposisi pada percobaan 1 dengan salah satu

filter pada percobaan 2) yang berasal dari source code yang

dibuat praktikan dibandingkan dengan filter yang telah ada

pada MATLAB.

Kata kunci: MATLAB, filter FIR1, filter FIR2,

frequensi respons.

1.

P

ENDAHULUAN

MATLAB adalah sebuah bahasa dengan kemampuan tinggi untuk komputasi teknis. Ia menggabungkan komputasi, visualisasi, dan pemrograman dalam satu kesatuan yang mudah digunaka dimana masalah dan penyelesaiannya di ekspresikan dalam notasi matematik yang sudah dikenal. Pemakaian MATLAB meliputi : matematika dan komputasi, pengembangan algoritma, akuisisi data, pemodelan, simulasi, prototype, grafik saintifik dan engineering dan lain-lain.

MATLAB adalah system interaktif yang mempunyai basis data array yang ridak membutuhkan dimensi. Ini memungkinan kita dapat menyelesaikan banyak masalah komputasi teknis, khususnya yang berkaitan dengan formulasi matrik dan vector.

Sistem MATLAB terdiri atas lima bagian utama :  Development Environment, yaitu

kumpulan semua alat-alat dan fasilitas

untuk membantu user dalam menggunakan fungsi dan file MATLAB.  The MATLAB mathematical function

library, yaitu koleksi semua algoritma komputasi.

 The MATLAB language, yaitu Bahasa matriks/array level tinggi dengna contoh flow, fungsi, struktur data, input/output, dan fitur objek programming lainnya.  Graphics, yaitu fasilitas untuk

menampilkan vector dan matriks sebagai grafik.

 The MATLAB Application Program Interface (API), yaitu paket yang memungkinkan user menulis Bahasa C dan Fortran yang berinteraksi dengan MATLAB.

Tujuan yang ingin dicapai pada modul ini yaitu :  Mempelajari penggunaan system help

untuk mengetahui commands dan syntax dasar MATLAB.

 Dapat menggunakan MATLAB untuk desain filter.

 Mempelajari bagaimana menulis fungsi dan m-file pada MATLAB.

 Merancang pem-filter-an FIR dengan MATLAB.

 Memahami pem-filter-an lewat MATLAB secara mendalam.

2.

S

TUDI

P

USTAKA

MATLAB (Matrix Laboratory) adalah sebuah program untuk analisis dan komputasi numerik. Pada awalnya, program ini merupakan interface untuk koleksi rutin-rutin numerik dari proyek LINPACK dan EISPACK, namun sekarang merupakan produk komersial dari perusahaan Mathworks, Inc. MATLAB telah berkembang menjadi sebuah environment pemrograman yang canggih yang berisi fungsi-fungsi built-in untuk melakukan tugas pengolahan sinyal, aljabar linier, dan kalkulasi matematis lainnya. MATLAB juga berisi toolbox yang berisi fungsi-fungsi tambahan untuk aplikasi khusus .

(2)

Laporan Praktikum - Laboratorium Dasar Teknik Elektro – STEI ITB 2 MATLAB bersifat extensible, dalam arti bahwa

seorang pengguna dapat menulis fungsi baru untuk ditambahkan pada library ketika fungsi-fungsi built-in yang tersedia tidak dapat melakukan tugas tertentu. Kemampuan pemrograman yang dibutuhkan tidak terlalu sulit bila Anda telah memiliki pengalaman dalam pemrograman bahasa lain seperti C, PASCAL, atau FORTRAN.

a. MATLAB HELP

MATLAB menyediakan sistem help on-line yang dapat diakses dengan perintah help.

Contoh :

>> help filter

b. VARIABEL DAN OPERASI MATRIKS Tipe variable pada MATLAB adalah matriks. Untuk mendeklarasikan sebuah variable, kita perlu memberikan nilai tertentu padanya pada MATLAB prompt. Sebagai contoh :

>> M = [ 1 2 6; 5 2 1] M =

1 2 6 5 2 1

Ketika definisi sebuah matriks melibatkan sebuah rumus yang panjang atau banyak entri, maka sebuah perintah MATALB yang sangat panjang dapat dipecah menjadi dua (atau lebih) baris dengan cara menempatkan sebuah tanda (…) paa akhir dari sebuah baris yang ingin dilanjutkan. Sebagai contoh :

P = [ 1, 2, 4, 6, 8 ]+ [ pi, 4, exp(1), 0, -1] + … [cos(0.1*pi), sin(pi/3), tan(3), atan(2), sqrt(pi) ]; Ketika sebuah ekspresi perintah atau pernyataan diakhiri dengan tanda semicolon (;), maka hasilnya tidak akan ditampilkan di layar.

Ada dua jenis variabel matriks pada MATLAB, yakni skalar (scalars) dan vektor (vectors). Sebuah skalar adalah sebuah matriks yang hanya berisi satu elemen, jadi berukuran 1 x 1. Sebuah vektor adalah sebuah matriks yang hanya berisi satu baris atau kolom.

Operator colon (:) sangat berguna untuk membuat

index arrays. Notasi colon didasarkan pada ide bahwa sebuah selang indeks dapat dihasilkan dengan memberikan sebuah nilai awal, interval, dan sebuah nilai akhir. Karena itu, sebuah vektor yang terpartisi secara teratur dapat diperoleh dengan perintah

iii = nilai awal : interval : nilai akhir  Perkalian matriks

Operasi perkalian matriks AB hanya dapat dilakukan bila kedua matriks tersebut memiliki dimensi yang kompatibel, yakni jumlah kolom matriks A harus sama dengan jumlah baris matriks B. Sebagai contoh, sebuah matriks 5 x 8 dapat mengalikan sebuah matriks 8 x 3 untuk menghasilkan sebuah matriks AB 5 x 3. Secara umum, bila A adalah m x n, maka B haruslah n x p, dan hasil perkalian AB akan memiliki dimensi m x p. Umumnya perkalian matriks tidak bersifat komutatif, yakni AB ≠ BA. Bila p = m, maka perkalian AB tidak terdefinisi

.

Beberapa kasus khusus untuk perkalian matriks adalah outer product dan inner product. Pada outer product, sebuah vektor kolom mengalikan sebuah vektor baris untuk menghasilkan sebuah matriks. Bila kita membiarkan semua elemen salah satu vektor tersebut berupa ‘1’ , maka kita akan memperoleh hasil yang berulang. Untuk inner product, sebuah vektor baris mengalikan sebuah vektor kolom, jadi hasilnya berupa skalar. Bila kita membiarkan semua elemen salah satu vektor tersebut berupa ‘1’, maka kita akan memperoleh penjumlahan semua elemen vektor lainnya.

 Operasi pointwise array

Bila kita ingin melakukan perkalian pointwise, ada beberapa kebingungan yang bisa muncul. Pada kasus pointwise, kita ingin mengalikan matriks secara elemen per elemen, jadi mereka harus memiliki dimensi yang sama. Sebagai contoh, dua matriks 5 x 8 dapat dikalikan secara pointwise, walaupun keduanya tidak bisa melakukan perkalian matriks biasa. Untuk melakukan perkalian pointwise pada MATLAB, kita menggunakan operator “point-star”A .* B.

 Operasi concatenatio

Operasi ini digunakan untuk menempelkan dua atau lebih array dengan syarat syarat tertetu sesuai dengan operasi concatenation yangdiinginkan. Dalam MATLAB terdapat dua buah fungsi yang dapat digunakan untuk melakukan proses concatenation (penempelan) arrays. Fungsi tersebut adalah vertcat dan horzcat. Penjelasan lanjut dapat dilihat pada help MATLAB untuk fungsi-fungsi tersebut.

c. PLOT GRAFIK

MATLAB dapat menghasilkan plot dua dimensi x-y dan plot tiga dimensi, menax-yangkan citra, dan bahkan membuat dan memutar video. Dua fungsi yang yang sering digunakan pada praktikum ini adalah plot dan stem. Untuk memanggil fungsi ini, umumnya kita membutuhkan dua vektor (satu vektor juga bisa, namun untuk definisi yang

(3)

Laporan Praktikum - Laboratorium Dasar Teknik Elektro – STEI ITB 3 berbeda, gunakan perintah help untuk melihat

informasi yang lebih lengkap), untuk sumbu x dan sumbu y. Pemanggilan fungsi plot(x,y) akan menghasilkan suatu plot yang terkoneksi dengan garis lurus untuk setiap dua titik

{ (x(1),y(1), (x(2),y(2), (x(3),y(3), …….., (x(N),y(N) } seperti yang ditunjukkan pada gambar PA.1. Pemanggilan fungsi stem(x,y) akan menghasilkan presentasi seperti yang ditunjukkan pada Gambar 1. 1 PA.1

d. KONSTRUKSI PEMROGRAMAN

MATLAB mendukung paradigma pemrograman fungsional, di mana Anda dapat menyusun fungsi-fungsi secara nested. Perhatikan persamaan di bawah

yang dapat diimplementaskan dengan hanya menggunakan satu baris kode MATLAB, yakni

sum( log( abs(x) ) )

di mana x adalah sebuah vektor yang berisi elemen-elemen xn. Contoh ini mengilustrasikan MATLAB dalam bentuk yang paling efisien, di mana fungsi-fungsi individu dikombinasikan untuk menghasilkan keluaran. Penulisan kode-kode MATLAB yang efisien memerlukan gaya pemrograman yang menghasilkan fungsi-fungsi kecil yang divektorisasi. Loop-loop harus dihindari. Cara utama untuk menghindari loop adalah memanggil fungsi-fungsi toolbox

sebanyak/sesering mungkin.

e. MATLAB SCRIPTS

Setiap perintah/pernyataan yang dapat dimasukkan pada window prompt dapat disimpan pada sebuah file teks dan dieksekusi sebagai script. File teks tersebut dapat dibuat dengan menggunakan sembarang editor ASCII seperti program Notepad atau pada editor teks MATLAB. Ekstensi file harus berupa .m dan script tersebut dieksekusi pada MATLAB dengan hanya

mengetikkan nama file (dengan atau tanpa ekstensi). Program-program tersebut umumnya dikenal dengan istilah m-file.Berikut merupakan contoh sebuah m-file:

tt = 0:0.3:4; xx = sin(0.7*pi*tt); subplot(2,1,1) plot( tt, xx)

title(‘tt = 0:0.3:4; xx = sin(0.7*pi*tt); plot( tt, xx)’) subplot(2,1,2)

stem( tt, xx)

title(‘‘tt = 0:0.3:4; xx = sin(0.7*pi*tt); plot( tt, xx)’) Bila perintah-perintah ini disimpan dengan file bernama plotstem.m maka pengetikan plotstem pada command prompt akan menjalankan file tersebut, dan kedelapan baris perintah akan dieksekusi sama halnya bila mereka diketikkan baris per baris pada command prompt. Hasilnya adalah dua buah plot seperti yang tampak pada gambar A.1.

f. MENULIS FUNGSI MATLAB

Kita dapat menulis fungsi sendiri dan kemudian ditambahkan pada environment MATLAB. Fungsi-fungsi ini merupakan jenis lain dari m-file, dan dibuat sebagai sebuah file ASCII menggunakan editor teks. Kata pertama pada m-file tersebut haruslah keywordfunction untuk memberitahukan MATLAB bahwa file tersebut diperlakukan sebagai sebuah fungsi dengan argumen. Pada baris yang sama juga berisi calling template yang menyatakan argumen input dan output dari fungsi. Nama file untuk m-file tersebut haruslah berekstensi .m dan nama fungsi tersebut akan menjadi nama dari perintah baru pada MATLAB. Sebagai contoh, perhatikan file berikut, yang mengekstrak L buah elemen terakhir dari sebuah vector.

function y = foo( x, L )

%FOO mengambil L buah titik terakhir dari x % penggunaan:

% y = foo( x, L ) % di mana: % x = vektor input

% L = jumlah titik yang ingin diambil % y = vektor output

N = length(x); If (L > N)

error(‘vektor input terlalu pendek’) end

y = x(( N-L+1):N );

Bila file ini disimpan dengan nama foo.m, operasi ini dapat dipanggil dari MATLAB command line dengan cara mengetikkan

(4)

Laporan Praktikum - Laboratorium Dasar Teknik Elektro – STEI ITB 4 Outputnya akan berupa tujuh elemen terakhir dari

vektor (1:2:37), yakni aa = [ 25 27 29 31 33 35 37 ]

2.1

J

UDUL

S

UB

-

BAB

Sub-bab pada percobaan ini, yaitu :  Penguat kelas A

 Penguat pushpull kelas B  Penguat pushpull kelas AB

3.

M

ETODOLOGI

Pada percobaan 1 ini, alat dan bahan yang digunakan yaitu :

1. 1 unit computer 2. Software MATLAB Memulai percobaan

1. Percobaan membuat sinyal input filter berupa superposisi beberapa sonyal sinusoid dengan frekuensi berbeda

2. Percobaan desain dan simulasi flter FIR 1

3. Percobaan desain dan simulasi filter FIR 2

Pastikan komputer yang akan

digunakan berfungsi dengan normal

dan tidak ada masalah apapun.

Software Matlab sudah terinstal

dalam komputer.

Pada Marlab, direpresentasikan sinyal dalam vekor (matriks 1 x N, N panjang vektor). Akan direpresentasikan sumbu waktu dimana untuk 0<t<2𝜋, diberipanjang vektor 100 sampel dengan

perintah >>i = 1:100

Dibuat 3 sinyal sinusoidal pada frekuensi pencuplikan fs = 16 kHz untuk masing-masing

frekuensi sinyal f1 = 200 Hz, fs = 1 kHz, f3 = 5 kHz. Diketikan : >>sin1 = sin (2*pi*i*f1/fs); sin2

= sin (2*pi*i*f2/fs); sin3 = sin (2*pi*i*f3/fs);

Dijumlahkan ketiga sinyal tersebut menjadi satu sinyal sinusoidal rusak dengan perintah >>sintot

= (sin1+sin2+sin3)/3;

Dicoba lot gambarnya dengan perintah >>plot (sintot)

Dilihat juga respon frekuensinya dengan peritah freqz.

Dibuat beberapa filter dengan spesifikasi sebagai berikut

a. Filter FIR low-pass orde 32 dengan frekuensi cut-off 800 Hz

b. Filter FIR band-pass orde 32 dengan frekuensi pass 1 - 3 kHz

c. Filter FIR high-pass orde 32 dengan frekuensi cut-off 6 kHz

Dirancang ketiga filter tersebut, dicari koefisien filternya dengan perintah yang sesuai (fir1). Dicatat

masing-masing koefisien filter.

Dilihat frekuensi respon masing-masing filter dengan perintah freqz. Digambarkan hasilnya. Dianalisis pada

(5)

Laporan Praktikum - Laboratorium Dasar Teknik Elektro – STEI ITB 5 4. Percobaan membuat m-file untuk

melakukan pem-filter-an FIR.

Mengakhiri Percobaan

4.

H

ASIL DAN

A

NALISIS

Percobaan 1 : Membuat sinyal input filter berupa superposisi beberapa sinyal sinusoidal dengan frekuensi berbeda

Pada percobaan pertama ini dilakukan representasi 3 buah sinyal sinusoidal dengan nilai frekuensi yang berbeda-beda (frekuensi sampling 16 kHz). Representasi sinyal tersebut dilakukan sebanyak 100 sampel (I dari 1 sampai 100). Sinyal sinusoidal pertama memiliki frequensi 200 Hz seperti ditunjukan pada gambar dibawah :

Gambar 1 Sinyal sinusoidal 1

Sinyal kedua memiliki frekuensi 1 kHz, seperti pada gambar berikut :

Gambar 2 Sinyal sinusoidal 2

Yang terakhir yaitu sinyal ketiga yang memiliki frekuensi sebesar 5 kHz.

Gambar 3 Sinyal sinusoidal 3

Kode matlab untuk pengeplotan ketiga sinyal tersebut yaitu :

(( Initialisasi ))

i = 1:100 (banyak sampel)

fs = 16000 (besar frek sampling)

f1 = 200 (nilai frek 1)

f2 = 1000 (nilaifrek 2)

f3 = 5000 (nilai frek 3)

(( rumus fungsi ))

sin1 = sin(2*pi*i*(f1/fs)) (fungsi1)

sin2 = sin(2*pi*i*(f2/fs)) (fungsi2)

sin3 = sin(2*pi*i*(f3/fs)) (fungsi3)

(( Display ))

figure (1);

subplot(2,1,1); plot(i,sin1);

title('sin1') {plot sinyal 1}

subplot(2,1,2); plot(i,sin2);

title('sin2') {plot sinyal 2}

figure (2);

subplot(2,1,1); plot(i,sin3);

title('sin3') {plot sinyal 3}

Selanjutnya dilakukan pengeplotan sinyal total yang merupakan hasil penjumlahan dari ketiga sinyal. Berikut gambarnya :

Dibuat desain filter FIR dengan metoda frekuensi sampling dengan respon frekuensi seperti apda

gambar dibawah (Respon Frekuensi Filter)

Dirancang filter diatas, dicari koefisien filternya dengan perintah yang sesuai (fir2). Dicatat

koefisien filter. Digunakan orde 16.

Dilihat frekuensi respon filter dengan perintah freqz. Digambarkan hasilnya. Dilakukan untuk

orde yang lebih besar misalnya 128. Dibandingkan dengan hasil sebelumnya.

Pada bagian ini dibuat m-file untuk melakukan pemfilteran FIR saja, untuk m-file tersebut tidak diperbolehkan memanggil fungsi internal MATLAB.

Dibandingkan hasilnya dengan percobaan dengan menggunakan perintah filter dari MATLAB.

Sebelum keluar dati ruang praktikum, dirapikan meja praktikum dan dimatikan komuter dati jala-jala listrik.

Dimatikan MCB dimeja praktikum sebelum meninggalkan ruangan.

Diperiksa lembar penggunaan meja.

Dipastikan asisten telah menandatangani catatan percobaan kali ini pada Buku Catatan Laboratorium.

(6)

Laporan Praktikum - Laboratorium Dasar Teknik Elektro – STEI ITB 6 Gambar 4 Sinyal total ((sin1+sin2+sin3) / 3)

Dari sinyal total tersebut dibuat pula hasil respons frekuensinya sebagai berikut :

Gambar 5 Respon frequensi sinyal total

Perintah matlab untuk pengeplotan sinyal total beserta respons frekuensinya yaitu :

sintot = (sin1+sin2+sin3)/3 (nilai

sinyal total yang merupakan

penjumlahan dari ketiga siyal)

subplot(2,1,2); plot(i,sintot); (plot

grafik sinyal total )

title('sintot') (pemberitan judul

grafik)

freqz (sintot); (perintah untuk

mengamati respons frekuensi sinyal)

Dari percobaan ini telah diperoleh sebuah sinyal input filter yaitu berupa sinyal total hasil penjumlahan 3 buah sinyal sinusoidal dengan frekuensi yang berbeda-beda. Dapat dilihat bahwa nilai-nilai sinyal total (mulai dari i = 1 hingga i = 100) merupakan hasil superposisi nilai-nilai sinyal 1, sinyal 2 dan sinyal 3. Misalnya saja unuk nilai sinyal total saat i = 50, merupakan hasil penjumlahan dari sinyal 1 (saat i = 50), ditambahkan dengan sinyal 2 (saat i = 50) dan sinyal 3 (saat i = 50).

Percobaan 2 : Desain dan simulasi filter FIR 1 Pada percobaan 2, dilakukan pembuatan 3 buah filter dengan memanfaatkan fungsi FIR 1 yang telah ada pada MATLAB. Filter pertama yang dibuat yaitu filter FIR low-pass orde 32 (fc 800 Hz), berikut respons frekuensinya :

Gambar 6 Respon frekuensi filter FIR low-pass

Source code yang digunakan yaitu :

LowPass = fir1(32,0.1); (pembuatan

filter low-pass dengan mencari nilai

koefisiennya menggunakan perintah

fir1)

freqz(LowPass); (perintah untuk

melihat frekuensi respons dari low-pass filter)

Selanjutnya dilakukan juga pembuatan filter FIR band-pass orde 32 (f pass 1-3 kHz) dengan respons frekuensi sebagai berikut :

Gambar 7 Respon frekuensi filter FIR band-pass

Source code :

BandPass = fir1(32,[0.125,

0.375],'bandpass'); (pembuatan filter

band-pass dengan mencari nilai

koefisiennya menggunakan perintah

fir1)

freqz(BandPass); (perintah untuk

melihat frekuensi respons dari band-pass filter)

Dan yang terakhir yaitu pembuatan filter FIR high-pass orde 32 (fc 6 kHz) dengan respons frekuensi sebagai berikut :

(7)

Laporan Praktikum - Laboratorium Dasar Teknik Elektro – STEI ITB 7 Gambar 8 Respon frekuensi filter FIR high-

Source Code :

HighPass = fir1(32,0.75,'High');

(pembuatan filter high-pass dengan

mencari nilai koefisiennya

menggunakan perintah fir1)

freqz(HighPass); (perintah untuk

melihat frekuensi respons dari high-pass filter)

Pada Matlab telah disediakan fungsi fir1() yang dapat digunakan untuk merancang linear-phasa FIR filter konvensional seperti lowpass, highpass, bandpass dan bandstop yang didasarkan pada metode windowing. Dengan perintah b =

fir(N,Wn) akan menghasilkan sebuah vector b

yang merupakan respons impuls pada suatu lowpass filter dengan orde senilai N. nilai frekuensi cut-off (f[Wn]) harslah bernila antara 0 sampai 1 yang mana mengacu pada suatu nilai yang berkaitan dengan nilai setengah dari frekuensi sampling (fs), yang dalam beberapa literature juga dinyatakan sebagai sampling rate. Nilai frekuensi cut-off ini merupakan bentuk ternormalisasi dari fs/2.

Gambar 9 Contoh peredaman pada low-pass filter

Dapat dilihat dari gambar diatas, respon frekuensi FIR yang dihasilkan menunjukan bahwa pada nilai frekuensi cut-off (dalam hal ini ditunjukan dengan nilai Wn – 0.1), mulai menunjukan adanya efek redaman terhadap sinyal input sehingga outputnya mengalami pelemahan nilai. Pada Wn = 0.2, sinyal benar-benar mengalami peredaman ditunjukan dengan adanya ripple pada frekuensi diatas Wn = 0.2. Hal ini (sifat serupa sesuai filternya) juga terjadi pada filter band pass dan

filter high pas yaitu pada frekuensi antara 0.125-0.375 (band-pass) dan pada Wn = 0.75 (high-pass). Percobaan 3 : Desain dan simulasi filter FIR 2 Percobaan ketiga yaitu melakukan perancangan filter (low-pass) dengan metoda frekuensi sampling menggunakan grafik response frekuensi yang yang telah ditentukan. Berikut hasil frekuensi response yang dihasilkan untuk dua orde yang berbeda (16 dan 128) :

Gambar 10 Filter dengan orde 16

Gambar 11 Filter dengan orde 128

Source code : (( inisialisasi nilai )) f = [0 0.1 0.3 1]; m = [1 1 0 0]; (( eksekusi program )) ((orde 16))

lowpass = fir2(16,f,m); (pembuatan

filter low-pass dengan mencari nilai

koefisiennya menggunakan perintah

fir2)

freqz(lowpass); (perintah untuk

melihat frekuensi respons dari low-pass filter dengan orde 16)

((orde 128))

lowpass = fir2(128,f,m); (pembuatan

filter low-pass dengan mencari nilai

koefisiennya menggunakan perintah

fir2)

freqz(lowpass); (perintah untuk

melihat frekuensi respons dari low-pass filter dengan orde 128)

Pada MATLAB terlah disedakan fitur filter fir2(). Contohnya untuk perintah b = fir2(N,f,m)

(8)

Laporan Praktikum - Laboratorium Dasar Teknik Elektro – STEI ITB 8 digunakan untuk mendesain filter digital FIR orse

N dengan respons frekuensi yang ditentukan oleh vector f dan m, serta menghasilkan koefisien filter pada vector b sebanyak N+1. Vektor f dan m menetapkan frekuensi dan magnitude untuk filter sehinga dapat dilakukan perintah plot(f,m) yang akan dihasilkan gambar dari respons frekuensi yang diinginkan. Nilai frekuensi pada vekto f haruslah bernilai antara 0.0<f<.10, dimana 1.0 menunjukan setengah dari frekuensi sampling. Nilai pada vector f harus bertambah, dimulai dati 0 dan berakhir pada 1.0.

Secara default , FIR2 menggunakan window jenis Hamming. Tipe window yang lain seperti Boxcar, Hanning, Barlett, Blackman, Kaiser dan Chebwin juga dapat digunakan, misalnya b=

fir2(N,f,m,Blackman(N+1)) digunakan

untuk perintah pada window Blackman.

Perbedaan nilai orde pada fungsi yang digunakan hanya berpengaruh pada jumlah sample yang digunakan. Misalnya untuk orde 16 digunakan sampel sebanyak 16 buah sedangkan untuk orde 128 digunakan sampel sebanyak 128 buah.

Percobaan 4 : Percobaan m-file untuk melakukan pem-filter-an FIR

Pada percobaan 4 ini praktikan diminta untu membuat m-file untuk melakukan pem-filter-an saja, namun dengan ketentuan tidak diperbolekan untuk memanggil fungsi internal MATLAB. Kemudian hasil dari penggunaan m-file tersbut dibandingkan dengan hasil yang diperoleh apabila menggunakan fungsi filter yang telah ada pada MATLAB. Berikut merupakan hasil konvolusi sinyal input (sintot perc 1) dengan filter low-pass menggunakn fungsi filter yang telah ada pada MATLAB :

Gambar 12 Konvolusi sinyal total dcngan filter low-pass filter mengguanakan perintah filter dari MATLAB

Gambar 13 Frekuensi response sinyal hasil konvolusi mengguanakan perintah filter dari MATLAB

Kemudian hasil diatas selanjutnya akan dibandingkan dengan hasil konvolusi sinyal input dan filter yang sama namun dilakukan dengan m-file yang telah dibuat praktikan, yaitu sebagai berikut :

Gambar 14 Konvolusi sinyal total dengan filter low-pass filter menggunakan source code yang dibuat praktikan

Gambar 15 Frekuensi response sinyal hasil konvolusi menggunakan source code yang dibuat praktikan

Source code

function y=my_conv(x,h) (nama fungsi) (( inisialisasi ))

x2=h; (x2 di assign dengan filter

h)

lx=length(x); (length sinyal

input)

lh=length(h); (length filter h)

(( program utama yang melakukan proses konvolusi sinyal input (sintot) dengan filter low-pass)) (Membalik sinyal input)

if lx>lh

(9)

Laporan Praktikum - Laboratorium Dasar Teknik Elektro – STEI ITB 9 else x=[x zeros(1,lh-lx)]; end y=zeros(1,lx+lh-1); x=fliplr(x);

(Menjumlahkan sinyal input yang telah dibalik dengan filter lowpass)

for i=1:length(y) if i<=length(x) y(i)=sum(x(1,length(x )-i+1:length(x)).*x2(1,1:i)); else j=i-length(x); y(i)=sum(x(1,1:length(x )-j).*x2(1,j+1:length(x2))); end end

Penulisan barisan ekspresi dalam MATLAB command window biasanya dilakukan baris perbaris dan biasanya untuk menyimpan barisan perintah dan hasil outputnya dengan menggunkan command diary. Hal ini sangatlah tidak efisien dikarenakan barisan yang telah tersimpan di diary tidak dapat diloadkan kembali seandaianya telah keluar dari MATLAB. Apalagi jika dilakukan banyak sekali perulangan barisan perintah yang sama, misalkan dilakukan pengolahan data dan perhitungan yang samayang melibatkan data atau fungsi yang berbeda. Untuk itu MATLAB menyediakan suatu struktur untuk membuat fungsi anda sendiri atau suatu teknik pemrograman dalam bentuk M-File.

Fungsi M-file hampir sama dengan script file dimana keduanya merupakan suatu file teks dengan ekstensi .m. Fungsi M-file ini tidak dimasukkan dalam command window, melainkan suatu file tersendiri yang dibuat dalam editor teks (MATLAB editor/debugger). Suatu fungsi M-File harus mengikuti beberapa aturan, diantaranya : nama fungsi, baris komentar, serta argument input dan output.

Berdasarkan fungsi m-file tersebut, maka telah dibuat m-file untuk fungsi konvolusi yang telah dtuliskan diatas. Dari m-file tersebut kemudian fungsi dijalankan di MATLAB. Setelah output dicocokan dengan fungsi filter yang telah ada pada MATLAB, ternyata diperoleh hasil respons frekuensi yang sama sehingga dapat dipastikan fungsi m-file yang telah dibuat praktikan adalah benar.

5.

K

ESIMPULAN

Dari percobaan didapatkan kesimpulan :

 Perintah help dapat digunakan untuk mengetahui tentang penjelasan commands dan syntax dasar dari fungsi-fungi yang ada pada MATLAB.

 MATLAB dapa digunakan untuk melakukan desain filter suatu sinyal.  Pada MATLAB terdapat 2 jenis fungsi

filter yang dapat langsung digunakan, yaitu fir 1 dan fir 2. Keduanya sama-sama dapat digunakan untuk malakukan filter terhadap sinyal dengan variabel input berupa orde dan frekuensi cut off sinyal. Perbedaan kedua filter ini yaitu pada metode pem-filter-an yang digunakan. Dimana pada fir 1, metode pem-filter-an yang digunakan yaitu dengan window method sedangkan pada fir 2 digunakan metode dengan memanfaatkan frekuensi sampling.

 Fungsi-fungsi matematika sederhana juga dapat dilakukan pada MATLAB untuk menjumlahkan dua atau lebih sinyal.  Algoritma fungsi-fungsi tertentu dapat

dibuat dalam bentuk m-file pada MATLAB.

D

AFTAR

P

USTAKA

[1].

Mervin T Hutabarat,

Praktikum Elektronika II

Laboratorium

Dasar

Teknik

Elektro

ITB,Bandung, 2015.

[2].

Proakis, Jhon. Manolakis, Dimitris,

Digital Signal

Processing, principles, algoritm, and application

,

Prentice Hall, 1998

[3].

http://tribudi.lecturer.pens.ac.id/LN_DSP_Pra

k/prak_DSP_1.pdf

, 6.03, 22 September 2015

[4].

http://bima.lecturer.pens.ac.id/materi%20prakt

ikum%20dsp/ps5_fir.pdf

, 3.20, 23 September

2015

[5].

http://elista.akprind.ac.id/upload/files/1585_

Modul4.pdf

, 5.51, 23 September 2015.

(10)

Laporan Praktikum - Laboratorium Dasar Teknik Elektro – STEI ITB 1 0

LAMPIRAN

PERCOBAAN 1 i = 1:100 fs = 16000 f1 = 200 f2 = 1000 f3 = 5000 sin1 = sin(2*pi*i*(f1/fs)) sin2 = sin(2*pi*i*(f2/fs)) sin3 = sin(2*pi*i*(f3/fs)) sintot = (sin1+sin2+sin3)/3 figure (1);

subplot(2,1,1); plot(i,sin1); title('sin1') subplot(2,1,2); plot(i,sin2); title('sin2') figure (2);

subplot(2,1,1); plot(i,sin3); title('sin3') subplot(2,1,2); plot(i,sintot); title('sintot') freqz (sintot);

PERCOBAAN 2

LowPass = fir1(32,0.1); freqz(LowPass);

BandPass = fir1(32,[0.125 0.375],'bandpass'); freqz(BandPass); HighPass = fir1(32,0.75,'High'); freqz(HighPass); PERCOBAAN 3 f = [0 0.1 0.3 1]; m = [1 1 0 0]; lowpass = fir2(16,f,m); freqz(lowpass); lowpass = fir2(128,f,m); freqz(lowpass); PERCOBAAN 4 function y=my_conv(x,h) x2=h; lx=length(x); lh=length(h); if lx>lh x2=[x2 zeros(1,lx-lh)]; else x=[x zeros(1,lh-lx)]; end y=zeros(1,lx+lh-1); x=fliplr(x); for i=1:length(y) if i<=length(x)

y(i)=sum(x(1,length(x)-i+1:length(x)).*x2(1,1:i));

(11)

Laporan Praktikum - Laboratorium Dasar Teknik Elektro – STEI ITB 11

j=i-length(x);

y(i)=sum(x(1,1:length(x)-j).*x2(1,j+1:length(x2)));

end

Figur

Memperbarui...

Related subjects :