penerapan filter digital iir (infinite impulse respon

Upload: ahmad-juheri

Post on 02-Mar-2016

633 views

Category:

Documents


30 download

DESCRIPTION

pengolahan sinyal

TRANSCRIPT

  • Moh. Sahrul Iqbal Retno Endah SavitriAhmad JuheriSyarifatul Ulya

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

    Pendahuluan

  • 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 IIRa1, a2,..., aN merupakan koefisien feed back dari filter IIRb0, 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: Desain filter Butterworthcheby1: Desain filter Chebyshev tipe Icheby2: Desain filter Chebyshev tipe IIellip: Desain filter Elliptikyulewalk: Desain filter Yule-walkfreqs: Respon frekuensi analogfreqz: Respon frekuensi digital

  • Menggunakan filter analoguntuk 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

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

    Menggunakan metode penempatan pole zero untuk mendesain filter IIR dengan menggunakan fungsiZplane(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]= buttord(Wp,Ws,Rp,Rs,s)[N,Wn]= cheb1ord(Wp,Ws,Rp,Rs) [N,Wn]= cheb1ord(Wp,Ws,Rp,Rs,s)[N,Wn]= cheb2ord(Wp,Ws,Rp,Rs) [N,Wn]= cheb2ord(Wp,Ws,Rp,Rs,s)[N,Wn]= ellipord(Wp,Ws,Rp,Rs) [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-zerofs=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 hasilpembilang =

    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 nilaiN = 2Fc = 150FT = 1280Diperoleh :

  • Pembilang= 0 0.3078 0Penyebut= 1.0000 -1.0308 0.3530Plot 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 = 8000Fp = 500Fs = 2000Rp = 3Rs = 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