MODUL 4
ANALOG DAN DIGITAL FILTER
I.
Tugas Pendahuluan
Perintah atau fungsi pada MATLAB dapat dilihat dan dipelajari dengan online help pada Command window. Contoh ketiklah : help plot. Maka arti dari perintah plot akan ditampilkan di layar. Atau dapat dicari dari Help Menu kemudian pilih Function Browser dan ketik perintah yang ingin dicari.
Baca kembali perintah pada modul 1 sampai 3.
Carilah arti perintah MATLAB berikut ini sebelum mulai percobaan, dengan memahami arti tiap perintah maka percobaan dapat dimengerti dengan mudah:
Sinyal Processing Toolbox
a. length artinya ……… b. size artinya ……… c. ‘ artinya ……… d. ones artinya ……… e. linspace artinya ……… f. abs artinya ……… g. exp artinya ……… h. axis artinya ……… i. stem artinya ……… j. freqz artinya ……… k. freqs artinya ……… l. butter artinya ……… m. buttord artinya ……… n. chebord1 artinya ……… o. chebord2 artinya ……… p. cheby1 artinya ……… q. cheby2 artinya ……… r. ellip artinya ……… s. ellipord artinya ……… t. sinc artinya ………
II.
Teori Penunjang
Frequency ResponseDalam Signal Processing Toolbox terdapat beberapa fungsi untuk analisa dalam
frequency domain baik untuk filter digital maupun analog. Khususnya fungsi freqz dan freqs akan menghasilkan respon frekuensi kompleks berturut turut untuk filter digital dan analog.
Digital domain.
Freqz menggunakan algoritma FFT untuk menghitung respon frekuensi transformasi-z dari filter digital. Contoh :
[h,w] = freqz(b,a,n,’whole’)
akan menghasilkan respon frekuensi kompleks, H(ejω) dari filter digital :
) ( ) 1 ( ... ) 2 ( ) 1 ( ) 1 ( ... ) 2 ( ) 1 ( ) ( ( ) ) ( j na j j nb j j j e X e na a e a a e nb b e b b e H
Dimana b dan a adalah vektor koeffisien filter dan integer n adalah jumlah titik untuk seluruh unit circle atau 2π. Jika parameter ‘whole’ tidak dituliskan maka Matlab hanya menggambarkan respon frekuensi untuk perioda 0 – π saja. Freqz menghasilkan respon frekuensi kompleks dalam vektor h dan titik titik frekuensi dalam vektor w yang dinyatakan dalam radian/sec.
Freqz juga dapat menerima parameter lain seperti frekuensi sampling ataupun vektor dari sembarang titik frekuensi.
Contoh :
[b,a] = cheby1(12,0.5,200/500); [h,f] = freqz(b,a,256,1000);
Karena parameter mengandung frekuensi sampling, freqz menghasilkan vektor f yang mempunyai 256 titik frekuensi antara 0 dan Fs/2 yang digunakan dalam penghitungan respon frekuensi.
Jika Anda menggunakan freqz tanpa output argument, ia akan otomatis memplot baik magnitude vs frekuensi maupun fasa vs frekuensi.
Contoh : Butterworth lowpass filter dengan frekuensi cutoff 400 Hz, dan menggunakan frekuensi sampling 2000 Hz adalah sbb :
[b,a] = butter(9,400/1000); freqz(b,a,256,2000)
Magnitude dan Fasa
Matlab menyediakan juga fungsi abs untuk mengekstrak magnitude dan fungsi angle untuk mengekstrak fasa dari vektor respon frekuensi h.
Contoh : Untuk mengekstrak dan mem-plot magnitude dan fasa filter Butterworth. [b,a] = butter(6,300/500);
[h,w] = freqz(b,a,512,1000); m = abs(h); p = angle(h); semilogy(w,m);
plot(w,p*180/pi)
Fungsi unwrap juga berguna dalam analisa frekuensi yaitu untuk menghindari terjadinya loncatan penggambaran fasa yang melampaui batas 180o, yaitu dengan penambahan kelipatan dari ±360o jika diperlukan.
Untuk bisa melihat kegunaannya, buatlah filter FIR lowpass orde 25 sbb : h = fir1(25,0.4);
[H,f] = freqz(h,1,512,2); plot(f,angle(H)*180/pi);grid
Perhatikan gambar yang terjadi dimana fasanya selalu digambarkan antara -180 dan 180 sehingga terjadi loncatan-loncatan fasa.
Untuk menghindarkan hal tersebut, ubahlah perintah plot di atas menjadi sbb: plot(f,unwrap(angle(H))*180/pi);grid
Delay
Group delay suatu filter adalah nilai delay rata-rata suatu filter sebagai fungsi frekuensi.
Jika respon frekuensi kompleks suau filter adalah H(ejω), maka group delaynya adalah :
d d g ) ( ) ( Dengan θ adalah sudut fasa dari H(ejω). Contoh menghitung group delay:
[gd,w] = grpdelay(b,a,n);
akan menghasilkan n titik group delay, τg(ω), dari filter digital yang mempunyai vektor b dan a.
Phase delay dari filter didefinisikan sebagai :
p( ) ( )
Untuk mem-plot group delay dan phase delay suatu system dalam grafik yang sama : [b,a] = butter(10,200/1000); gd = grpdelay(b,a,128); [h,f] = freqz(b,a,128,2000); pd = - unwrap(angle(h))*(2000/(2*pi))./f; plot(f,gd,’-‘,f,pd,’- -‘) axis([0 1000 -30 30])
III. Percobaan dan Pertanyaan
Pada percobaan di sini akan dipelajari perancangan filter analog yang telah dipelajari di .kuliah yaitu filter Butterworth, Chebyshev, dan Elliptic. Perbedaan antara filter tersebut dapat dijelaskan dengan memperhatikan filter lowpass analog.
Fungsi transfer filter lowpass Butterworth mempunyai respon magnituda yang rata, mulai dari = 0 dan monoton menurun seiring dengan meningkatnya frekuensi.
Fungsi transfer filter lowpass Chebyshev tipe 1 mempunyai respon magnituda yang bergelombang pada daerah passband dan monoton menurun di luar daerah passband seiring meningkatnya frekuensi.
Fungsi transfer filter lowpass Chebyshev tipe 2 mempunyai respon magnituda yang monoton menurun seiring meningkatnya frekuensi pada daerah passband dan bergelombang di daerah stopband.
Fungsi transfer filter lowpass Elliptic mempunyai respon magnituda yang bergelombang pada daerah passband dan stopband
Langkah pertama untuk merancang filter adalah menentukan orde filter N dan frekuensi cutoff C yang sesuai.. C adalah frekuensi cuttoff 3-dB untuk filter Butterworth, tepi passband untuk filter Chebyshev Tipe 1, tepi stopband untuk filter Chebyshev Tipe 2, dan tepi passband untuk filter Elliptic.
Parameter ini dapat ditentukan menggunakan perintah MATLAB
Untuk memperkirakan orde filter Butterworth digunakan [N, Wn] = buttord(Wp, Ws, Rp, Rs); dengan parameter masukan Wp adalah frekuensi tepi passband, Ws adalah frekuensi tepi stopband, Rp ripple passband dalam dB, Rs adalah redaman minimum stopband dalam dB. Buttord dapat juga digunakan untuk memperkirakan orde filter highpass, bandpass dan bandstop. Untuk perancangan filter highpass, Wp > Ws. Untuk perancangan filter bandpass dan bandstop, Wp > Ws adalah dua elemen vektor yang merupakan frekuensi tepi, dengan frekuensi bawah sebagai elemen pertama vektor.
Untuk memperkirakan orde filter Chebyshev tipe 1 digunakan [N, Wn] = cheb1ord(Wp, Ws, Rp, Rs);
Untuk memperkirakan orde filter Chebyshev tipe 2 digunakan [N, Wn] = cheb2ord(Wp, Ws, Rp, Rs);
Untuk memperkirakan orde filter Elliptic digunakan [N, Wn] = ellipord(Wp, Ws, Rp, Rs);Untuk perancangan filter menggunakan perintah MATLAB butter untuk Butterworth, cheby1 untuk filter Chebyshev Tipe 1, cheby2 untuk filter Chebyshev Tipe 2, ellip untuk filter Elliptic. Program 4-1 digunakan untuk perancangan filter Lowpass Butterworth.
% Percobaan 4-1
% Perancangan Filter Lowpass Analog Butterworth clf; Fp = 3500; Fs = 4500; Wp = 2*pi*Fp; Ws = 2*pi*Fs; [N, Wn] = buttord(Wp, Ws, 0.5, 30, 's'); [b,a] = butter(N, Wn, 's'); wa = 0:(3*Ws)/511:3*Ws; h = freqs(b,a,wa); subplot(2,1,1); plot(wa/(2*pi), 20*log10(abs(h))); grid xlabel('Frekuensi, Hz'); ylabel('Gain, dB'); title('Gain respons'); axis([0 3*Fs -60 5]); [b,a] = butter(6,300/500); [h,w] = freqz(b,a,512,1000); subplot(2,1,2); m = abs(h); p = angle(h); semilogy(w,m); plot(w,p*180/pi) grid Pertanyaan:
1. Apa yang dimaksud dengan ripple passband Rp dalam dB pada Percobaan 4-1? 2. Apa yang dimaksud redaman minimum stopband Rs dalam dB pada Percobaan
4-1?
3. Berapa batas frekuensi passband dan stopband dalam Hz?
4. Jalankan Percobaan 4-1 dan tampilkan respons penguatan (gain). Apakah perancangan memenuhi spesifikasi yang diinginkan? Berapa orde filter N dan frekuensi 3-dB dalam Hz filter tersebut dirancang?
5. Gunakan cheb1ord dan cheby1 untuk memodifikasi Percobaan 4-1, rancanglah filter lowpass tipe 1 Chebyshev.dengan spesifikasi yang sama dengan filter Butterworth. Jalankan program anda. Apakah filter memenuhi spresifikasi yang diinginkan? Pada orde berapa filter Chebyshev tersebut?
6. Gunakan ellipord dan ellip untuk memodifikasi Percobaan 4-1, rancanglah filter lowpass Elliptic.dengan spesifikasi yang sama dengan filter
Butterworth. Jalankan program anda. Apakah filter memenuhi spresifikasi yang diinginkan? Pada orde berapa filter Elliptic tersebut?
JAWAB PERTANYAAN