I.DASAR TEORI
1.1. Filter IIR
Yang 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. Dalam bentuk persamaan beda yang
menghubungkan input dengan output dinyatakan seperti persmaaan (1) berikut ini.
dimana:
- {b k } koefisien feed forward
- {a l } koefisien feed back
l =1
- banyaknya (total koefisien) = M+N+1
- N ditetapkan sebagai orde filter IIR
Untuk merealisasikan ke dalam sebuah program simulasi atau perangkat keras maka
bentuk persamaan diatas dapat disederhanakan ke dalam diagram blok Gambar 1.
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 pole-pole yang ada diluar lingkaran, hal ini secara fisis memberikan
arti bahwa filter yang dihasilkan tidak stabil.
Kita coba untuk merealisasikan dalam program Matlab secara sederhana dengan
melihat pada masing-masing kasus, dalam hal ini adalah low pass filter (LPF) dan high
pass filter (HPF).
Contoh 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)
Contoh 2:
Pada contoh kedua ini kita akan mencoba merancang sebuah filter IIR untuk high pass
filter (HPF). Tetap dengan frekuensi cut off 2000 Hz, dan frekuensi sampling 10000.
Langkah pemrogramanya adalah dengan sedikit memodifikasi bagian berikut.
[B,A] = butter(N,Wn,’high’);
Ini akan memberikan respon frekuensi seperti berikut.
Gambar 3. Respon Frekuensi Filter IIR, HPF
1.2. Filter FIR
Sebuah finite impulse respon filter (filter FIR) memiliki hubungan input dan output
dalam domain waktu diskrit sebagai berikut:
dimana:
-{b k }= koefisien feed forward
- banyaknya (total koefisien) L = M + 1
- M ditetapkan sebagai orde filter FIR
Dalam realisasi diagram blok akan dapat digambarkan seperti pada Gambar 4 berikut ini
Gambar 4. Diagram blok FIR Filter
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.
Contoh 3:
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:
fs=10000;
[x,fs]=wavread(’a.wav’);
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
Hasilnya adalah respon frekuensi seperti Gambar 5 berikut
Gambar 5. Respon Frekuensi Low Pass Filter
0 comments:
Post a Comment