MODUL VI DESAIN DAN IMPLEMENTASI FILTER IIR PADA BLACKFIN DSP Rosana Dewi Amelinda (13213060) Asisten : Novita Hartono (13212099) Tanggal Percobaan: 25/11/2015 EL3110-Praktikum Pengolahan Sinyal Digital
Laboratorium Dasar Teknik Elektro - Sekolah Teknik Elektro dan Informatika ITB Abstrak Abstrak Pada praktikum Modul VI ini dilakukan desain dan implementasi filter IIR pada blackfin DSP. Filter yang didesain memiliki passband dan stopband dengan spesifikasi tertentu. Perancangan desain dilakukan dengan menggunakan software MATLAB dengan pendekatan transformasi bilinier menggunakan filter Buterworth. Selanjutnya implementasi filter dilakukan dengan menggunakan software Visual DSP++ dan diimplementasikan langsung pada BF561EZ DSP. Port input pada blackfin dihubungkan pada speaker komputer serta outputnya dihubungkan ke microphone komputer. Apabila implementasi telah selesai dikukan, selanjutnya diamati plot frekuensi yang dihasilkan dari proses pem-filter-an dengan menggunakan software Audacity. Hasil spectrum plot yang dilihat pada Audacity apabila dibanding dengan simulasi filter IIR realtime pada MATLAB memberikan hasil yang serupa. Kata kunci: Filter IIR, Bandpass filter, Blackfin BF561EZ, Audacity. 1.
Filter IIR Filter IIR (Infinite Impulse Respons) adalah salah satu tipe dari filter digital yang dipakai pada aplikasi Digital Signal Processing (DSP). Keuntungan filter IIR antara lain adala membutuhkan koefisien yang lebih sedikit untuk respon frekuensi yang curam sehingga dapat mengurangi jumlah waktu komputasi. Rumus umum filter IIR yaitu :
PENDAHULUAN
Pada praktikum modul 6 ini praktikan diminta untuk merancang suatu filter IIR dengan spesifikasi Band pass yaitu Ωs1 = 400 Hz, Ωp1 = 2 kHz, Ωp2 = 6 kHz, Ωs2 = 14 kHz, Rp ≤ 1 dB dan As ≤ 20 dB. Setelah dilakukan perancangan filter, kemudian akan dilakukan implementasi pada hadware blackfin BF561EZ. Jadi pengolahan sinyal yang dilakukan berbasis software yang selanjutnya akan diimplementaskan pada board Blackfin. Pengolahan tersebut dilakukan dengan bantuan software Visual DSP++ 5.0. Tujuan yang ingin dicapai dari percobaan Modul 6 ini antara lain : a. Praktikan memahami dan mampu melakukan desain filter IIR b. Praktikan memahami algoritma filter IIR reltime c. Praktikan mampu untuk mengimplementasikan algoritma filter IIR realtime pada DSP Blackfin BF561EZ
2.
keluaran digital yang memiliki sifat tertentu sesuai dengan tujuan filter. Filter digital dapat dibagi menjadi dua yaitu Filter Digital IIR (Infinite Impulse Response) dan FIR (Finite Impulse Response). Perbedaan antara kedua filter tersebut yaitu FIR memiliki tanggapan impulse yang terbatas sedangkan IIR tanggapan impulsenya tidak terbatas.
STUDI PUSTAKA
Filter Digital Filter figital adalah suatu prosedur matematika atau algoritma yang melakukan pengolahan sinyal masukan (sinyal digital) dan mengahasilkan isyarat
Bandpass filter Band pass filter (BPF) adalah filter yang akan meloloskan sinyal pada range frekuensi diatas frekuensi batas bawah (fL) dan dibawah frekuesni batas atas (fH). Dalam band pass filter (BPF) ini dikenal 2 jenis rangkaian band pass filter (BPF) yaitu band pass filter (BPF) bidang lebar dan band pass filter (BPF) bidang sempit. Untuk membedakan kedua rangkaian ini adalah dengan melihat dari nilai figure of merit (FOM) atau Faktor kualitas (Q).
Filter Butterworth Filter butterworth menghasilkan tanggapan frekuensi yang datar pada daerah passband dan redaman yang meningkat secara monotikal pada stopband. Oleh karena itu, Butterworth low- pass filter sering digunakan sebagai anti-aliasing filter dalam aplikasi konverter data di mana tingkat sinyal yang tepat diperlukan di seluruh sinyal passband.
Laporan Praktikum - Laboratorium Dasar Teknik Elektro – STEI ITB
1
Konfigurasi Butterworth adalah salah satu konfigurasi standar dari filter rekursif baik dalam bentuk analog maupun digital. Konfigurasi ini menekankan pada aproksimasi karakteristik lowpass dengan hasil respons yang mendekati titk nol dengan halus dan rata (smooth and flat). Filter Butterworth didefinisikan melalui persamaan magnitude function H(ω) sebagai berikut:
kestabilannya. Pustaka yang digunakan juga tidak terlalu banyak dan waktu tunggunya tidak terlalu lama. Sedangkan kekurangannya yaitu terletak pada interface (antar muka) yang sedikit kaku dibandingkan dengan aplikasi sejenis. Pada praktikum ini, software audacity digunakan untuk melihat bentuk sinyal input dan output serta meliha respons frekuensinya.
3.
METODOLOGI
Pada percobaan 2 ini, alat dan bahan yang digunakan yaitu :
di mana N adalah nilai orde filter.
1.
1 Unit computer
2.
Software MATLAB dan Visual DSP++ 5.0
3.
Kit Blackfin BF561EZ, adaptor, kabel RCA, converter RCA, dan speaker aktif.
Memulai percobaan
Jelas dari rumus di atas bahwa magnitude function Butterworth adalah fungsi frekuensi (ω) yang menurun secara monoton, dengan nilai maksimumnya dari unity terjadi pada saat = 0. Untuk = 1, nilai magnitude adalah sama dengan 1/2 untuk semua nilai N. Dengan demikian, filter Butterworth dalam bentuk normal memiliki frekuensi cut-off sebesar 3 dB. Dari gambar respon frekuensi yang dihasilkan menunjukkan plot dari karakteristik magnitude dari filter ini sebagai fungsi frekuensi (ω) untuk beberapa tingkatan orde. Nampak bahwa semakin tinggi tingkatan orde, karakteristik filter Butterworth semakin mendekati filter ideal. White Noise
White noise adalah salah satu varian dari color noise. Memiliki ciri khas spectral density/ power spectrum yang konstant. Demikian juga secara spectrum analyzer yang KRP lakukan (melalui metode Graussian) frequency dari 100hz - 16Khz spektrumnya cenderung konstant. Audacity Audacity merupakan sebuah aplikasi pemberi efek suara. Aplikasi ini dibangun dengan pustaka WxWidgets sehingga dapat berjalan pada berbagai Operating System. Dengan menggunakan audacity, pengguna dapa mengoreksi berkas suara tertentu, atau sekedar menambahkan berbagai efek yang disediakan. Kelebihan aplikasi ini terletak pada fitur yang disediakan serta
Sebelum memulai percobaan, isi dan tanda tangani lembar penggunaan meja yang tertempel pada masing-masing meja praktikum Desain dan implementasi filter IIR Dilakukan desain Filter Band Pass dengan filter IIR dengan pendekatan Transformasi Bilinier dengan filter BUtterworth menggunakan software MATLAB
Dibuat source code program untuk Filter Band Pass IIR untuk EZ-Lite Kit BF-561 dengan melakukan modifikasi program Talkthrough_TDM_C pada modul 3 atau program filter FIR pada modul 4
Dilakukan pengujian filter yang telah dibuat dengan menggunakan white noise sebagai input. White noise mempunyai daya yang sama pada semua komponen frekuensi. White noise ini dapat dihasilkan dari program audacity.
Direkan keluaran filter dengan Audacity.Dilakukan pengecekean pada spektrum sinyal hasil rekaman. Digunakan hasil ini sebagai konfirmasi apakah filter Band Pass telah berfungsi sesuai dengan yang diinginkan. Seharusnya dihasilkan sinyal dengan spektrum dengan daya yang sama pada rentang frekuensi pass band nya.
Laporan Praktikum - Laboratorium Dasar Teknik Elektro – STEI ITB
2
4.
HASIL DAN ANALISIS
DESAIN DAN IMPLEMENTASI FILTER IIR
Pada percobaan VI ini dilakukan didesain sebuah filter IIR bandpass. Sebelum mendesain menggunakan DSP, terlebih dahulu dibuat propotype untuk filter IIR. Prototype yang dipilih yaitu Butterworth bandpass dengan spesifikasi : Ωs1 = 400 Hz
Desain filter telah berhasil dilakukan. Selanjutnya untuk melihat frekuensi respon filter, maka dilakukan plot grafik magnitude dan phasa nya :
Ωp1 = 2000 Hz Ωp2 = 6000 Hz Hasilnya :
Ωs2 = 1400 Hz Fs = 48000 Hz Rp ≤ 1 dB As ≤ 20 dB Untuk memperoleh orde filter (N) dan letak frekuensi cut-off nya (Wn), maka filter Butterworth haruslah memiliki ripple passband yang tidak lebih dari 1 dB dan peredaman stopband yang tidak kurang dari 20 dB dengan Wp dan Ws adalah frekuensi tepi passband dan stopband. Dimasukan inisialisasi sebagai berikut :
Berdasarkan gambar diatas diketahui bahwa desain telah berhasil membentuk bandpass filter. Hasil desain filter pada MATLAB ini merupakan filter yang realtime sehingga frekeunsi respons yang dihasilkan bersifat kausal. Kausalitas menyebabkan frekuensi respons yang dihasilkan tidak dapat berubah dari passband lalu menjadi stopband secara tiba-tiba. Transisi antara passband dan stopband ini disebut transition band atau transition region. ωp adalah adalah batas passband sedangkan ωs adalah batas stopband. Dari kedua nilai tersebut (ωp dan ωs) dapat ditentukan lebar transition band adalah ωs -- ωp.
Mencari nilai N dan Wn :
Lalu untuk mekakukan desain filter dan memperoleh koefisien numerator (B) dan denumerator (A) dari filter, maka digunakan fungsi :
Sehingga diperoleh koefisien filter sebagai berikut :
Tahap selanjutnya yaitu didesain filter IIR dengan transformasi bilinier yang dilakukan dengan cara mengganti kode Process_data.c yang terdapat pada Talkthrought_TDM_C pada Visual DSP++. (kode Process_data.c terlampir) Filter IIR yanf telah selesai didesain dan diimplementasikan pada blackfin BF561EZ. Kemudian dilakukan verifikasi menggunakan sinyal input white noise dan dicek keluarannya menggunakan software Audacity.
Laporan Praktikum - Laboratorium Dasar Teknik Elektro – STEI ITB
3
Apabila dibandingkan, spectrum plot yang dihasilkan dengan plot grafik yang diperoleh menggunakan MATLAB memiliki bentuk yang sama sehingga dapat dikatakan bahwa filter yang dibuat telah sesuai (yaitu bandpass filter).
KESIMPULAN Kesimpulan yang diperoleh dari praktikum ini antara lain :
Berdasarkan gambar sinyal keluaran diatas terlihat bahwa plot frekuensi respons yang dihasilkan telah sesuai dengan desain bandpass filter yang diinginkan. Data nilai magnitude pada Ωs1, Ωp1, Ωp2, dan Ωs2 adalah sebagai berikut : Frekuensi (Hz)
Magnitude (dB)
400
-27
2000
-13
6000
-13
14000
-33
Dalam melakukan desain filter IIR, terlebih dahulu harus diketahui spesifikasi filter IIR yang akan dibuat. Kemudain frekuensi pass band dan stop band dari filter dinormalisasi dengan menggunakan setengah frekuensi sampling lalu dilakukan perhitungan orde serta koefisien filter dengan bantuan MATLAB.
Pada proses implementasi filter, dapat menggunakan algoritma filter realtime dengan buffer circular. Keuntungan dari filter realtime dengna buffer circular ini yaitu lebih menghemat memory dibandingkan jika tidak menggunakan buffer circular. Algoritma yang digunakan yaitu dengan menampung input dalam buffer kemudian dilakukan konvolusi dengan menggunakan parameter filter yang dilakukan secara realtime.
Pada proses selanjutnya yaitu dilakukan kompilasi kode yang telah dibua sehingga dapat dijalankan kode dapat dijalankan pada Board BF561EZ. Board ini mampu menjalankan algoritma yang telah dibuat dengan koefisien filter yang sudah dirancang sehingga dapat dilakukan Digital Signal Processing secara realtime. Setelah implementasi selesai, kemudian dapat dilakukan pengamatan sinyal output yang dihasilkan dengan menggunakan software pengolah sinyal (contohnya audacity).
DAFTAR PUSTAKA [1].
Mervin T Hutabarat, Praktikum Pengolahan Sinyal Digital, Laboratorium Dasar Teknik Elektro ITB,Bandung, 2015.
[2].
Proakis, John G. dan Dimitris G. Manolakis. 2007. Digital Signal Processing Principles, Algorithms, and Applications Fourth Edition. New Jersey, Prentice Hall
Berdasarkan table diatas, terlihat bahwa tidak ada perbedaan selisih dB pada bandpassnya (f = 2 kHz dan f = 6kHz). Hal ini menunjukan filter yang dibuat telah sesuai dengan spesifikasi yaitu Rp ≤ [3]. 1 𝑑𝐵. Lalu untuk sesilih magnitude antara f = 400 Hz dan f = 14 kHz sebesar 6 dB yang menunjukan bahwa As ≤ 20 dB.
https://prezi.com/i8wrpun5ofzc/infiniteimpuls-response-filter/, 22 November 2015,
13.14
Laporan Praktikum - Laboratorium Dasar Teknik Elektro – STEI ITB
4
[4].
http://elektronika-dasar.web.id/band-passfilter-bpf-aktif/, 22 November 2015, 13.33
[5].
https://www.academia.edu/7061066/Butterwor th, 22 November 2015, 13.38
[6].
http://kenalirangkaipakai.blogspot.co.id/2014/ 04/colour-noise.html, 22 November 2015, 13.47
Laporan Praktikum - Laboratorium Dasar Teknik Elektro – STEI ITB
5
LAMPIRAN 1. Source code process_data.c #include "Talkthrough.h" #include "math.h" int int int int
buffer_input_left[5]; buffer_input_right[5]; buffer_output_left[5]; buffer_output_right[5];
int tempLeft, tempRight = 0; int i,j=0; // Filter Coefficients (from MATLAB): int a[5]={536870912, -1453348081, 1574796169, -838799089, 194152261}; int b[5]={45943255, 0, -91886509, 0, 45943255}; void Process_Data(void) { for(i = 4; i > 0; i--) { buffer_input_left[i] = buffer_input_left[i - 1]; buffer_input_right[i] = buffer_input_right[i - 1]; buffer_output_left[i] = buffer_output_left[i - 1]; buffer_output_right[i] = buffer_output_right[i - 1]; } buffer_input_left[0] = iChannel0LeftIn; buffer_input_right[0] = iChannel0RightIn; tempRight = 0; tempLeft = 0; for(i = 0; i < 5; i++) { tempLeft += (buffer_input_left[i] >> 15) * (b[i] >> 16); tempRight += (buffer_input_right[i] >> 15) * (b[i] >> 16); } for(i = 1; i < 5; i++) { tempLeft -= (buffer_output_left[i] >> 15) * (a[i] >> 16); tempRight -= (buffer_output_right[i] >> 15) * (a[i] >> 16); } tempLeft = tempLeft * 4; tempRight = tempRight * 4; buffer_output_left[0] = tempLeft; buffer_output_right[0] = tempRight; iChannel0LeftOut = tempLeft; iChannel0RightOut = tempRight; iChannel1LeftOut = iChannel1LeftIn; iChannel1RightOut = iChannel1RightIn; }
Laporan Praktikum - Laboratorium Dasar Teknik Elektro – STEI ITB
6