Вы находитесь на странице: 1из 11

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 lowpass, band-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.

untuk
membantu
user
dalam
menggunakan fungsi dan file MATLAB.

PENDAHULUAN

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

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 :

Kata kunci: MATLAB, filter FIR1, filter FIR2,


frequensi respons.
1.

2.

Mempelajari penggunaan system help


untuk mengetahui commands dan syntax
dasar MATLAB.

Dapat menggunakan
desain filter.

Mempelajari bagaimana menulis fungsi


dan m-file pada MATLAB.

Merancang
MATLAB.

Memahami pem-filter-an lewat MATLAB


secara mendalam.

MATLAB

pem-filter-an

FIR

untuk

dengan

STUDI PUSTAKA

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 .

Laporan Praktikum - Laboratorium Dasar Teknik Elektro STEI ITB

MATLAB bersifat extensible, dalam arti bahwa


seorang pengguna dapat menulis fungsi baru
untuk ditambahkan pada library ketika fungsifungsi 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=
126
521
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-starA .* 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 xy dan plot tiga dimensi, menayangkan 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

Laporan Praktikum - Laboratorium Dasar Teknik Elektro STEI ITB

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

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.

d.

KONSTRUKSI PEMROGRAMAN

MATLAB mendukung paradigma pemrograman


fungsional, di mana Anda dapat menyusun fungsifungsi 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 kodekode 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

MENULIS FUNGSI MATLAB

Kita dapat menulis fungsi sendiri dan kemudian


ditambahkan pada environment MATLAB. Fungsifungsi 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
aa = foo( (1:2:37), 7 );

Laporan Praktikum - Laboratorium Dasar Teknik Elektro STEI ITB

Outputnya akan berupa tujuh elemen terakhir dari


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

2.1

JUDUL SUB-BAB

Pada Marlab, direpresentasikan sinyal dalam vekor


(matriks 1 x N, N panjang vektor). Akan
direpresentasikan sumbu waktu dimana untuk
0<t<2, diberi panjang vektor 100 sampel dengan
perintah >>i = 1:100

Sub-bab pada percobaan ini, yaitu :

3.

Penguat kelas A

Penguat pushpull kelas B

Penguat pushpull kelas AB

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

METODOLOGI

Pada percobaan 1 ini, alat dan bahan yang


digunakan yaitu :
1.

1 unit computer

2.

Software MATLAB

Dijumlahkan ketiga sinyal tersebut menjadi satu


sinyal sinusoidal rusak dengan perintah >>sintot
= (sin1+sin2+sin3)/3;

Memulai percobaan

Pastikan komputer yang akan


digunakan berfungsi dengan normal
dan tidak ada masalah apapun.

Dicoba lot gambarnya dengan perintah >>plot


(sintot)

Software Matlab sudah terinstal


dalam komputer.

Dilihat juga respon frekuensinya dengan peritah


freqz.
2.

1.

Percobaan membuat sinyal input filter


berupa superposisi beberapa sonyal
sinusoid dengan frekuensi berbeda

Percobaan desain dan simulasi flter FIR 1

Dibuat beberapa filter dengan spesifikasi sebagai


berikut
a. Filter FIR low-pass orde 32 dengan frekuensi cutoff 800 Hz
b. Filter FIR band-pass orde 32 dengan frekuensi pass
1 - 3 kHz
c. Filter FIR high-pass orde 32 dengan frekuensi cutoff 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
frekuensi cut-off
3.

Percobaan desain dan simulasi filter FIR 2

Laporan Praktikum - Laboratorium Dasar Teknik Elektro STEI ITB

Gambar 1 Sinyal sinusoidal 1

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.

Sinyal kedua memiliki frekuensi 1 kHz, seperti


pada gambar berikut :
Gambar 2 Sinyal sinusoidal 2

Dilihat frekuensi respon filter dengan perintah


freqz. Digambarkan hasilnya. Dilakukan untuk
orde yang lebih besar misalnya 128.
Dibandingkan dengan hasil sebelumnya.
4.

Percobaan
membuat
m-file
melakukan pem-filter-an FIR.

untuk

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.

Yang terakhir yaitu sinyal ketiga yang memiliki


frekuensi sebesar 5 kHz.
Gambar 3 Sinyal sinusoidal 3

Mengakhiri Percobaan

Sebelum keluar dati ruang praktikum, dirapikan meja


praktikum dan dimatikan komuter dati jala-jala listrik.
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)

Dimatikan MCB dimeja praktikum sebelum


meninggalkan ruangan.

Diperiksa lembar penggunaan meja.

Dipastikan asisten telah menandatangani catatan


percobaan kali ini pada Buku Catatan Laboratorium.

4.

HASIL DAN ANALISIS

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 :

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

Laporan Praktikum - Laboratorium Dasar Teknik Elektro STEI ITB

Gambar 6 Respon frekuensi filter FIR low-pass

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

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

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

(pemberitan

judul

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

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 bandpass filter)
Dan yang terakhir yaitu pembuatan filter FIR highpass orde 32 (fc 6 kHz) dengan respons frekuensi
sebagai berikut :

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 :
Laporan Praktikum - Laboratorium Dasar Teknik Elektro STEI ITB

Gambar 8 Respon frekuensi filter FIR high-

filter high pas yaitu pada frekuensi antara 0.1250.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

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

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 lowpass filter dengan orde 16)

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

((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 lowpass filter dengan orde 128)
Pada MATLAB terlah disedakan fitur filter fir2().
Contohnya untuk perintah b = fir2(N,f,m)

Laporan Praktikum - Laboratorium Dasar Teknik Elektro STEI ITB

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.

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 mfile yang telah dibuat praktikan, yaitu sebagai
berikut :
Gambar 14 Konvolusi sinyal total dengan filter low-pass
filter menggunakan source code yang dibuat praktikan

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 15 Frekuensi response sinyal hasil konvolusi


menggunakan source code yang dibuat praktikan

Gambar 12 Konvolusi sinyal total dcngan filter low-pass


filter mengguanakan perintah filter dari MATLAB

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
x2=[x2 zeros(1,lx-lh)];
Laporan Praktikum - Laboratorium Dasar Teknik Elektro STEI ITB

5.

else
x=[x zeros(1,lh-lx)];

KESIMPULAN

Dari percobaan didapatkan kesimpulan :

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

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.

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.

DAFTAR PUSTAKA
[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.

Laporan Praktikum - Laboratorium Dasar Teknik Elektro STEI ITB

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));
else
Laporan Praktikum - Laboratorium Dasar Teknik Elektro STEI ITB

1
0

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

Laporan Praktikum - Laboratorium Dasar Teknik Elektro STEI ITB

11