Anda di halaman 1dari 4

MODUL 6 DESAIN DAN IMPLEMENTASI FILTER IIR

PADA BLACKFIN DSP

Muhammad Iqbal Fauzan Aulia (13217051)


Asisten: Ellert Bryant Prima Widison (13216015)
Tanggal Percobaan: 15/11/2019
EL3110 - Praktikum Pengolahan Sinyal Digital
Laboratorium Dasar Teknik Elektro - Sekolah Teknik Elektro dan Informatika ITB

Abstrak Dimana h(k) adalah respon impuls dari filter yang


secara teoritis memiliki durasi tidak terbatas, bk
Pada praktikum kali ini, akan dilakukan percobaan
dan ak adalah koefisien filter, serta x(n) dan y(n)
mengenai desain dan implementasi filter IIR pada Blackfin
adalah input dan output filter.
DSP. Praktikan akan mendesain dan
mengimplementasikan filter bandpass IIR dengan spesifikasi Fungsi transfer filter IIR adalah
tertentu. Hal yang diamati adalah perbandingan antara
sinyal input dan output pada domain waktu dan frekuensi.
Dapat diambil simpulan, mendesain filter IIR hampir sama
dengan mendesain FIR, hanya diperlukan beberapa fungsi
tambahan pada MATLAB; dan filter IIR dapat
digunakan untuk mendesain sinyal yang lebih rumit
daripada IIR.
Kata kunci: IIR Keluaran saat ini y(n) adalah fungsi dari keluaran
sebelumnya y(n-k), menunjukkan sistem memiliki
1. PENDAHULUAN umpan balik. Filter IIR memiliki kelebihan
fleksibilitas yang disediakan oleh pengaturan
1.1 LATAR BELAKANG umpan balik. Fungsi transfer dari filter IIR dapat
ditampilkan sebagai persamaan pole dan zero.
Pada praktikum kali ini, akan dilakukan desain
filter band-pass IIR menggunakan software Berikut ini contoh grafik respons impuls untuk
MATLAB dan Visual DSP++ serta filter bandpass IIR
mengimplementasikannya pada hardware
Blackfin. Pengamatan dilakukan pada aplikasi
Audacity.

1.2 TUJUAN PERCOBAAN


Percobaan ini bertujuan agar praktikan:
1. dapat mendesian serta memahami dan
mampu mengimplementasikan algoritma
filter IIR realtime pada DSP Blackfin
BF561EZ dan
2. memahami perbedaan filter IIR dan FIR.

2. STUDI PUSTAKA

2.1 FILTER IIR[1]


 ε2 : parameter passband ripple
Persamaan filter IIR dasar adalah sebagai berikut
 δp : deviasi passband
 δs : deviasi stopband
 fp1 and fp2 : frekuensi passband edge
 fp1 and fp2 : frekuensi stopband edge

1
Laporan Praktikum - Laboratorium Dasar Teknik Elektro – STEI ITB
 Ap : passband ripple = 10.log10(1+ ε2) = 4.1 DESAIN FILTER BANDPASS IIR
20.log10(1- δp)
Filter yang didesain memiliki passband frequency
 As : stopband attenuation = -20.log10(δp) 2000 Hz sampai 6000 Hz, atenuasi sebelum 400 Hz
dan setelah 14000 Hz minimal 20 dB, dan ripple
2.2 WHITE NOISE[2] passband maksimal 1 dB. Board DSP EZ-Lite Kit
BF-561 memiliki sampling rate 48000 Hz.
White noise adalah sinyal acak (random) dengan
spektrum daya flat. Artinya sinyal white noise Pada source code MATLAB (lampiran 1), pertama-
memiliki daya yang sama pada bandwidth yang tama digunakan fungsi [n,Wn] =
tetap pada setiap frekuensi tengah. White noise buttord(Wp,Ws,Rp,Rs) yang mengembalikan
merupakan nama yang diturunkan dari cahaya dua nilai:
putih yang spektrum daya dari cahayanya
n : orde terendah filter Butterworth digital
terdistribusi pada rentang band cahaya tampak.
Wn : frekuensi cutoff filter
Bandwidth dari white noise terbatas pada
dan dengan argumen-argumen:
prakteknya oleh mekanisme pembangkitan noise,
Wp : frekuensi sisi passband filter yang
media transmisi. Sinyal random dapat dikatakan
dinormalisasi antara 0 sampai 1 dengan 1
white noise jika memiliki spektrum yang flat pada
sebanding dengan π rad/sampel
bandwidth terlebar yang mungkin dapat
Ws : frekuensi sisi stopband filter yang
dilewatkan pada sebuah medium.
dinormalisasi
Rp : ripple passband maksimum
3. METODOLOGI
Rs : atenuasi minimum pada stopband
3.1 ALAT DAN KOMPONEN YANG Masukkan nilai-nilai tersebut ke dalam fungsi
DIGUNAKAN menjadi buttord([2000/24000 6000/24000],
[400/24000 4000/24000], 1, 20)
1. 1 unit komputer
menghasilkan n dan Wn. n dan Wn digunakan
2. Software MATLAB dan Visual DSP++ 5.0 sebagai argumen dalam fungsi [b,a] =
butter(n,Wn) yang menghasilkan b dan a yang
3. Kit Blackfin BF561EZ, adaptor, kabel RCA,
merupakan barisan dari pole dan zero fungsi
converter RCA, dan speaker aktif.
transfer. b dan a digunakan sebagai argumen dari
3.2 LANGAKAH KERJA fungsi impz untuk menghasilkan h sebagai
respons impuls (koefisien) filter. h kemudian
Berikut adalah langkah kerja yang dilakukan pada dikonversi dari bilangan real ke bilangan
praktikum kali ini. fraksional. Nilai h kemudian dimasukkan ke
dalam int filter[BUFFERLENGTH] = {…}
3.2.1 DESAIN FILTER BANDPASS IIR pada file Process_data.c di project VisualDSP++
yang sudah pernah digunakan pada modul-modul
sebelumnya (lampiran 2). Program Process_data.c
berisi algoritma untuk membuat filter digital
dengan memanfaatkan buffer sirkular.
Setelah project di build dan run, digunakan
Audacity untuk mengimplementasikan filter
dengan input sinyal white noise.

4. HASIL DAN ANALISIS Gambar 4- 1 tampilan sinyal input (white noise) domain
Berikut merupakan data hasil dan analisis waktu
percobaan.

2
Laporan Praktikum - Laboratorium Dasar Teknik Elektro – STEI ITB
Grafik respons frekuensi sinyal output
menunjukkan bahwa filter sudah berhasil didesain
dengan baik. Pada frekuensi passband 2000 - 6000
Hz, filter meloloskan sinyal yang memiliki
amplituda -20 dB dengan ripple yang sangat kecil
kurang dari 1 dB. Pada frekuensi yang lebih kecil
dari frekuensi sisi stopband 400 Hz, sinyal
memiliki amplituda kurang dari -42 dB yang
sudah memenuhi atenuasi 20 dB dari amplituda
maksimum sinyal. Sama halnya dengan sinyal
pada frekuensi yang lebih besar dari frekuensi sisi
stopband 14000 Hz yang memiliki atenuasi lebih
dari 20 dB.

5. SIMPULAN

Gambar 4- 2 tampilan sinyal input (white noise) domain Simpulan percobaan ini adalah sebagai berikut.
frekuensi 1. Cara mendesain filter IIR hampir sama
dengan mendesain filter FIR pada
percobaan-percobaan sebelumnya.
Perbedaannya hanya terdapat pada cara
mendapatkan koefisien filter pada MATLAB
yang memerlukan beberapa fungsi tambahan.
2. Filter IIR dapat digunakan untuk membuat
desain yang lebih rumit daripada filter FIR,
di mana pada percobaan ini selain dapat
ditenukan passband, juga dapat ditentukan
ripple passband maksimum dan ateuasi
minimum dari stopband.

DAFTAR PUSTAKA
Gambar 4- 3 tampilan sinyal output domain waktu
[1] http://psdsamodro.blogspot.com/2018/12/f
ilter-digital-infinite-impulse.html diakses 17
November 2019 pukul 20.28
[2] M. T. Hutabarat, dkk., Petunjuk Praktikum
Pengolahan Sinyal Digital, Laboratorium Dasar
Teknik Elektro, Institut Teknologi Bandung,
2019.

LAMPIRAN
1. Source code MATLAB desain filter IIR
[n,Wn] = buttord([2000/24000
6000/24000],[400/24000
14000/24000],1,20);
[b,a] = butter(n,Wn);
[h,t] = impz(b,a);
Gambar 4- 4 tampilan sinyal output domain frekuensi h = round(2^31*h);
fid = fopen('koef.dat','w+');
Analisis: count = fprintf(fid,'%d,',h);
fclose(fid);
Pada input digunakan sinyal white noise yang
terlihat memiliki spektrum daya flat yang ditandai 2. Source code program Talkthrough_TDM_C
dengan hampir samanya amplituda sinyal pada (Process_data.c)
semua frekuensi. Digunakan sinyal white noise #include "Talkthrough.h"
agar sinyal keluaran tepat menghasilkan bentuk #include "math.h"
dari respons frekuensi sistem yang diuji.
#define BUFFERLENGTH 82
3
Laporan Praktikum - Laboratorium Dasar Teknik Elektro – STEI ITB
int bufferLeft[BUFFERLENGTH], tempRight=0;
bufferRight[BUFFERLENGTH] = {0,0,0}; for (j = 0; j < BUFFERLENGTH; j++)
int tempLeft, tempRight = 0; {
int i,j=0; tempRight += (filter[j] >> 16) *
///////////////////////////////////// (bufferRight[(i + j) % BUFFERLENGTH]
///////////////////////// >> 15);
//Filter Coefficients (from MATLAB): }
int filter[BUFFERLENGTH] = //Output
{183804141,497553228,440145539,192486 iChannel0RightOut=tempRight;
50,-344239858,-480614045,-420416690,- /////////////////////////////////////
273124440,-132581063,- ////////////////////
40797154,3772771,21513718,31378189,42 //
484932,55216331,66098482,71998382,719 //decreasing i (circular)
24301,66815672,58486027,48672711,3858 /////////////////////////////////////
5687,28897978,19940905,11899321,49157 ////////////////////
36,-892040,-5454111,-8771025,- //
10916759,-12023369,-12257477,- i=(i+BUFFERLENGTH-1)%BUFFERLENGTH;
11798167,-10821050,-9488784,- /////////////////////////////////////
7946130,-6317434,-4705335,-3190269,- ////////////////////
1830851,- //
665209,286834,1020952,1545215,1876976 //channel1
,2039943,2061576,1970854,1796447,1565 /////////////////////////////////////
293,1301561,1025980,755479,503119,278 ////////////////////
227,86706,-68543,-187132,-270674,- //
322268,-346025,-346632,-328991,- /////////////////////////////////////
297911,-257880,-212898,-166371,- /////////////////
121060,-79074,-41901,- //Left
10457,14835,33962,47239,55218,58611,5 /////////////////////////////////////
8217,54864,49357,42444,34785,26939}; /////////////////
void Process_Data(void) iChannel1LeftOut = iChannel1LeftIn;
{ /////////////////////////////////////
/////////////////
///////////////////////////////////// //right
///////////////////////// /////////////////////////////////////
//channel0 /////////////////
///////////////////////////////////// iChannel1RightOut = iChannel1RightIn;
///////////////////////// }
/////////////////////////////////////
/////////////////
//Left
/////////////////////////////////////
/////////////////
//Buffering input
bufferLeft[i] = iChannel0LeftIn;
//convolution with circular buffer
tempLeft=0;
for (j = 0; j < BUFFERLENGTH; j++)
{
tempLeft += (filter[j] >> 16) *
(bufferLeft[(i + j) % BUFFERLENGTH]
>> 15);
}
//Output
iChannel0LeftOut = tempLeft;
/////////////////////////////////////
////////////////////
// //Right
/////////////////////////////////////
////////////////////
//
//Buffering input
bufferRight[i]= iChannel0RightIn;
//convolution with circular buffer
4
Laporan Praktikum - Laboratorium Dasar Teknik Elektro – STEI ITB

Anda mungkin juga menyukai