BAB VI FILTER DIGITAL
Filter atau tapis adalah suatu sistem yang berfungsi untuk menyaring sinyal, sebagian sinyal akan dibiarkan lewat, sebagian yang lain akan akan ditahan. Filter yang sering digunakan adalah filter untuk menyaring sinyal berdasarkan frekuensi sinyal, artinya sinyal dengan frekuensi tertentu akan dibiarkan lewat, sinyal frekuensi yang lain akan ditahan. Berdasarkan sinyal yang diproses, filter dibagi menjadi dua, yaitu filter analog dan filter digital.
Secara umum, filter digital adalah sama dengan filter analog, hanya saja sinyal input dan sinyal outputnya adalah sinyal digital. Oleh karena itu, komponen-komponen filter digital tidak terdiri dari R, L, C atau gabungannya, tetapi terdiri dari penjumlah (adder), pengali (multiplier), dan elemen tunda (delay element) atau gabungannya.
Gambar 6.1. Contoh filter analog (atas) dan filter digital (bawah) z-1
x(n)
y(n)
b
Secara garis besar, ada dua macam filter digital, yaitu filter IIR (Infinite Impulse Response) dan filter FIR (Finite Impulse Response). Filter FIR adalah sistem yang murni umpan maju (feed-forward), stabil, strukturnya sederhana dan fasenya linier. Sedangkan filter IIR dapat berupa sistem umpan maju atau umpan balik (feedback). Tidak seperti FIR, filter IIR mempunyai fase yang tidak linier dan mempunyai potensi untuk tidak stabil. Kelebihan IIR adalah pelemahan (attenuation) yang tinggi untuk orde yang lebih rendah, bila dibanding dengan FIR.
Gambar 6.2. Filter IIR (atas) filter FIR (bawah)
Gambar 6.3. Contoh respon frekuensi filter IIR (atas) dan z-1 x(n) y(n) b a z-1 x(n) b1 b2 y(n)
A. Filter IIR (Infinite Impulse Response Filter)
Suatu filter IIR adalah sistem yang mempunyai tanggapan terhadap impuls satuan (unit impulse) dengan panjang tak terhingga. Dengan kata lain, ketika filter tersebut diberi masukan berupa impuls (impulse), keluarannya terus ada sampai waktu mendekati tak hingga.
Desain filter IIR ada dua cara, yaitu user defined dan filter klasik. Cara pertama dinyatakan dengan transfer function, distribusi pole dan zero atau dengan variabel state. Cara kedua didasarkan kepada model filter analog, kemudian dengan transformasi tertentu diubah menjadi filter digital. Cara pertama disebut cara langsung dan yang kedua disebut sebagai cara tak langsung. Dan karena cara pertama secara matematis terlalu rumit untuk buku ini, dan masih memiliki potensi tidak stabil, maka pada buku ini hanya akan dibahas cara kedua saja.
Untuk merealisasikan suatu filter digital sederhana, suatu model filter waktu kontinyu H(s) harus diubah menjadi model waktu diskrit H(z). Metode untuk memetakan transfer function waktu kontinyu ke transfer function waktu diskrit menjadi penting. Salah satu metode untuk hal ini adalah transformasi Bilinear. Transformasi ini mengubah variabel s menjadi variabel z, dengan rumus: 1 z 1 z f 2 1 z 1 z T 2 s s (6.1)
dengan T adalah periode pencuplikan dan fs adalah frekuensi
pencuplikan.
Transformasi Bilinear ini sifatnya tidak linier, sehingga dapat menghasilkan distorsi berupa pergeseran frekuensi cut-off dari frekuensi yang dikehendaki semula. Untuk menghindari hal ini, diperlukan suatu prewarping (pembengkokan awal) sebelum pelaksanaan transformasi Bilinear. Proses prewaping berarti mendesain frekuensi cut-off filter analog sedemikian rupa sehingga frekuensi cut-off filter digital, c, sama dengan frekuensi cut-off
filter analog, cT : 2 tan f 2 2 tan T 2 c s c p (6.2)
Secara umum, perancangan filter IIR dengan metode ini terdiri dari enam tahap:
1. Penetapan spesifikasi filter digital yang dikehendaki
2. Prewarp frekuensi digital ke frekuensi analog (hal ini khusus bila menggunakan transformasi bilinear).
3. Perancangan filter prototype analog, dalam hal ini adalah penetapan ordenya
4. Perancangan filter analog menggunakan transformasi frekuensi ke frekuensi
5. Perancangan filter digital dengan mentransformasikan dari domain-s ke domain-z, dalam hal ini menggunakan tranformasi bilinear
6. Implementasi filter digital pada perangkat keras atau perangkat lunak
Berikut akan dijelaskan tentang masing-masing tahap secara lebih terperinci.
Tahap pertama adalah tahap penetapan spesifikasi filter digital. Penetapan yang dimaksud meliputi penetapan tipe filter (lowpass, highpass dan sebagainya), penetapan frekuensi cut-off, penetapan frekuensi cuplik, penetapan kemiringan transition band, toleransi passband dan toleransi stopband.
Tahap kedua adalah tahap penghitungan frekuensi hasil prewarping. Akan tetapi, hal ini khusus bila menggunakan transformasi bilinear dalam mengubah sinyal analog menjadi sinyal digital. Bila menggunakan transformasi lain, tahap ini tidak perlu dilaksanakan.
Tahap ketiga adalah perancangan prototype filter analog. Pada tahap ini dipilih pendekatan filter analog yang akan dipakai, misalnya Butterworth, Chebyshev, Elliptic atau Bessel. Dengan beberapa pertimbangan, yang akan dibahas di buku ini hanya pendekatan Butterworth saja. Kemudian dihitung orde filter yang diperlukan untuk pendekatan yang dipilih. Rumus untuk menghitung orde filter prototype dengan pendekatan Butterworth adalah sebagai berikut:
1/k log 2 / 1 A log N 2 2 (6.3)Adapun untuk k, berbeda-beda tergantung jenis filternya. Untuk filter lowpass, k = c/s
Gambar 6.4. Respon frekuensi filter lowpass tipe Butterworth
Untuk filter highpass, k = s/c.
Gambar 6.5. Respon frekuensi filter highpass tipe Butterworth passband stopband transition band c s 1/(1- 2 ) 1,0 1/A2 passband stopband transition band s c 1/(1- 2 ) 1,0 1/A2
Untuk filter bandpass,
2 c 1 c 2 s 1 s 2 c 1 c 2 2 s 1 c 2 c 1 c 2 c 2 s 2 c 1 c 2 s 1 s 2 c 1 c 2 1 s 1 c 2 c 1 c 2 c 1 s jika 1 jika 1 kGambar 6.6. Respon frekuensi filter bandpass tipe Butterworth
Untuk filter bandstop :
2 c 1 c 2 s 1 s 1 c 2 c 1 c 2 c 2 s 2 c 1 c 2 2 s 2 c 1 c 2 s 1 s 1 c 2 c 1 c 2 c 1 s 2 c 1 c 2 1 s jika 1 jika 1 k stopband passband stopband transition band s1 c1 c2 s2 1/(1- 2 ) 1,0 1/A2Gambar 6.7. Respon frekuensi filter bandstop tipe Butterworth
Setelah orde filter prototype diketahui, akan didapatkan transfer function untuk filter tersebut sesuai pendekatan yang dipilih. Adapun transfer function untuk filter prototype tipe Butterworth pada beberapa orde dapat dilihat pada tabel berikut:
Tabel 6.1. Transfer Function filter prototype tipe Butterworth
Orde Transfer function filter prototype
1 1 s 1 2 1 s 414 , 1 s 1 2 3 1 s 2 s 2 s 1 2 3 4 1 s 6131 , 2 s 4142 , 3 s 6131 , 2 s 1 2 3 4
Tahap keempat adalah tahap transformasi frekuensi, dari filter prototype ke filter yang dikehendaki. Filter prototype adalah filter lowpass dengan frekuensi cut-off 1 radian/detik. Rumus transformasi frekuensi dapat dilihat pada tabel berikut:
passband stopband transition band c1 s1 s2 c2 1/(1- 2 ) 1,0 1/A2 passband
Tabel 6.2 Transformasi Frekuensi pada filter analog Prototype orde n Transformasi frekuensi Orde Lowpass ke lowpass 0 s s n Lowpass ke highpass s s0 n Lowpass ke bandpass
1 2 2 1 2 s s s 2n Lowpass ke bandstop
2 1 2 1 2 s s s 2nTahap kelima yaitu tahap transformasi domain s ke domain z, dalam hal ini penerapan transformasi Bilinear. Sebenarnya ada metode lain yang dapat dipakai pada tahap ini, seperti Impulse Invariance dan Matched-Z Transformation, tetapi pada buku ini hanya akan dibatasi pada penggunaan transformasi Bilinear.
Tahap keenam adalah tahap implementasi. Pembahasan tentang ini, khususnya yang mendasari penggunaan perangkat lunak dan perangkat keras, akan dilakukan secara lebih rinci pada sub bab C, tentang implementasi filter.
Contoh 6.1:
Rancanglah suatu filter digital IIR, berbasis filter analog tipe Butterworth yang memiliki spesifikasi:
Pelemahan maksimum passband : 3 dB
(= penguatan 0,707 kali)
Jangkauan frekuensi passband : 0 – 1 kHz
Jangkauan frekuensi stopband : 2 – 5 kHz
Pelemahan stopband minimum : 9 dB
(= pelemahan 2,818 kali)
Frekuensi pencuplikan : 10 kHz
Jawab:
Langkah pertama adalah prewarping frekuensi analog yang ditentukan oleh: 20000 1000 2 tan 20000 2 T tan T 2 c pp = 6498,4 radian/detik = 1034,5 Hz 20000 2000 . 2 tan 20000 2 T tan T 2 c ps = 14531 radian/detik = 2312 Hz
dimana pp = frekuensi passband hasil prewarping
ps = frekuensi stopband hasil prewarping
Dari sini, orde dari prototype filter analog tipe Butterworth dapat dihitung dengan:
1,63574 2 2312 / 5 , 1034 1 log 2 707 , 0 1 818 , 2 log k / 1 log 2 / 1 A log N 2 2 2 2 Perlu diketahui bahwa orde filter adalah bilangan bulat, sehingga meskipun hasil perhitungan berupa pecahan, akan selalu dibulatkan ke atas. Pembulatan semacam ini bisa jadi membuat filter hasil desain tidak sesuai spesifikasi yang diinginkan, tetapi secara umum lebih baik dari spesifikasi tersebut.
Model prototipe Butterworth orde dua dapat dilihat pada Tabel 6.2, yaitu diberikan oleh persamaan:
1 s 414 , 1 s 1 ) s ( H 2
Penerapan transformasi frekuensi lowpass ke lowpass (lihat Tabel 6.2) yaitu dengan mengubah setiap variabel s menjadi s/6498,4 sehingga menghasilkan model analog orde dua:
1 4 , 6498 s 414 , 1 4 , 6498 s 1 ) s ( H 2
2 2 2 4 , 6498 4 , 6498 s 4 , 6498 414 , 1 s 1 ) s ( H 7 3 2 7 10 . 23 , 4 s 10 . 2 , 9 s 10 . 23 , 4 ) s ( H Akhirnya, penerapan transformasi Bilinear menghasilkan filter digital: 7 4 3 2 4 7 10 . 23 , 4 1 z 1 z 10 . 2 10 . 2 , 9 1 z 1 z 10 . 2 10 . 23 , 4 ) z ( H
z 2z 1
18,4.10
z 1
4,23.10
z 2z 1
10 . 4 1 z 2 z 10 . 23 , 4 ) z ( H 8 2 7 2 7 2 2 7
7 2
7
7 2 7 10 . 23 , 4 4 , 18 40 z 10 . 46 , 8 80 z 10 . 23 , 4 4 , 18 40 1 z 2 z 10 . 23 , 4 ) z ( H 412 , 0 z 142 , 1 z 1 z 2 z 0676 , 0 ) z ( H 2 2 0 500 1000 1500 2000 2500 3000 3500 4000 4500 5000 0 0.2 0.4 0.6 0.8 1 1.2 1.4 frekuensi (Hz) |H (z )|
Gambar 6.8. Tampilan magnitude filter analog
Dari gambar di atas, terlihat bahwa hasil rancangan memiliki spesifikasi yang lebih baik dari yang diminta, yaitu pada bagian stopband. Untuk frekuensi 2 kHz pelemahan minimal yang diminta adalah 9 dB, ternyata pada hasil rancangan telah mencapai 0,2 (14 dB), sementara pelemahan 9 dB telah terjadi pada frekuensi sekitar 1500 Hz. Perbaikan ini disebabkan oleh adanya faktor pembulatan orde filter.
Contoh 6.2:
Dengan menggunakan Matlab, rancanglah suatu filter IIR tipe low-pass orde 3 dengan pendekatan Butterworth. Frekuensi cut-off 5 Hz, dengan frekuensi sampling 50 Hz.
Jawab:
% program untuk contoh 6.2
[z,p,k] = buttap(3); % filter orde 3 [num,den] = zp2tf(z,p,k);
fc = 5; % frek cut-off dalam Hz
wc = 2*pi*fc; % frek cut-off dalam rad/detik –3 dB
–9 dB 0 dB
[n1,d1] = lp2lp(num,den,wc); fs = 50; % frekuensi sampling (Hz) points = 512; [nd,dd] = bilinear(n1,d1,fs); [h,w] = freqz(nd,dd,points,fs); [h3,w] = freqz(0.707,1,points,fs); subplot(121); plot(w,h3,'k',w,abs(h),'k'), grid; xlabel('frekuensi (Hz)'); ylabel('magnitude');
title('Diagram Bode Filter'); % *** tampilan dalam semilog *** mag = 20*log10(abs(h)); m3 = 20*log10(abs(h3)); subplot(122); semilogx(w,m3,'k',w,mag,'k'), grid; xlabel('frekuensi (Hz)'); ylabel('magnitude (dB)'); title('Diagram Bode Filter');
Gambar 6.9. Respon frekuensi Contoh 6.2
B. Filter FIR (Finite Impulse Response Filter)
lain, ketika filter tersebut diberi masukan berupa impuls (impulse), keluarannya hanya ada sampai waktu tertentu. Hal ini terjadi karena keluaran filter tersebut sengaja dibatasi sampai waktu tertentu saja.
Suatu filter FIR dapat didesain dengan memotong tanggapan impuls dari suatu filter IIR. Bila h(n) adalah tanggapan impuls dari karakteristik filter IIR H(), maka tanggapan impuls dari filter FIR :
lainnya n 1 -N n 0 , 0 ), n ( h n hd (6.4)dengan N adalah panjang filter atau orde filter.
Fungsi alih z dan tanggapan frekuensi dari filter FIR diberikan oleh:
N 1 0 n n d d z h n z H (6.5)
N1 0 n jn d d h n e H (6.6)Idealnya, Hd() harus mendekati hasil Transformasi Fourier
Waktu Diskrit dari h(n), atau Hd() H(). Pemotongan h(n)
menyebabkan terjadinya perubahan pada tanggapan frekuensinya. Salah satu perubahan tersebut adalah timbulnya riak (ripple) pada gambar magnitude-nya. Untuk menghindari timbulnya riak tersebut, dapat dilakukan dengan memperbesar nilai N. Akan tetapi dari sisi praktis, filter yang seperti itu sulit diwujudkan karena waktu tundanya menjadi sangat besar.
(a) (b)
Gambar 6.10. (a) Tanggapan frekuensi filter lowpass ideal (b) Tanggapan frekuensi filter lowpass riil
- -c 0 c |Hd( )| |H() | - -c c
Masalah yang penting pada desain filter FIR adalah fase yang linier. Seperti telah disinggung sebelumnya, fase yang linier terkait dengan waktu tunda pada keluaran filter, sementara fase tak linier menyebabkan distorsi pada sinyal. Suatu filter Hd() akan
mempunyai fase linier jika mempunyai tanggapan impuls yang simetri genap, atau :
hd(n) = hd(2m – n)
dimana m adalah bilangan genap, atau dengan kata lain panjang filter adalah :
N = 2m + 1 dengan m adalah bilangan genap.
Perancangan filter FIR untuk mendapatkan fase linier ada beberapa metode, antara lain metode Windowing, metode Frekuensi Cuplik (Frequency-Sampling Method), dan metode pendekatan Chebyshev. Pada pembahasan ini hanya akan diuraikan metode Windowing. Metode ini termasuk metode yang sederhana, meskipun kurang presisi. Metode Windowing dilaksanakan melalui tahap-tahap berikut:
1. Penetapan filter ideal dengan spesifikasi filter yang dikehendaki 2. Mencari tanggapan impuls dari filter tersebut dengan memakai
IDTFT (Invers Discrete Time Fourier Transform) :
H e d 2 1 n h j n (6.7)Pada prakteknya, untuk filter lowpass langsung menggunakan rumus:
0 n , 0 n , n n sin n h c C (6.8)sedangkan untuk jenis lain (highpass, bandpass dan bandstop) dengan melakukan manipulasi terhadap rumus di atas.
3. Memotong tanggapan impuls dari filter, sesuai orde filter yang dikehendaki, misal orde = N
5. Pemilihan dan penerapan windowing, sesuai tipe window yang dikehendaki
6. Implementasi filter FIR Contoh 6.3:
Rancanglah suatu filter low-pass FIR dengan frekuensi cut-off pada c = 0,4 dan orde filter = 21. Gunakan windows jenis
rectangular. Jawab:
Respon frekuensi dari filter ideal tersebut adalah seperti Gambar 6.4. Respon impuls dari filter di atas dapat dicari dengan rumus:
0 n , 0 n , n n sin n h c C (6.9)|H()|
- -0,4 0 0,4 G
Gambar 6.11 Respon frekuensi filter ideal
-50 -40 -30 -20 -10 0 10 20 30 40 50 -0.04 -0.02 0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 n h (n )
Gambar 6.12. Respon impuls filter ideal (ditampilkan sebagian)
Respon impuls dari filter ideal menunjukkan bahwa filter tersebut panjangnya dua kali tak terhingga, juga adalah filter non kausal, sehingga tidak dapat direalisasikan dalam sistem waktu nyata. Oleh karena itu filter tersebut perlu dibuat menjadi filter yang panjangnya terhingga dan kausal, dengan cara dipotong, misal sepanjang 21 cuplikan, kemudian digeser 10 cuplikan ke kanan, atau dapat dihitung dengan rumus:
10 n 10 n 4 , 0 sin n hd , untuk n = 0, 1, 2, ... 20, dan
0,4 n hd , khusus untuk n = 10 sehingga didapat hd(n) = {-0.0241 -0.0157 -0.0023 0.0152 0.0358 0.0579 0.0795 0.0989 0.1142 0.1240 0.1273 0.1240 0.1142 0.0989 0.0795 0.0579 0.0358 0.0152 -0.0023 -0.0157 -0.0241} Transformasi-z dari filter diatas didapat dari rumus berikut:
20 0 n n d d z h n z H didapat Hd(z) = {– 0.0241 – 0.0157z -1 – 0.0023z -2 + 0.0152z -3 + 0.0358z – 4 + 0.0579z -5 + 0.0795z -6 + 0.0989z -7 + 0.1142z -8 + 0.1240z -9 + 0.1273z -10 + 0.1240z -11 + 0.1142z -12 + 0.0989z -13 + 0.0795z -14 + 0.0579z -15 + 0.0358z -16 + 0.0152z -17 – 0.0023z -18 – 0.0157z -19 – 0.0241z -20}.Gambar 6.13. Respon impuls filter, untuk N = 21 dan digeser 10 sampel ke kanan
0 2 4 6 8 10 12 14 16 18 20 -0.04 -0.02 0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 n h (n )
Sedangkan respon frekuensi filter di atas didapat dari rumus:
20 0 n jn d d h n e H (6.10)Tampilan respon frekuensi untuk filter kausal ini dapat dilihat pada gambar di bawah ini.
Gambar 6.14. Respon frekuensi filter untuk N = 21
Dari gambar di atas, terlihat bahwa respon frekuensi pada bagian stopband terdapat semacam riak (ripple). Hal ini tentu berbeda jauh dengan respon frekuensi filter ideal (lihat Gambar 6.4). Untuk menekan semacam riak tersebut, digunakan teknik windowing, yang akan dibahas pada sub sub bab 4.
Masalah desain filter FIR yang belum dibahas adalah tentang desain filter selain jenis lowpass. Berikut ini akan dibahas satu per satu, yaitu highpass, bandpass dan bandstop. Pembahasan berikut berdasarkan manipulasi terhadap desain filter lowpass.
-4 -3 -2 -1 0 1 2 3 4 0 0.2 0.4 0.6 0.8 1 1.2 1.4 |H | frekuensi
1. Desain Filter Highpass
Desain filter highpass dilakukan dengan memanfaatkan apa yang disebut filter allpass. Respon frekuensi filter allpass adalah seperti gambar di bawah ini:
Gambar 6.15. Respon frekuensi filter allpass
Dengan memperhatikan gambar di atas, desain filter highpass dilakukan dengan filter allpass dikurangi filter lowpass, seperti gambar berikut:
filter allpass
filter lowpass
filter highpass
Gambar 6.16. Ilustrasi desain filter FIR jenis highpass
Persamaan untuk mendapatkan tanggapan impuls untuk filter highpass adalah:
m n untuk 1 m n untuk m n m n sin m n sin n h C C d (6.11) -π π -Ωc Ωc -Ωc Ωc -π π2. Desain Filter Bandpass
Desain filter bandpass dilakukan dengan mendesain filter lowpass dikurangi filter lowpass lainnya
filter lowpass1
filter lowpass2
filter bandpass
Gambar 6.17. Ilustrasi desain filter FIR jenis bandpass
Persamaan untuk mendapatkan tanggapan impuls untuk filter bandpass adalah:
m n untuk , m n untuk , m n m n sin m n sin n h CL CH CL CH d (6.12)3. Desain Filter Bandstop
Desain filter bandstop dilakukan dengan mendesain filter allpass dikurangi filter lowpass ditambah filter lowpass lain.
CL CH CL CH d 1 m n m n sin m n sin m n sin n h (6.13) -π -ΩcH ΩcH π -ΩcL ΩcL -π -ΩcH -ΩcL ΩcL ΩcH πGambar 6.18. Ilustrasi desain filter FIR jenis bandstop
Contoh 6.4:
Dengan Matlab, desain suatu filter FIR tipe lowpass dengan frekuensi cut-off 0,5. Tampilkan bagian magnitude dan sudut fase dalam dua gambar terpisah.
Jawab:
% *** filter FIR ***
N = 31; % orde filter
omegac = 0.5; % frekuensi cutoff digital m = (N-1)/2; % penggeseran fase
n = 0:2*m+10; % penetapan titik untuk plot h = omegac/pi * sinc(omegac*(n-m)/pi);
w = [ones(1,N) zeros(1, length(n)-N)]; % window hd = h .* w; [Hd, omega1] = freqz(hd, 1); -π -ΩcH ΩcH π -π π -ΩcL ΩcL -π π -π -ΩcH -ΩcL ΩcL ΩcH π filter allpass filter highpass filter lowpass2 filter bandstop filter lowpass1
subplot(211); plot(omega1,0.707,omega1,abs(Hd)),grid; title('respon frekuensi filter FIR');
xlabel('frekuensi (rad/sampel)'); ylabel('magnitude');
subplot(212); plot(omega1,phase), grid; xlabel('frekuensi (rad/sampel)');
ylabel('sudut fase (der)');
Gambar 6.19. Respon frekuensi filter FIR pada Contoh 6.4.
4. Windowing dan pengaruhnya
Pada filter FIR, tanggapan impuls h(n) yang panjangnya tak terhingga dipotong sampai panjang tertentu, menjadi hd(n). Hal
ini sama dengan mengalikan h(n) dengan suatu window (jendela) tertentu, w(n), atau ditulis :
hd(n) = h(n) w(n) (6.14)
Hanya saja, penggunaan window rectangular (persegipanjang), menghasilkan pemotongan yang mendadak pada h(n). Akibatnya muncul adanya riak (ripple) pada tanggapan frekuensinya. Untuk mengurangi ripple ini, perlu suatu pemotongan yang lebih baik, yaitu perubahan nilai hd(n) yang lebih gradual, dengan cara
Tabel 6.3. Jenis-jenis window Nama window w(n), 0 n N-1 Bartlett (segitiga) 1 N 2 1 N n 2 1 Blackman 1 N n 4 cos 08 . 0 1 N 2 cos 5 , 0 42 , 0 Hamming 1 N n 2 cos 46 , 0 54 , 0 Hanning 1 N n 2 cos 1 2 1
Perbedaan window yang dipakai, menyebabkan sifat yang berubah, baik pada tanggapan impuls maupun tanggapan frekuensi, seperti pada gambar berikut:
Gambar 6.20. Tanggapan impuls dan tanggapan frekuensi untuk window rectangular (atas)
Tanggapan impuls dan tanggapan frekuensi untuk window 0 5 10 15 20 -0.05 0 0.05 0.1 0.15 n h d (n ) 0 5 10 15 20 -0.05 0 0.05 0.1 0.15 n h d (n ) -4 -2 0 2 4 0 0.5 1 1.5 |H | frekuensi -4 -2 0 2 4 0 0.2 0.4 0.6 0.8 1 |H | frekuensi
C. Implementasi Filter Digital
Implementasi filter digital dapat menggunakan beberapa cara, yaitu dengan perangkat lunak atau perangkat keras. Implementasi dengan perangkat lunak berarti membuat suatu program komputer untuk diterapkan pada komputer digital. Adapun implementasi dengan perangkat keras adalah mendesain suatu prosesor khusus, yang didalamnya terdiri dari kumpulan penjumlah, pengali dan unit penunda (delay unit).
Implementasi dengan perangkat lunak mempunyai
kelebihan pada kemudahan melakukan desain ulang. Juga memungkinkan untuk menerapkan algoritma yang cukup rumit. Sebaliknya, implementasi dengan perangkat keras akan mengalami kesulitan pada dua hal di atas, tetapi mempunyai kelebihan pada kecepatan prosesnya. Pembahasan berikut hanya menyangkut dasar-dasar implementasi, yang dapat diterapkan pada perangkat keras maupun perangkat lunak
Hasil desain filter digital (sebelum diimplemetasikan) adalah berupa transfer function dalam variabel z. Bila input adalah X(z) dan output adalah Y(z), transfer function suatu filter digital biasanya dinyakan dalam bentuk:
, n m z a z a z a 1 z b z b z b b z X z Y n n 2 2 1 1 m m 2 2 1 1 0 (6.15) dimana a dan b adalah koefisien riil, sedangkan z-1 adalah simbol dari unit penunda. Dari transfer function seperti inilah implemetasi filter digital dilaksanakan. Berikut akan dibahas dua jenis implementasi, yaitu Pemrograman Langsung dan Pemrograman Standar.1. Pemrograman Langsung (Direct Programming)
Implementasi jenis ini dilakukan dengan mengubah transfer function filter digital G(z) di atas, menjadi bentuk berikut: Y(z) + a1z-1Y(z) + ... + anz-nY(z) = b0 X(z) + ... + bmz-mX(z)
Y(z) = – a1z-1Y(z) –...– anz-nY(z) + b0 X(z) + ... + bmz-mX(z)
Implementasi jenis ini sangat mudah dilakukan, yaitu dengan mengubah persamaan diatas ke dalam diagram blok (lihat Gambar 6.9). Kelemahan implementasi jenis ini adalah memerlukan unit
karena itu, implementasi jenis ini jarang dipakai. Dan untuk keperluan praktis, biasanya diupayakan agar pemakaian unit penunda adalah minimum.
Gambar 6.21. Diagram blok implementasi filter dengan Pemrograman Langsung
2. Pemrograman Standar (Standard Programming)
Implementasi jenis ini dilakukan dengan terlebih dahulu mengubah susunan transfer function filter digital menjadi :
n n 1 1 m m 1 1 0 z a z a 1 1 z b z b b z X z Y
z X z H z H z Y z X z Y dimana
m m 2 2 1 1 0 b z b z b z b z H z Y
n n 2 2 1 1z a z a z a 1 1 z X z H Dari dua transfer function diatas, bentuknya diubah menjadi: Y(z) = b0 H(z) + b1z-1H(z) + ... + bmz-mH(z)
H(z) = X(z) – a1z-1H(z) – a2z-2H(z) –...– anz-nH(z)
Masing-masing transfer function dibentuk menjadi diagram blok terpisah, dan kemudian digabung menjadi satu. Untuk lebih jelasnya, dapat dilihat Gambar 6.15.
Implementasi jenis ini memang sedikit lebih rumit dibanding Pemrograman Langsung, karena harus melakukan
z -1 z -1 –an –a1 z -1 bm b0 b1 z -1 X(z) Y(z)
dekomposisi, kemudian menggabungkannya lagi. Akan tetapi implementasi jenis ini memerlukan unit penunda yang lebih sedikit, yaitu n buah. Implementasi jenis ini lebih banyak dipakai, daripada jenis Pemrograman Langsung.
Gambar 6.22. Diagram blok implementasi filter dengan Pemrograman Standar
Contoh 6.5:
Implementasikan filter berikut dengan Pemrograman Langsung dan Pemrograman Standar:
11 z 5 , 0 1 z 6 , 0 2 z X z Y z G H(z) z -1 z -1 bm b0 b1 z -1 b2 Y(z) z -1 z -1 z -1 –an –a2 –a1 H(z) X(z) X(z) z -1 z -1 bm b0 b1 z -1 b2 –an –a2 –a1 an Y(z)Jawab:
a. Dengan Pemrograman Langsung
Transfer function filter di atas diubah menjadi: Y(z) = - 0,5z-1Y(z) + 2X(z) – 0,6z-1X(z) b. Dengan Pemrograman Standar
Transfer function filter di atas diubah menjadi:
1 1 z 5 , 0 1 2 z X z H z 3 , 0 1 z H z Y Diagram blok untuk masing-masing implementasi adalah:
(a)
(b)
Gambar 6.23. Diagram Blok implementasi filter dengan (a) Pemrograman Langsung dan
(b) Pemrograman Standar z-1 0,5 2 h(n–1) z-1H(z) + x(n) X(z) - 0,3 z -1 h(n) H(z) + - y(n) Y(z) z-1 0,5 2 x(n) X(z) - 0,3 + y(n) Y(z) + - z-1 -0,5 -0,3 2 z -1 x(n) X(z) y(n) Y(z) + + +
D. Soal-soal
1. Rancang suatu filter digital IIR, berbasis filter analog tipe Butterwowth yang memiliki spesifikasi:
Pelemahan maksimum passband : 3 dB
Jangkauan frekuensi stopband : 0 - 2 kHz
Jangkauan frekuensi passband : 3 - 5 kHz
Pelemahan stopband minimum : 10 dB
Frekuensi pencuplikan : 10 kHz
2. Rancang filter lowpass FIR orde 7 dengan frekuensi cut-off 600 Hz, untuk frekuensi pencuplikan 8 kHz. Gunakan window tipe rectangular.
3. Implementasikan filter berikut dengan Pemrograman Standar:
1 1 z 5 , 0 1 z 8 , 1 3 z X z Y E. Soal-soal yang Dikerjakan Dengan Matlab
1. Desain dan implementasikan suatu filter FIR untuk menampilkan hanya sinyal frekuensi rendah dari suatu campuran sinyal :
x1(n) = sin(210nT) dan x2(n) = (260nT),
dengan frekuensi sampling 200 Hz. Buatlah tampilan dalam dua gambar, gambar atas untuk menampilkan campuran sinyal dan gambar bawah untuk menampilkan sinyal hasil pentapisan (penyaringan).
2. Desain dan implementasikan suatu filter jenis IIR untuk menampilkan hanya sinyal frekuensi 200 Hz dari suatu campuran sinyal :
x1(n) = cos(250nT)
x2(n) = cos(2200nT), dan
x3(n) = cos(2600nT)
dengan frekuensi sampling 2 kHz. Buatlah tampilan dalam empat gambar, gambar kiri atas untuk menampilkan magnitude respon frekuensi filter, kanan atas untuk sudut fase, kiri bawah untuk campuran sinyal dan gambar kanan bawah untuk menampilkan sinyal hasil pentapisan (penyaringan).