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
Development
Environment,
yaitu
kumpulan semua alat-alat dan fasilitas
Graphics,
yaitu
fasilitas
untuk
menampilkan vector dan matriks sebagai
grafik.
2.
Dapat menggunakan
desain filter.
Merancang
MATLAB.
MATLAB
pem-filter-an
FIR
untuk
dengan
STUDI PUSTAKA
MATLAB HELP
Perkalian matriks
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
d.
KONSTRUKSI PEMROGRAMAN
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
2.1
JUDUL SUB-BAB
3.
Penguat kelas A
METODOLOGI
1 unit computer
2.
Software MATLAB
Memulai percobaan
1.
Percobaan
membuat
m-file
melakukan pem-filter-an FIR.
untuk
Mengakhiri Percobaan
4.
(( 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 :
(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 :
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
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)
((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)
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
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
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
MATLAB
dapa
digunakan
untuk
melakukan desain filter suatu sinyal.
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.
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
11