MODUL 1 DESAIN DAN IMPLEMENTASI ALGORITMA FILTER DIJITAL FIR
1. Tujuan 1. Dapat mendesain filter FIR dengan teknik windowing menggunakan bahasa pemrograman MATLAB. 2. Dapat mengimplementasikan filter FIR untuk pemrosesan sinyal menggunakan DSK TMS320C6713. 3. Dapat menggambarkan respon magnituda suatu sistem linier tidak berubah terhadap waktu dari suatu sistem linier tidak berubah terhadap waktu berdasarkan hasil data pengukuran. 4. Dapat mendengarkan efek pemfilteran sinyal audio untuk filter FIR yang diimplementasikan menggunakan DSK TMS320C6713. 2. Perangkat Praktikum Perangkat – perangkat yang digunakan dalam praktikum ini adalah : 1. Satu set komputer. 2. Satu paket DSK TMS320C6713 terdiri atas : DSK TMS320C6713, kabel USB, +5 V power supply, AC Power Cord dan 1 set kabel audio. 3. Osiloskop. 4. Generator sinyal. 5. Speaker. 3. Dasar Teori Filter FIR merupakan tipe filter dijital dengan respon impuls terbatas. Respon frekuensi dari filter FIR dengan orde M – 1 yang kausal adalah : M 1
H e j h(n)e jn
(1.1)
n0
Fungsi sistem H ( z) filter FIR adalah M 1
H ( z) h(n) z n
(1.2)
n0
Persamaan perbedaan yang menghubungkan input dan output filter FIR adalah M 1
y(n) h(k ) x(n k )
(1.3)
n0
Koefisien filter FIR pada persamaan di atas adalah h(0), h(1), h(2), dst. Terdapat M koefisien untuk filter FIR orde M – 1 pada persamaan di atas. Filter FIR adalah stabil dan sangat mudah didesain untuk mendapatkan respon fasa yang linier. 3.1 Spesifikasi Filter Spesifikasi filter dapat dinyatakan dalam domain frekuensi dengan respon magnituda dan respon fasa. Spesifikasi magnituda dapat direpresentasikan dalam dua cara yaitu : 1. Spesifikasi absolut dengan parameter respon magnituda H (e j ) . Spesifikasi ini sering digunakan untuk desain filter FIR. Gambar 1.1 (a) memperlihatkan diagram spesifikasi absolut filter FIR lowpass. Band 0, p disebut passband dan 1 merupakan batas TIM PRAKTIKUM ET 3085 PENGOLAHAN SINYAL
Semester I 2012/2013
1
toleransi (ripple) yang dapat diterima dalam respon passband ideal. Band s , disebut stopband dan 2 merupakan ripple. Band p , s disebut sebagai transition band. 2. Spesifikasi relatif dengan parameter magnituda dalam skala decibel (dB) dengan persamaan : H (e j ) (1.4) 0 dBscale = 20 log10 H (e j ) max
Spesifikasi relatif pada filter lowpass dapat dilihat pada gambar 1.1 (b). R p adalah ripple passband dalam dB, sedangkan As merupakan redaman stopband dalam dB. 1 1 1 1 1 H (e j)
Passband Ripple
Transition Band Stopband Ripple
2
(a)
s
p
0
Decibels
0 Rp
As
(b) Gambar 1.1 Spesifikasi filter FIR : (a) Absolut, (b) Relatif
Parameter – parameter yang diberikan dalam dua spesifikasi di atas saling berkaitan. H (e j ) dalam spesifikasi absolut sama dengan (1 1 ) sehingga, 1 1 Rp 20 log10 0 ( 0) 1 1 As 20 log10 2 0 ( 1) 1 1
(1.5) (1.6)
3.2 Teknik Window Teknik window digunakan untuk memilih filter frequency selective yang ideal (yang biasanya mempunyai karakteristik non-kausal dan respon impuls dengan durasi tak terbatas) dan kemudian membatasi (window) respon impuls untuk mendapatkan filter FIR yang kausal dan TIM PRAKTIKUM ET 3085 PENGOLAHAN SINYAL
Semester I 2012/2013
2
berfasa linier. Misal sebuah filter frequency selective H d (e j ) dengan karakteristik gain magnituda konstan dan fasa linier pada daerah passband dan memiliki respon nol pada daerah stopband. Ideal LPF pada bandwidth c : j c 1.e (1.7) H d(e j ) c 0 dengan c merupakan frekuensi cutoff dan adalah sampel delay. Respon impuls filter pada durasi tak terbatas : 1 j 1 j jn h d (n) F H d (e ) H (e )e d d 2
1 2
c
1.e
j
e jn d
(1.8)
c
sin c (n ) (n ) Untuk mendapatkan filter FIR h(n) yang kausal dan berfasa linier dengan panjang M, maka : h (n) 0 n M 1 M 1 h(n) d dan (1.9) lainnya 2 0 Operasi ini disebut windowing. Secara umum, h(n) merupakan perkalian hd (n) dengan fungsi window w(n) yaitu : (1.10) h(n) hd (n)w(n) dengan : beberapa fungsi simetrik yang tergantung pada dengan 0 n M 1 w(n) 0, lainnya =
Contoh fungsi window yang dapat digunakan adalah window rectangular yang didefinisikan oleh : 1, 0 n M 1 (1.11) w(n) RM (n) lainnya 0, Respon filter FIR kausal dalam domain frekuensi H (e j ) adalah konvolusi periodik H d (e j ) dengan respon window W (e j ) yaitu :
1 H (e ) H d (e ) W (e ) W (e j )H d (e j ( ) )d 2 j
j
j
(1.12)
Dari gambar 1.2 didapat : 1. Window w(n) mempunyai panjang yang terbatas yaitu M, responnya memiliki peaky main lobe dengan lebar yang proporsional terhadap 1/ M dan memiliki side lobe dengan tinggi terkecil. 2. Konvolusi periodik menghasilkan respon yang hampir mirip dengan respon ideal H d (e j ) namun terdapat ripple. 3. Main lobe menghasilkan band transisi pada H (e j ) dengan lebar sesuai dengan transition width. Lebar ini proporsional terhadap 1/ M . Semakin lebar main lobe maka akan menyebabkan transition width semakin lebar juga. 4. Side lobe menghasilkan ripple dengan bentuk yang sama baik pada passband maupun stopband. TIM PRAKTIKUM ET 3085 PENGOLAHAN SINYAL
Semester I 2012/2013
3
H d (e j)
H (e j)
c
c
0
Transition width
Ripples
W (e j)
* Circular Convolution
c
0
c
Minimum stopband attenuation
Max side-lobe height
0
Main lobe width
Gambar 1.2 Operasi windowing dalam domain frekuensi
Fungsi- fungsi window lainnya yang sering digunakan adalah : 1. Bartlett M 1 2n 0n M 1 , 2 2n M 1 Fungsi : w(n) 2 , n M 1 2 M 1 0, lainnya
(1.13)
2. Hanning (Hann) 2 n , 0 n M 1 0.5 1 cos M 1 Fungsi : w(n) 0, lainnya 3. Hamming 2 n 0.54 0.46 cos , 0 n M 1 Fungsi : w(n) M 1 0, lainnya 4. Blackman Fungsi : 2 n 4 n 0.08 cos 0.42 0.5 cos , 0 n M 1 w(n) M 1 M 1 0, lainnya TIM PRAKTIKUM ET 3085 PENGOLAHAN SINYAL
(1.14)
(1.15)
(1.16)
Semester I 2012/2013
4
5. Kaiser 2 2n I0 1 1 M 1 , Fungsi : w(n) I 0
0 n M 1
(1.17)
I 0 fungsi Bessel orde nol termodifikasi. Persamaan desain filter yang dapat digunakan adalah sebagai berikut. p Transition width = f s , s p 2 As 7.95 Orde filter M 1 (aproksimasi untuk window Kaiser) 14.36f Parameter ( untuk window Kaiser) :
(1.18) (1.19)
0.1102( As 8.7), As 50 dB = 0.4 0.5842( As 21) 0.07886(As 21), 21 As 50 dB
(1.20)
Tabel 1.1 Ringkasan karakteristik fungsi window yang sering digunakan
No
Nama Window
1
Rectangular
2
Bartlett
3
Hanning
4
Hamming
5
Blackman
Transition Width Aproksimasi 4 M 8 M 8 M 8 M 12 M
Nilai Eksak 1.8 M 6.1 M 6.2 M 6.6 M 11 M
Min. Redaman Stopband 21 dB 25 dB 44 dB 53 dB 74 dB
3.3 Contoh Desain Filter FIR dengan MATLAB Berikut ini merupakan contoh program MATLAB yang dapat digunakan dalam mendesain filter FIR lowpass. Pada simulasi ini digunakan dua program yaitu ideal_lp.m dan freqz_m.m sebagai berikut. 1. function hd = ideal_lp(wc,M); % ideal lowpass filter % [hd] = ideal_lp(wc,M); % hd = respon impuls ideal antara 0 hingga M – 1 % wc = frekuensi cutoff dalam radians % M = panjang filter ideal alpha = (M – 1)/2; n = [0:1:(M – 1)]; m = n – alpha + eps; hd = sin(wc*m)./(pi*m); TIM PRAKTIKUM ET 3085 PENGOLAHAN SINYAL
Semester I 2012/2013
5
2. function [db,mag,pha,grd,w] = freqz_m(b,a); % versi modifikasi dari freqz (built in function) routine % [db,mag,pha,grd,w] = freqz_m(b,a); % db = magnituda relatif (dB) dihitung antara 0 s/d pi radians % mag = magnituda absolut dihitung antara 0 hingga pi radians % pha = respon fasa dalam radians antara 0 hingga pi radians % grd = group delay antara 0 hingga pi radians % w = 501 sampel frekuensi antara 0 hingga pi radians % b = numerator polynomial H(z) (untuk FIR : b = h) % a = denominator polynomial H(z) (untuk FIR : a = [1]) [H,w] = freqz(b,a,1000,’whole’); H = (H(1:1:501))’ ; w = (w(1:1:501)); mag = abs(H); db = 20*log10((mag+eps)/max(mag)); pha = angle(H); grd = grpdelay(b,a,w); Misal, filter FIR lowpass yang akan kita desain memiliki spesifikasi berikut. p 0.2 , s 0.3 , Rp 0.25 dB, As 50 dB Filter ini akan didesain dengan menggunakan teknik window. Pada tabel karakteristik fungsi window terlihat bahwa window Hamming dan Blackman memberikan redaman lebih besar dari 50 dB. Dengan demikian, kita dapat memilih salah satu dari kedua jenis window ini. Dengan menggunakan window Hamming maka panjang filter M adalah : 6.6 6.6 6.6 M 1 1 1 67 s p 0.1 sedangkan jika menggunakan window Blackman, panjang filter M adalah 111. Pada simulasi ini dipilih window Hamming yang memberikan band transisi yang lebih kecil dengan orde filter yang lebih kecil pula. Dalam simulasi ini juga tidak digunakan nilai ripple passband Rp 0.25 dB sehingga kita harus menghitung nilai ripple sebenarnya. Skrip MATLAB yang digunakan adalah sebagai berikut. >> wp = 0.2*pi; ws = 0.3*pi; >> tr_width = ws – wp; >> M =ceil(6.6*pi/tr_width) + 1; >> n =[0:1:M – 1 ]; >> wc = (ws + wp)/2; >> hd = ideal_lp(wc,M); >> w_ham = (hamming(M))’; >> h = hd.*w_ham; >> [db,mag,pha,grd,w] = freqz_m(h,[1]); >> delta_w = 2*pi/1000; >> Rp = (min(db(1:1:wp/delta_w+1))); >> As = round(max(db(ws/delta_w+1:1:501))); %plot >> subplot(1,1,1); >> subplot(2,2,1); stem(n,hd); title(‘Ideal Impulse Response’); >> axis([0 M–1 0.1 0.3]); xlabel(‘n’); ylabel(‘hd(n)’); >> subplot(2,2,2); stem(n,w_ham); title(‘Hamming Window’); >> axis([0 M–1 0 1.1]); xlabel(‘n’); ylabel(‘w(n)’); >> subplot(2,2,3); stem(n,h); title(‘Actual Impulse Response’); >> axis([0 M–1 0.1 0.3]); xlabel(‘n’); ylabel(‘h(n)’); TIM PRAKTIKUM ET 3085 PENGOLAHAN SINYAL
Semester I 2012/2013
6
>> subplot(2,2,4); plot(w/pi,db); >> title(‘Magnitude Response in dB’); grid on; >> axis([0 1 100 10]); xlabel(‘frequency in pi units’); >> ylabel(‘Decibels’); 4. Prosedur Praktikum Pada praktikum ini dilakukan implementasi filter FIR secara real-time dengan menggunakan DSK TMS320C6713. File – file pendukung praktikum terdapat di dalam folder C:\CCStudio_v3.1\MyProjects\Filter FIR. Berikut langkah – langkah praktikum yang harus Anda perhatikan. 1. Percobaan I : Menentukan Tipe Filter FIR dari Respon Magnituda a. Nyalakan komputer dan hubungkan kabel USB DSK ke konektor USB komputer. b. Nyalakan generator sinyal dan hubungkan outputnya dengan kanal 1 osiloskop. Atur output generator sinyal berupa sinyal sinusoidal dengan tegangan 1 Volt peak-to-peak dan frekuensi 100 Hz kemudian amati sinyalnya pada kanal 1 osiloskop. Matikan kembali generator sinyal dan osiloskop. Osiloskop Generator Sinyal
Kabel Audio Komputer DSK TMS320C6713
`
Kabel USB
Kabel Power
Gambar 1.4 Set-up perangkat percobaan I
c. Pasang perangkat praktikum sesuai gambar 1.4 dengan generator sinyal dan osiloskop dalam keadaan mati. Hubungkan output generator sinyal dan input kanal 2 osiloskop
TIM PRAKTIKUM ET 3085 PENGOLAHAN SINYAL
Semester I 2012/2013
7
masing-masing dengan konektor line-in dan line-out pada DSK dengan menggunakan kabel audio yang tersedia. d. Nyalakan DSK dan lakukan prosedur DSK diagnostic dengan double click icon Klik start dan tunggu hingga proses diagnostic selesai dan keluar tulisan “PASS”. e. Buka software Code Composer Studio (CCS) dengan double click icon f. Klik menu Debug>connect untuk menghubungkan CCS dengan DSK. g. Buka project Filter FIR dengan mengeklik menu Project>open dan pilihlah file Filter FIR.pjt dalam folder C:\CCStudio_v3.1\MyProjects\ Filter FIR. h. Pada panel project bagian source terdapat 7 file yaitu coeff.c, DSK_support.c, FIRmono_ISRs.c, main.c, StartUp.c, vectors.asm dan lnk7.cmd. Pada file coeff.c terdapat koefisien filter FIR yang digunakan. i. Ubah koefisien filter pada file coeff.c dengan koefisien yang diberikan oleh asisten! Perhatikan banyaknya koefisien dan ganti nilai N pada file coeff.h dengan jumlah koefisien yang baru dikurangi satu. h. Nyalakan generator sinyal dan osiloskop. j. Lakukan proses build project (F7) pada CCS dan load program ke DSK dengan mengeklik menu File>load program. Pada folder Debug, double klik file Filter FIR.out. k. Jalankan program yang telah di-load ke DSK (run) dengan menekan F5 sehingga output hasil pemrosesan DSK terlihat di osiloskop. Amati tegangan output DSK dan catat hasilnya. l. Ubah frekuensi generator sinyal dengan tingkat kenaikan 100 Hz hingga mencapai frekuensi 1000 Hz. Kemudian ubah dari frekuensi 1000 Hz hingga 24000 Hz dengan kenaikan 1000 Hz. Amati tegangan output DSK setiap frekuensinya dan catat hasilnya. m. Dengan hasil yang Anda dapat, perkirakan tipe filter FIR pada project ini dan plot respon magnituda filternya. n. Hentikan pemrosesan pada DSK (Halt) dengan mengeklik menu Debug>Halt. Matikan generator sinyal dan osiloskop. (Jangan ubah tegangan output generator sinyal (tetap 1 Voltpp) dan atur kembali frekuensi pada posisi 100 Hz). o. Ulangi kembali dari langkah (i) untuk percobaan dengan koefisien yang baru. p. Ulangi untuk 2 koefisien berbeda yang diberikan oleh asisten. 2. Percobaan II : Memfilter Sinyal Audio dengan DSK TMS320C6713 a. Pasang perangkat praktikum sesuai gambar 1.5. Hubungkan line-out komputer dengan line-in DSK dan line-out DSK dengan speaker. b. Pada CCS, buka project Filter FIR. c. Lakukan build project dan load program ke DSK. d. Buka software Winamp dan putarkan file audio (*.mp3 atau lainnya). e. Jalankan program yang telah di-load ke DSK (run) sehingga sinyal audio keluaran lineout DSK terdengar di speaker. Simak sinyal audio ini. f. Hentikan pemrosesan pada DSK (halt). Ganti koefisien filter dengan koefisien yang diberikan oleh asisten. g. Ulangi kembali dari langkah (c) dengan koefisien yang baru dan simak outputnya. Ulangi untuk 2 koefisien berbeda yang diberikan oleh asisten.
TIM PRAKTIKUM ET 3085 PENGOLAHAN SINYAL
Semester I 2012/2013
8
Speaker Kabel Audio Komputer DSK TMS320C6713
`
Kabel USB
Kabel Power
Gambar 1.5 Set-up perangkat percobaan II
5. Tugas Pada Laporan Praktikum 1. Buatlah gambar respon magnituda dari hasil percobaan I untuk setiap koefisien filter yang diberikan! 2. Plot respon magnituda dari tiap koefisien filter yang digunakan dalam praktikum dengan menggunakan MATLAB! 3. Bandingkan dan analisis hasil yang Anda peroleh dari tugas No.1 dan No.2!. Identifikasi jenis filter apa sajakah yang digunakan pada praktikum ini! Tentukan frekuensi cut off masing-masing filternya! 4. Jelaskan alur penggunaan Code Composer Studio dalam mengeksekusi suatu program! 5. Tuliskan apa yang dapat Anda simpulkan dari praktikum ini! 6. Referensi [1] Vinay K. Ingle, John G. Proakis. Digital Signal Processing using MATLAB. Brook Cole/Thomson Learning. 2000. [2] Thab B. Welch, Cameron H. G. Wright, Michael G. Morrow. Real-time Digital Signal processing from MATLAB to C with TMS320C6x DSK. Taylor & Francis Group. 2006.
TIM PRAKTIKUM ET 3085 PENGOLAHAN SINYAL
Semester I 2012/2013
9