Anda di halaman 1dari 26

Moh.

Sahrul Iqbal Retno Endah Savitri Ahmad Juheri Syarifatul Ulya

Pendahuluan
Filter digital memiliki banyak kelebihan dibandingkan dengan pasangannya filter analog, baik dalam performa yang lebih tinggi dengan transition zone yang lebih kecil, ketahanan, serta fleksibilitas dalam menentukan range kerjanya (Smith, 1997: 327).

Terdapat dua metoda untuk mendisain sebuah filter digital.


Metoda pertama dengan menggunakan proses konvolusi antara sinyal input dengan impulse response dari filter yang dikehendaki, filter jenis ini disebut filter FIR (Finite Impulse Response). Metoda kedua adalah dengan proses rekursif, yang merupakan kelanjutan dari metoda konvolusi. Bila dalam proses konvolusi perhitungan dilakukan dengan hanya menggunakan sampel input saja, maka dalam proses rekursif perhitungan dilakukan dengan sampel input yang dijumlahkan dengan sampel output sebelumnya. Hal ini membuat impulse response filter menjadi sangat panjang mendekati titik tak berhingga (infinity), oleh karena itu filter jenis ini disebut filter IIR (Infinite Impulse Response).

Konsep IIR Filter


Filter IIR dari (Infinite Impulse Response) adalah salah satu tipe dari filter digital yang dipakai pada aplikasi Digital Signal Processing (DSP). Keuntungan filter IIR antara lain adalah membutuhkan koefesien yang lebih sedikit untuk respon frekuensi yang curam sehingga dapat mengurangi jumlah waktu komputasi. Fungsi transfer filter IIR adalah:

dimana: - H(z) merupakan fungsi transfer dari filter IIR - a1, a2,..., aN merupakan koefisien feed back dari filter IIR - b0, b1,...bN merupakan koefisien feed forwad dari filter IIR

Diagram blok untuk sebuah filter IIR dalam bentuk direct form II dapat digambarkan seperti berikut:

Proses pemfilteran pada sebuah sinyal akan mengikuti bentuk persamaan beda berikut ini.

Karena adanya proses feedback ini filter IIR juga dikenal sebagai recursive filter

Untuk mendesain filter dengan Matlab bisa dilakukan dengan dua cara yaitu dengan memanfaatkan visual desain FDA Tool ataupun dengan menulis m file. Tujuannya tetap sama yaitu mendapatkan koefisien filter b dan a (koefisien pembilang dan penyebut fungsi alih filter).
1. FDA Tool (Filter design and Analysis Tool) Tool ini adalah bagian dari signal processing toolbox yang memang dikhususkan untuk perancangan dan analisa suatu filter. FDATool berupa GUI yang memungkinkan kita untuk mendesain, memanggil dan menganalisis filter IIR maupun filter FIR. Untuk memanggil tool ini sangat mudah sekali yaitu dengan mengetikan pada command window matlab fdatool kemudian dieksekusi. 2. M-File Matlab menyediakan berbagai tool yang lengkap dalam desain filter digital maupun implementasi filter hasil rancangan tersebut untuk simulasi performa dari filter digital tersebut. Berikut beberapa syntax penting dalam mendesain filter IIR diantaranya besself, butter, cheby1, cheby2, ellip, maxflat dan yulewalk.

Ada dua bagian penting yang dimiliki oleh FDATool, yaitu :


Pada bagian pertama matlab menyediakan berbagai metode perancangan filter semisal Butterworth, Chebyshev, Elliptic, Equiripple, jendela Blackman, jendela Kaiser dan masih banyak lagi. Langkah pertama perancangan diawali dengan penentuan jenis filter berdasarkan frekuensi yang diloloskan, semisal bandpass. Setelah itu dilanjutkan dengan pemilihan tipe filter berdasarkan tangapan impulsnya, semisal IIR. Langkah berikutnya adalah menentukan metode perancangan yang akan digunakan, semisal penjendelaan Blackman, dan juga spesifikasi filter, yaitu frekuensi cut-off, lebar bidang lolos frekuensi dan stopband attenuation (redaman). Setelah selesai mendesain sebuah filter, maka akan dilanjutkan dengan bagian kedua, yaitu bagian analisis filter tersebut. Pada bagian ini matlab menyediakan berbagai fasilitas analisis, yaitu berupa informasi tanggapan magnitude, tanggapan fase, tanggapan impulse, gambar pole dan zero, serta informasi yang berupa nilai koefisien filter yang telah kita rancang.

Terdapat dua buah metoda untuk mendesain filter digital IIR, yaitu
Medota desain secara langsung (direct design) Medota design secara tidak langsung (indirect design). Proses direct design memerlukan perhitungan aproksimasi matematis dan akan membutuhkan pemakaian perhitungan differensial yang rumit untuk setiap nilai parameter dari tranfer function filter yang dikehendaki. Hal ini membuat persamaan matematis filter tersebut menjadi non-linier dan sukar di pecahkan. Untuk mendapatkan hasil perhitungan biasanya diperlukan bantuan algoritma metode numerik dengan komputer.

Metoda desain secara tak langsung relatif lebih sederhana dan lebih mudah dilakukan. Metoda ini terbagi dalam dua langkah utama, yaitu:
Mendisain secara matematis sebuah filter prototype berupa sebuah filter analog dengan spesifikasi yang diinginkan. Dari filter analog ini kemudian dicari persamaan transfer function analognya H(s). Tiga jenis filter analog yang bisa digunakan adalah butterworth, chebyshev dan elliptic Transfer function dari filter prototype kemudian ditranformasikan kedalam bentuk diskritnya. Proses transformasi ini dapat menggunakan beberapa macam metoda, seperti impulse-invariant dan bilinear transformation.

Beberapa Fungsi Dasar filter IIR


butter cheby1 cheby2 ellip yulewalk freqs freqz : Desain filter Butterworth : Desain filter Chebyshev tipe I : Desain filter Chebyshev tipe II : Desain filter Elliptik : Desain filter Yule-walk : Respon frekuensi analog : Respon frekuensi digital

1. Menggunakan filter analog untuk mendesain filter IIR menggunakan filter analaog digunakan fungsi-fungsi MATLAB sebagai berikut: Butterworth, Chebyshev tipe 1, chebyshev tipe 2, dan Elliptic. [b,a] = butter (N,Wn) [b,a] = cheby1 (N,Rp,Wn) [b,a] = cheby2 (N,Rs,Wn) [b,a] = ellip (N,Rp,Rs,Wn) Dengan nilai Wn : 0.0 < Wn <1.0, dimana 1.0 mennunjukkan setengah dari frekuensi sampling. Parameter Rp dan Rs menunjukkan ripple passband dan atenuasi stopband dalam dB berturut-turut. Fungsi-fungsi tersebut adalah filter lowpass.
Sedangkan untuk filter high pass, band pass, dan stop pass adalah sebagai berikut : [b,a] = BUTTER (N, Wn, high); digunakan untuk mendisain filter high-pass [b,a] = BUTTER (N, Wn) ; dengan Wn=[W1 W2] digunakan untuk mendesain filter band-pass [b,a] = BUTTER (N,Wn,stop); dengan Wn=[W1 W2] digunakan untuk mensiain filter band-stop

Langkah kedua mentranformasikan kedalam bentuk diskritnya. Proses transformasi ini dapat menggunakan beberapa macam metoda, seperti penempatan pole-zero, impulse invariant MZT (matchedz z-transform) dan bilinear z-transformation (BZT). 1. Menggunakan metode penempatan pole zero untuk mendesain filter IIR dengan menggunakan fungsi Zplane(pembilang,penyebut) Zplane(zero,pole) 2. Menggunakan metode penempatan pole zero untuk mendesain filter IIR dengan menggunakan fungsi : [b,a]=impinvar (pembilang,penyebut,FT) [b,a]=impinvar (pembilang,penyebut,FT,s) [b,a]=impinvar (pembilang,penyebut) [b,a]=impinvar (pembilang,penyebut,s)

3. Menggunakan metode BZT. Perlu diperhatikan bahwa ketika kita menggunakan metode BZT, kita harus mencari orde filter yang digunakan. Fungsi matlab untuk mencari orde filter : [N,Wn]= buttord(Wp,Ws,Rp,Rs) [N,Wn]= cheb1ord(Wp,Ws,Rp,Rs) [N,Wn]= cheb2ord(Wp,Ws,Rp,Rs) [N,Wn]= ellipord(Wp,Ws,Rp,Rs) [N,Wn]= buttord(Wp,Ws,Rp,Rs,s) [N,Wn]= cheb1ord(Wp,Ws,Rp,Rs,s) [N,Wn]= cheb2ord(Wp,Ws,Rp,Rs,s) [N,Wn]= ellipord(Wp,Ws,Rp,Rs,s)

Dengan s berarti rrentang Wp dan Ws tidak perlu dalam rentang 0 dan 1.

Contoh Desain filter lowpass dengan frekuensi cut off 5 kHz pada fekuensi sampling sebesar 16 kHz. Tentukan nilai koefisiennya Jawab: Diketahui frekuensi sampling filter = 16 kHz Setengah dari frekuensi sampling filter = 8 kHz Frekuensi cut off filter = 5 kHz Nilai wn sebagai frekuensi cut off bernilai = (5 kHz / 8 kHz) = 0,625 Dirancang filter low pass IIR orde 2, orde 10, dan orde 15 sebagai perbandingan [a,b]=butter(orde,frekuensi_cut_off);

Dengan menggunakan m-file


f=8; n1=2; n2=10; n3=15; wn=0.625; [a1,b1]=butter (n1,wn); [a2,b2]=butter (n2,wn); [a3,b3]=butter (n3,wn); [h1,w1]=freqz(a1,b1,1024); [h2,w2]=freqz(a2,b2,1024); [h3,w3]=freqz(a3,b3,1024); %plot ((w*f)/pi,20*log(abs(h))); plot ((w1*f)/pi,(abs(h1)),'k',(w2*f)/pi,(abs(h2)),'b',(w3*f)/pi,(abs(h3)),'k'); grid on;

Dari Gambar di atas, semakin besar ordenya, maka filter lowpass IIR semakin curam/mendekati ideal.

Contoh mendesain filter lowpass dengan metode pole zero


Dengan frekuensi pusat passband adalah 100 Hz dengan bandwidth 200 Hz dan stopband pada frekuensi 300 Hz. Frekuensi sampling dianggap 100 Hz Untuk penempatan zero adalah pada frekuensi 300 Hz dan 500 Hz, yaitu pada posisi (300/1000)x360o = 108o dan penempatan pole pada posisi 100 Hz, yaitu pada posisi (100/1000)x360o = 36o

Program pada matlab


% menentukan fungsi alih filter IIR % dengan metode penempatan pole-zero fs=input ('Masukan frekuensi sampling = '); theta_p=input ('Masukan vektor sudut frekuensi unyuk diletakan pole (derajat) = '); theta_z=input ('Masukan vektor sudut frekuensi unyuk diletakan zero (derajat) = '); BW= input ('Masukan bandwidth = '); theta_p = theta_p/180*pi; theta_z = theta_z/180*pi; r_pole = 1-((BW/fs)*pi); r_zero = 1; pembilang = poly(r_zero*exp(j*theta_z)) penyebut = poly(r_pole*exp(j*theta_p)) figure (1) zplane(pembilang,penyebut) figure (2) [H,omega] = freqz (pembilang,penyebut,512); mag = 20*log10(abs(H)); plot (omega/pi,mag) xlabel ('frekuensi normalisasi') ylabel ('gain,dB')

Pada program didapat hasil pembilang = 1.0000 0.6180 1.0000

penyebut =
1.0000 -0.6014 0.1381

Contoh program menentukan respon frekuensi dengan metode impulse invariant N=input('Masukan orde filter= '); fc=input('Masukan frekuensi cut-off = '); Wn=2*pi*fc; [a,b]=butter(N,Wn,'s'); FT=input('Masukan frekuensi sampling= '); [B,A]=impinvar(a,b,FT); [H,omega]=freqz(A,B,512); mag=20*log10(abs(H)); disp('Pembilang= ');disp(B) disp('Penyebut= ');disp(A) plot(omega/pi,mag) xlabel('frekuensi normalisasi') ylabel('gain,dB') Dengan memasukan nilai nilai N =2 Fc = 150 FT = 1280 Diperoleh :

Pembilang= 0 0.3078 0 Penyebut= 1.0000 -1.0308 0.3530 Plot respon frekuensinya

Program untuk menentukan orde filter dan koefisien, serta plot respons frekuensi dengan metode BZT FT = input('Masukan frekuensi sampling = '); Fp = input('Masukan frekuensi batas passband (Hz) = '); Fs = input ('Masukan frekuensi batas stopband (Hz) = '); Rp = input ('Massukan ripple passband (dB) = '); Rs = input ('Masukan atenuasi stopband (dB) = '); Wp = Fp/(0.5*FT); Ws = Fs/(0.5*FT); [N,Wn]= buttord(Wp,Ws,Rp,Rs); [b,a]= butter(N,Wp); [B,A]= freqz(b,a,512); mag = 20*log10(abs(B)); disp ('orde filter = '); disp(N) disp ('koefisien pembilang = '); disp (b) disp ('koefisien penyebut = '); disp(a) plot (A/pi,mag) xlabel ('frekuensi normalisasi') ylabel ('gain, dB')

Semisal dengan memasukan nilai nilai berikut, FT = 8000 Fp = 500 Fs = 2000 Rp = 3 Rs = 30 Maka diperoleh : orde filter = 3 koefisien pembilang = 0.0053 0.0159 0.0159 0.0053 koefisien penyebut = 1.0000 -2.2192 1.7151 -0.4535

Dengan plot respon frekuensi

TERIMA KASIH