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.
y(n) x(n)
-1
z
a b
Gambar 6.1. Contoh filter analog (atas) dan filter digital (bawah)
PSD – Bab VI Filter Digital
77
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 (feedforward), 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. y(n) -1
x(n)
z
a b y(n)
-1
x(n)
z
b1
b2
Gambar 6.2. Filter IIR (atas) filter FIR (bawah)
Gambar 6.3. Contoh respon frekuensi filter IIR (atas) dan FIR (bawah) PSD – Bab VI Filter Digital
78
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: 2 z 1 z 1 (6.1) s 2f s T z 1 z 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 (6.2) p tan c 2f s tan c T 2 2 dimana p adalah frekuensi cut-off filter analog hasil prewarping, T adalah periode pencuplikan, dan fs adalah frekuensi pencuplikan PSD – Bab VI Filter Digital
79
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:
log A 2 1/ 2 (6.3) 2 log 1 / k dengan N = orde filter prototype yang dicari, A = pelemahan minimum stopband dan = pelemahan maksimum passband. N
PSD – Bab VI Filter Digital
80
Adapun untuk k, berbeda-beda tergantung jenis filternya. Untuk filter lowpass, k = c/s 1,0
passband
1/(1- 2)
transition band
stopband
1/A2
c
s
Gambar 6.4. Respon frekuensi filter lowpass tipe Butterworth
Untuk filter highpass, k = s/c.
passband
1,0 1/(1- 2)
1/A2
transition band
stopband
s
c
Gambar 6.5. Respon frekuensi filter highpass tipe Butterworth
PSD – Bab VI Filter Digital
81
Untuk filter bandpass,
s1 c 2 c1 c 2 c1 jika s1s 2 c1 c 2 s21 1 c1 c 2 k s 2 c 2 c1 c 2 c1 jika s1s 2 c1 c 2 s22 1 c1 c 2
passband
1,0
transition band
1/(1- 2)
stopband
stopband
1/A2
s1 c1
c2 s2
Gambar 6.6. Respon frekuensi filter bandpass tipe Butterworth
Untuk filter bandstop : s21 1 c1 c 2 jika s1s 2 c1 c 2 s1 c 2 c1 c 2 c1 k s22 1 c1 c 2 jika s1s 2 c1 c 2 s 2 c 2 c1 c 2 c1
PSD – Bab VI Filter Digital
82
1,0
passband
passband
1/(1- 2)
transition band
1/A2 stopband
c1 s1 s2
c2
Gambar 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 1,414s 1
3 4
2
1 s 2s 2s 1 3
2
1 s 2,6131s 3,4142s 2 2,6131s 1 4
3
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:
PSD – Bab VI Filter Digital
83
Tabel 6.2 Transformasi Frekuensi pada filter analog Prototype orde n Transformasi frekuensi Orde Lowpass ke lowpass
s
s 0
n
Lowpass ke highpass
s
0 s
n
Lowpass ke bandpass
s
Lowpass ke bandstop
s
s
1 2 s 2 1
2n
s
2n
2
s 2 1 2
1 2
Tahap 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: (ditambahkan gambar sketsa desain filter)
PSD – Bab VI Filter Digital
84
Langkah pertama adalah prewarping frekuensi analog yang ditentukan oleh: 2 T 21000 pp tan c 20000 tan T 2 20000 = 6498,4 radian/detik = 1034,5 Hz 2 T 2.2000 ps tan c 20000 tan T 2 20000 = 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: N
log A 2 1 / 2 2 log1 / k
2,8182 1 log 0,7072 1,63574 2 1 2 log 1034,5 / 2312
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: H(s)
1 s 1,414s 1 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: H(s)
1 2
s s 1,414 1 6498 , 4 6498,4
PSD – Bab VI Filter Digital
85
1
H(s)
s 1,4146498,4s 6498,4
2
2
6498,42
H(s)
4,23.107 s 2 9,2.103 s 4,23.107
Akhirnya, penerapan transformasi Bilinear menghasilkan filter digital: H( z)
4,23.107 2
z 1 3 4 z 1 7 2.104 9,2.10 2.10 4,23.10 z 1 z 1
H( z )
4,23.107 z 2 2z 1 4.108 z 2 2z 1 18,4.107 z 2 1 4,23.107 z 2 2z 1
H( z )
4,23.107 z 2 2z 1 40 18,4 4,23.107 z 2 80 8,46.107 z 40 18,4 4,23.107
H(z) 0,0676
z 2 2z 1 z 2 1,142z 0,412
PSD – Bab VI Filter Digital
86
1.4
1.2
0 dB
1
0.8 |H(z)|
–3 dB 0.6
0.4
–9 dB
0.2
0
0
500
1000
1500
2000 2500 3000 frekuensi (Hz)
3500
4000
4500
5000
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 lowpass 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
PSD – Bab VI Filter Digital
87
[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) Filter FIR adalah suatu sistem yang mempunyai tanggapan terhadap impuls (impulse) dengan panjang terhingga. Dengan kata PSD – Bab VI Filter Digital
88
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 : h (n ), 0 n N - 1 (6.4) h d n n lainnya 0, dengan N adalah panjang filter atau orde filter. Fungsi alih z dan tanggapan frekuensi dari filter FIR diberikan oleh: N 1
H d z h d n z n
(6.5)
n 0
N 1
H d h d n e jn
(6.6)
n 0
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. |H() |Hd( | )|
-
-c c (a)
-
-c 0 c
(b)
Gambar 6.10. (a) Tanggapan frekuensi filter lowpass ideal (b) Tanggapan frekuensi filter lowpass riil PSD – Bab VI Filter Digital
89
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 n
1 H e jn d 2
(6.7)
Pada prakteknya, untuk filter lowpass langsung menggunakan rumus: sin C n ,n 0 h n n c , n0
(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 4. Menggeser tanggapan impuls dari filter, sebesar (N – 1)/2, untuk mendapatkan filter yang kausal PSD – Bab VI Filter Digital
90
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: sin C n ,n 0 h n n (6.9) c , n0
PSD – Bab VI Filter Digital
91
|H()|
G -
-0,4 0 0,4
Gambar 6.11 Respon frekuensi filter ideal
0.14 0.12 0.1 0.08
h(n)
0.06 0.04 0.02 0 -0.02 -0.04 -50
-40
-30
-20
-10
0 n
10
20
30
40
50
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:
PSD – Bab VI Filter Digital
92
h d n
sin 0,4n 10 , untuk n = 0, 1, 2, ... 20, dan n 10
h d n
0,4 , 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
H d z h d n z n n 0
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}. 0.14 0.12 0.1 0.08
h(n)
0.06 0.04 0.02 0 -0.02 -0.04
0
2
4
6
8
10 n
12
14
16
18
20
Gambar 6.13. Respon impuls filter, untuk N = 21 dan digeser 10 sampel ke kanan PSD – Bab VI Filter Digital
93
Sedangkan respon frekuensi filter di atas didapat dari rumus: 20
H d h d n e jn
(6.10)
n 0
Tampilan respon frekuensi untuk filter kausal ini dapat dilihat pada gambar di bawah ini.
1.4
1.2
1
|H|
0.8
0.6
0.4
0.2
0 -4
-3
-2
-1
0 frekuensi
1
2
3
4
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.
PSD – Bab VI Filter Digital
94
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 -Ωc
Ωc
filter highpass -Ωc
Ωc
Gambar 6.16. Ilustrasi desain filter FIR jenis highpass
Persamaan untuk mendapatkan tanggapan impuls untuk filter highpass adalah: sin n m sin C n m untuk n m n m (6.11) h d n 1 C untuk n m
PSD – Bab VI Filter Digital
95
2. Desain Filter Bandpass Desain filter bandpass dilakukan dengan mendesain filter lowpass dikurangi filter lowpass lainnya
filter lowpass1 ΩcH π
-π -ΩcH
filter lowpass2 -ΩcL ΩcL
filter bandpass -π -ΩcH -ΩcL ΩcL
ΩcH π
Gambar 6.17. Ilustrasi desain filter FIR jenis bandpass
Persamaan untuk mendapatkan tanggapan impuls untuk filter bandpass adalah: sin CH n m sin CL n m , untuk n m n m h d n CH CL , untuk n m
(6.12)
3. Desain Filter Bandstop Desain filter bandstop dilakukan dengan mendesain filter allpass dikurangi filter lowpass ditambah filter lowpass lain. sin n m sin CH n m sin CL n m n m (6.13) h d n CH CL 1
PSD – Bab VI Filter Digital
96
filter allpass π
-π
filter lowpass1 ΩcH π
-π -ΩcH
filter highpass π
-π
filter lowpass2 -ΩcL ΩcL
filter bandstop -π -Ω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); phase = 180/pi * unwrap(angle(Hd)); PSD – Bab VI Filter Digital
97
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 mengubah window yang dipakai. Berikut beberapa jenis window:
PSD – Bab VI Filter Digital
98
Tabel 6.3. Jenis-jenis window w(n), 0 n N-1
Nama window
N 1 2 N 1
2n
Bartlett (segitiga)
1
2 4n 0.08 cos N 1 N 1 2n 0,54 0,46 cos N 1 0,42 0,5 cos
Blackman Hamming
1 2n 1 cos 2 N 1
Hanning
Perbedaan window yang dipakai, menyebabkan sifat yang berubah, baik pada tanggapan impuls maupun tanggapan frekuensi, seperti pada gambar berikut: 0.15
1.5
1 |H|
hd(n)
0.1 0.05
0.5
0 -0.05
0
5
10 n
15
0 -4
20
0.15
0 frekuensi
2
4
-2
0 frekuensi
2
4
1 0.8 |H|
0.1 hd(n)
-2
0.05
0.6 0.4
0 -0.05
0.2 0
5
10 n
15
20
0 -4
Gambar 6.20. Tanggapan impuls dan tanggapan frekuensi untuk window rectangular (atas) Tanggapan impuls dan tanggapan frekuensi untuk window Hamming (bawah) PSD – Bab VI Filter Digital
99
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: Yz b 0 b1 z 1 b 2 z 2 b m z m , nm Xz 1 a 1 z 1 a 2 z 2 a n z n
(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 penunda yang cukup banyak, yaitu sebanyak (m + n) buah, oleh PSD – Bab VI Filter Digital
100
karena itu, implementasi jenis ini jarang dipakai. Dan untuk keperluan praktis, biasanya diupayakan agar pemakaian unit penunda adalah minimum. b0 Y(z)
b1 z -1
X(z)
z -1
bm
z -1
z -1 –a1 –an
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 : Yz 1 b 0 b1 z 1 b m z m 1 Xz 1 a 1z a n z n
Yz Yz Hz Xz Hz Xz
dimana
Yz b 0 b1z 1 b 2 z 2 b m z m Hz
Hz 1 1 Xz 1 a 1z a 2 z 2 a n z n
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 PSD – Bab VI Filter Digital
101
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. b0 b1 b2
H(z)
Y(z) z -1
z -1
X(z)
H(z)
z -1 z -1
bm
z -1
z -1
–a1 –a2 –an b0 b1 X(z)
z -1
z -1
b2 z -1
bm
Y(z)
–a1 an
–a2 –an
Gambar 6.22. Diagram blok implementasi filter dengan Pemrograman Standar
Contoh 6.5: Implementasikan filter berikut dengan Pemrograman Langsung dan Pemrograman Standar:
Gz
Yz 2 0,6z 1 Xz 1 0,5z 1
PSD – Bab VI Filter Digital
102
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: Yz Hz 2 1 0,3z 1 Hz Xz 1 0,5z 1 Diagram blok untuk masing-masing implementasi adalah:
x(n) z
2
-1
y(n)
++ +
-0,3
X(z)
Y(z) -0,5
z
-1
(a) h(n) z -1
0,3
y(n)
-+
H(z)
Y(z)
x(n) 2 X(z)
+-
z
h(n–1)
-1
z-1H(z)
0,5 x(n) 2 X(z)
+-
z-1
0,3
-+
0,5
y(n) Y(z)
(b) Gambar 6.23. Diagram Blok implementasi filter dengan (a) Pemrograman Langsung dan (b) Pemrograman Standar
PSD – Bab VI Filter Digital
103
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: Yz 3 1,8z 1 Xz 1 0,5z 1
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).
PSD – Bab VI Filter Digital
104