MODUL IV DESAIN FILTER DAN IMPLEMENTASI ALGORITMA DSP Rosana Dewi Amelinda (13213060) Asisten : Alinda Nur Fitriana (13212032) Tanggal Percobaan: 26/10/2015 EL3110-Praktikum Pengolahan Sinyal Digital
Laboratorium Dasar Teknik Elektro - Sekolah Teknik Elektro dan Informatika ITB Abstrak Abstrak Pada praktikum Modul IV ini dilakukan desain dan implementasi filter dengan mengguanakan algoritma Digital Signal Processing. Ketiga percobaan yang dilakukan antara lain membuat filter low-pass, band-pass, dan high-pass dengan menggunakan MATLAB. Setelah itu diperoleh koefisien untuk masing-masing filter (orde 31). Dari koefisien yang diperoleh tersebut selanjutnya dimasukan kedalam kode program pada Visual DSP++5.0 yang berikutnya akan dilakukan compiling dan debugging pada program. Setelah selesai, maka filter selanjutnya diimplementasikan pada board Blackfin BF561EZ. Port input pada blackfin dihubungkan pada computer serta outputnya dihubungkan ke speaker. Apabila implementasi telah selesai dikukan, selanjutnya diamati plot frekuensi yang dihasilkan dari proses pem-filteran dengan menggunakan software Audacity. Kata kunci: MATLAB, Visual DSP++, Blackfin BF561EZ, Audacity. 1.
PENDAHULUAN
Pada praktikum modul 4 ini mengarahkan praktikan untuk mempelajari pengolahan sinyal digital dengan menggunakan hadware blackfin BF561EZ. Pengolahan sinyal yang dilakukan berbasis software yang selanjutnya akan diimplementaskan pada board Blackfin dengan arsitektur SIMD. Pengolahan tersebut dilakukan dengan bantuan software Visual DSP++ 5.0. Tujuan yang ingin dicapai dari percobaan Modul 4 ini antara lain : a. Praktikan mampu menjelaskan bagianbagian penting dari Blackfin BF561EZ beserta fungsinya b. Praktikan mampu melakukan troubleshooting BF561EZ c. Mengimplementasikan pem-filter-an FIR untuk berbagai macam filter di BF561EZ d. Melakukan verifikasi filter FIR hasil implementasi
2.
digunakan untuk penelitian dan pengembangan aplikasi menggunakan Prosesor ADSP BF561. BF561EZ ini terdiri dari bermacam-macam peripheral yang digunakan untuk pengembangan. BF561EZ mempunyai fitur : Prosesor ADSP-BF561 Blackfin 64 MB (16 M x 16-bit x 2) SDRAM 8 MB (4 M x 16-bit) FLASH memory AD1836 multichannel 96 kHz audio codec 3 RCA jack untuk composite (CVBS), differential component (YUV) atau S video (Y/C) input RCA jack untuk input/output audio stereo 10-bit video decoder ADV7183A NTSC/PAL video encoder ADV7179 Pada Gambar 1 ditampilkan blok diagram dari Blackfin BF561EZ. ADSP-BF561 merupakan anggota dari keluarga prosesor Blackfin yang memang ditargetkan untuk konsumen aplikasiaplikasi multimedia. Di dalam perangkat ini terdapat dua core prosesor Blackfin yang independen satu sama lain yang menawarkan performa tinggi serta konsumsi daya yang rendah dengan tetap menjaga kemudahan penggunaan serta kompatibilitas. Arsitektur inti mengombinasikan mesin pengolah sinyal dualMAC, kemampuan single-instruction multiple-data (SIMD) yang fleksibel dan fitur-fitur multimedia ke dalam arsitektur single-instruction-set. Gambar 1 Blok Diagram Blackfin BF561EZ
STUDI PUSTAKA
Blackfin BF561EZ Blackfin BF561EZ adalah sebuah development board produksi dari Analog Devices yang
Produk-produk Blackfin memiliki fitur Dynamic Power Management, yang merupakan kemampuan untuk memvariasikan tegangan dan
Laporan Praktikum - Laboratorium Dasar Teknik Elektro – STEI ITB
1
frekuensi operasional, demi optimasi konsumsi daya disesuaikan dengan tugas yang dijalankan. Periferal-periferal ADSP-BF561EZ Sistem ADSP-BF561 memiliki periferal-periferal sebagai berikut: Antarmuka Periferal Parallel / Parallel Peripheral Interfaces (PPIs) Port Serial / Serial Ports (SPORTs) Antarmuka Periferal Serial / Serial Peripheral Interface (SPI) Timer multi-guna / General-Purpose Timers Universal Asynchronous Receiver Transmitter (UART) Watchdog Timers I/O multi-guna / General Purpose I/O (Programmable Flags)
Gambar 2 Arsitektur setiap inti BF-561
40
File register komputasi mengandung delapan register 32-bit. Saat menjalankan operasi-operasi komputasi pada data operand 16-bit, file register Periferal-periferal tersebut di atas beroperasi sebagai 16 register 16-bit yang terhubungkan dengan inti melalui beberapa bus independen. Semua operand untuk operasi-operasi ber-bandwidth besar, seperti ditampilkan pada komputasi berasal dari file register multi-port dan Gambar 1. field-field instruksi yang konstan. Semua periferal kecuali I/O multi-guna dan Setiap MAC dapat menjalankan sebuah 16 x 16 Timer, didukung oleh struktur DMA yang fleksibel, bit perkalian setiap siklusnya, dengan akumulasi termasuk di antaranya adalah dua buah pengatur ke sebuah hasil 40-bit. Format-format signed dan DMA (DMA1 dan DMA2) dan sebuah pengatur unsigned, pembulatan dan saturasi didukung di internal memory DMA (IMDMA). Pada masing- dalamnya. masing dari DMA1 dan DMA2, terdapat dua belas ALU menjalankan set-set traditional kanal periferal DMA yang dapat deprogram dan aritmatikadan operasi-operasi logika pada data 16dua aliran memori DMA terpisah, ditujukan untuk bit atau 32-bit. Beberapa instruksi-instruksi khusus transfer data antar ruang memori DSP, yang tergabung di dalamnya untuk mempercepat mencakup SDRAM dan memori asynchronous. berbagai tugas pengolahan sinyal. Ini mencakup Beberapa bus on-chip menyediakan bandwidth operasi-operasi bit seperti field extract dan yang cukup untuk menjaga agar inti prosesor population count, perkalian modulo 232, pembagian berjalan meskipun terdapat pula aktivitas pada primitive, saturasi dan pembulatan, dan deteksi semua periferal-periferal on-chip dan periferal- sign/eksponen. Set dari instruksi-instruksi video periferal eksternal. mencakup bytealignment dan operasi packing, penjumlaahan 16-bit dan 8-bit dengan clipping, Arsitektur Inti (Core)ADSP-BF561 operasi rata-rata 8-bit, dan operasi-operasi ADSP-BF561 memiliki dua inti Blackfin identik pengurangan / nilai absolute/ akumulasi 8-bit. dan setiap inti mengandung dua 16-bit multiplier, Selain itu tersedia pula instruksi-instruksi dua 40-bit accumulator, dua 40-bit arithmetic logic perbandingan dan pencarian vektor. Untuk unit (ALU),empat 8-bit video ALU dan sebuah 40- beberapa instruksi, dua operasi 16-bit ALU dapat bit shifter bersamaan dengan unit-unit fungsional dijalankan bersamaan pada pasangan register (16dari setiap inti, seperti ditampilkan pada Gambar 2. bit paruh tengah atas dan 16-bit paruh tengah Unit-unit komputasional memproses data 8-, 16-, bawah dari register komputasi). Juga dengan atau 32-bit dari register. menggunakan ALU kedua, operasi quad 16-bit juga dimungkinkan. Shifter 40-bit dapat menyimpan data dan juga menjalankan operasi pergeseran, rotasi, normalisasi dan ekstraksi. Sebuah pegurut program mengendalikan aliran dari eksekusi instruksi termasuk instruksi alignment dan decoding. Untuk pengendalian aliran program, pengurut mendukung PC-relative dan conditional jump tidak langsung (dengan prediksi cabang statis), dan panggilan-panggilan Laporan Praktikum - Laboratorium Dasar Teknik Elektro – STEI ITB
2
subrutin. Perangkat keras disediakan untuk mendukung zero-overhead looping. Unit alamat aritmatika menyediakan dua alamat untuk pengambilan secara simultan dari memori. Unit ini mengandung file register multiport yang terdiri dari empat set 32-bit, yaitu register Index, register Modify, register Length dan register Base (untuk circular buffer), dan delapan register pointer 32-bit tambahan. Produk-produk Blackfin mendukung arsitektur Harvard termodifikasi dalam kombinasinya dengan struktur memori hierarki. Memori level 1 (L1) biasanya beroperasi pada kecepatan prosesor maksimum tanpa latensi. Pada level L1, memori instruksi memegang hanya instruksi-instruksi saja dan memori data memegang data, sedangkan sebuah memori data scratchpad terdedikasi menyimpan informasi mengenai stack dan variabel-variabel lokal. Selain itu tersedia pula blok-blok memori L1, yang dapat dikonfigurasi sebagai campuran antara SRAM dan cache. Memory Management Unit (MMU) menyediakan proteksi memori untuk pekerjaan-pekerjaan individual yang mampu beroperasi pada inti dan dapat melindungi register sistem dari akses yang tidak diinginkan. Inti ganda pada ADSP-BF561 saling membagi sistem memori on-chip L2, yang mampu menyediakan akses SRAM kecepatan tinggi dengan hambatan yang cukup besar. Memori L2 merupakan suatu kesatuan memori instruksi dan data serta dapat menyimpan berbagai campuran data dan kode yang dibutuhkan oleh desain sistem. Arsitektur menyediakan tiga mode operasi: User, Supervisor, dan Emulation. Mode User memiliki akses terbatas untuk sebuah subset dari sumber daya sistem sehingga menyediakan lingkungan perangkat lunak yang terlindungi. Mode Supervisor dan Emulation memiliki akses yang tak terbatas pada sumber daya inti. Set instruks Blackfin telah dioptimasi sedemikian sehingga op-codes 16-bit mewakilkan instruksi-instruksi yang paling sering digunakan. Instruksi-instruksi DSP yang kompleks dikodekan menjadi op-codes 32-bit sebagai instruksi-instruksi multifungsi. Produk-produk Blackfin mendukung kemampuan multi-isu yang terbatas, di mana insturks 32-bit dapat diisukan secara parallel bersamaan dengan instruksi-instruksi 16-bit. Ini memungkinkan seorang programmer untuk menggunakan banyak sumber daya inti dalam satu siklus instruksi. Bahasa assembly ADSP-BF561 menggunakan sebuah sintaks aljabar. Arsitektur juga diptimasikan untuk digunakan dengan sebuah compiler C. Dasar teori pemfilteran
Sinyal di dunia nyata ada dalam bentuk analog dan selalu merupakan sinyal komposit antara bagian yang diketahui dan yang tidak diketahui. Misalnya, suara di jalur telepon adalah gabungan dari suara speaker di ujung dan derau. Pendengar di ujung harus mem-filter suara dominan agar pembicaraan dapat berlangsung. Contoh ini menunjukkan bahwa telepon mem-filter hampir semua derau kanal dan selanjutnya terserah pengguna untuk mem-filter dan mengartikan suara. Karenanya, pem-filter-an adalah teknik pemrosesan sinyal yang mendasar untuk mengekstrak sinyal yang diperlukan dari bentuk aslinya. Semua teknik pem-filter-an analog –low-pass, high-pass, band-pass, dan band-stop– dapat diimplementasikan di domain dijital bila sinyalnya di-sampling dengan tepat. Sampel sinyal ini dikirim melalui struktur filter dijital untuk melakukan pemfilter-an. Filter dijital diklasifikasi menjadi filter FIR (Finite Impulse Response) dan IIR (Infinite Impulse Response). Masing-masing filter ini dapat melakukan hal yang serupa dengan filter analog. input analog h(t) output analog input analog A/D h(n) D/A output analog Filter analog mengambil input analog dan menghasilkan output analog. Filter dijital, dengan adanya perangkat pencuplikan dan konverter, melakukan hal yang sama dengan filter analog. Pada kasus pem-filter-an dijital, fungsi transfernya akan berupa model filter FIR ataupun IIR. Sinyal keluarannya dapat ditulis sebagai persamaan perbedaan agar model filter dapat diimplementasikan ke hardware dijital. Filter FIR adalah sistem waktu diskrit yang respon impulsnya terbatas: h[n]=(h0, h1, h2, ..., hN-1) Fungsi transfer H(z) berupa polinom dalam z-1, yaitu H(z)=h0+h1z-1+ h2z-2+ h3z-3+ ... + hN-1z(N-1) Karenanya filter ini memiliki N-1 zero dan tidak memiliki pole. Persamaan perbedaan filter FIR tidak rekursif,
Keuntungan filter FIR : Selalu stabil (karena fungsi transfer tidak memiliki pole) Dapat dirancang untuk memiliki fasa linier Lebih mudah untuk diimplementasikan ke hardware
Laporan Praktikum - Laboratorium Dasar Teknik Elektro – STEI ITB
3
Respon transien memiliki durasi yang terbatas Tetapi filter ini juga memiliki beberapa kelemahan yaitu membutuhkan banyak orde untuk memperoleh respons filter yang semakin baik sehingga otomatis delay-nya pun lebih lama. Penyimpanan koefisien filter dan sinyal input Dari percobaan sebelumnya Anda telah memperoleh koefisien filter untuk melakukan pemfilter-an. Kita akan menggunakannya sebagai koefisien filter yang akan diterapkan di BF561. Nantinya kita akan mencoba program filter dalam bahasa pemograman C ataupun Assembly, jadi kita dapat menuliskan koefisien tersebut di program kita, seperti berikut (contoh)
int koef={a1,a2,a3,a4}; Tetapi biasanya akan lebih mudah bila kita menyimpan koefisien tersebut di dalam file. Hal ini memudahkan apabila kita ingin mengganti-ganti koefisien kita dengan cepat.43 Perhatikan bahwa koefisien harus ditulis dalam format Q31 dan jangan lupa bahwa prosesor yang kita gunakan adalah prosesor fixed-point 32 bit sehingga setiap bilangan direpresentasikan dalam 32 bit dengan kisaran –2-31 sampai 231-1 atau – 2147483648 – 2147483647 untuk –1 sampai 1. Q31 adalah salah satu contoh format Q, yaitu penulisan bilangan untuk bilangan fixed-point. Pada BF561 yang merupakan prosesor fixed-point 32 bit, maka untuk N=32, digunakan format Q31. Format Q31 ini merepresentasikan fraksional 31 bit. Pada format ini, MSB adalah sign bit yang diikuti oleh suatu titik imajiner, dan kemudian 31 bit atau mantisa yang dinormalisasi ke 1. Bilangan Q31 memiliki kisaran desimal antara –1 sampai 0.9999 (0x8000h sampai 0x7FFFh). Bilangan fraksional h dapat direpresentasikan sebagai
dimana h adalah bilangan fraksional dan b adalah biner 1 atau 0. 1. Buat skrip dalam Matlab yang mengubah ketiga koefisien filter dan koefesien sinyal input menjadi format Q31 sebelum menyimpannya ke file dalam bentuk di atas! Misal (contoh untuk koefisien filter fir 31 titik): koef=fir1(30,800/48000); koef=round(2^31*koef); fid=fopen('koef.dat','w+'); count=fprintf(fid,'%d, ',koef); fclose(fid) 2. Jalankan skrip yang Anda buat.
3. Skrip pada contoh di atas akan menghasilkan file koef.dat pada folder tempat file skrip berada. File koef.dat ini berisi koefesien-koefesien dalam format Q31. 4. Setelah Anda menjalankan keempat skrip tersebut, maka Anda akan memperoleh empat buah file *.dat yang berisi koefesien-koefesien dalam format Q31. Sekarang Anda siap untuk melakukan pem-filter-an FIR. White noise White noise adalah sinyal acak (random) dengan spektrum daya flat. Artinya sinyal white noise memiliki daya yang sama pada bandwidth yang tetap pada setiap frekuensi tengah. White noise merupakan nama yang diturunkan dari cahaya putih yang spektrum daya dari cahayanya terdistribusi pada rentang band cahaya tampak. Bandwidth dari white noise terbatas pada prakteknya oleh mekanisme pembangkitan noise, media transmisi. Sinyal random dapat dikatakan white noise jika memiliki spektrum yang flat pada bandwidth terlebar yang mungkin dapat dilewatkan pada sebuah medium. 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 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 : 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 Sebelum memulai percobaan, isi dan tanda tangani lembar penggunaan meja yang tertempel pada masing-masing meja praktikum Menyusun rangkaian
Laporan Praktikum - Laboratorium Dasar Teknik Elektro – STEI ITB
4
a.
Percobaan implementasi filter fir : low-pass filter
Dengan cara yang sudah dibahas pada modul dua dan metode pengambilan koefisien yang telah dibahas pada subbab 4 di atas FIR dibuat filter tipe band-pass orde 31 dengan frekuensi pass 1000-3000 Hz dengan MATLAB.
Dengan cara yang sudah dibahas pada modul dua dan metode pengambilan koefisien yang telah dibahas pada subbab 4 di atas FIR dibuat filter tipe low-pass orde 31 dengan frekuensi cut-off 800 Hz dengan MATLAB.
Ditampilkan VisualDSP++ dan siapkan program yang digunakan pada modul tiga.
Ditampilkan VisualDSP++ dan siapkan program yang digunakan pada modul tiga.
Dibuka Process_data.c pada bagian CoreA SourceFiles (dengan jalan diklik tanda (+) pada tulisan CoreA dan Source Files) dari Project window
Dibuka Process_data.c pada bagian CoreA SourceFiles (dengan jalan diklik tanda (+) pada tulisan CoreA dan Source Files) dari Project window
Perhatikan bagian: //Filter Coefficients (from MATLAB): int filter[BUFFERLENGTH]={…}; ////////////////////////////////////////////////////
Perhatikan bagian: //Filter Coefficients (from MATLAB): int filter[BUFFERLENGTH]={…}; ////////////////////////////////////////////////////
Diganti koefisien-koefisien tersebut dengan koefisien low-pass filter yang telah didapatkan dalam MATLAB.
Diganti koefisien-koefisien tersebut dengan koefisien low-pass filter yang telah didapatkan dalam MATLAB.
Pada menu bar diklik Project Build Project. Atau dapat pula dilakukan dengan cara menekan tombol F7 pada keyboard.
Pada menu bar diklik Project Build Project. Atau dapat pula dilakukan dengan cara menekan tombol F7 pada keyboard.
Untuk menjalankan program yang telah di-build, pada menu bar diklik Debug -> Run. Atau dapat pula dilakukan dengan cara menekan tombol F5 pada keyboard.
Untuk menjalankan program yang telah di-build, pada menu bar diklik Debug -> Run. Atau dapat pula dilakukan dengan cara menekan tombol F5 pada keyboard.
Dilakukan pengamatan pada sinyal masukan dan keluaran. Perhatikan efek pemfilteran (low-pass filtering) yang telah diterapkan.
Dilakukan pengamatan pada sinyal masukan dan keluaran. Perhatikan efek pemfilteran (low-pass filtering) yang telah diterapkan.
Diuji filter yang telah dibuat dengan menggunakan White noise sebagai input. White noise mempunyai daya sama pada semua komponen frekuensi. White noise ini bisa dihasilkan dengan program Audacity.
Diuji filter yang telah dibuat dengan menggunakan White noise sebagai input. White noise mempunyai daya sama pada semua komponen frekuensi. White noise ini bisa dihasilkan dengan program Audacity. Direkam keluaran filter dengan program Audacity. Diperiksa spektrum sinyal hasil rekaman. Hasil ini digunakan sebagai konfirmasi apakah filter Low Pass telah berfungsi sesuai dengan yang diinginkan.. b.
c.
Direkam keluaran filter dengan program Audacity. Diperiksa spektrum sinyal hasil rekaman. Hasil ini digunakan sebagai konfirmasi apakah filter Low Pass telah berfungsi sesuai dengan yang diinginkan..
Percobaan implementasi filter fir : Bandpass filter
Laporan Praktikum - Laboratorium Dasar Teknik Elektro – STEI ITB
5
d. Percobaan implementasi filter FIR : high-pass filter Dengan cara yang sudah dibahas pada modul dua dan metode pengambilan koefisien yang telah dibahas pada subbab 4 di atas FIR dibuat filter tipe high-pass orde 31 dengan frekuensi cut-off 6000 Hz dengan MATLAB.
Sebelum keluar dati ruang praktikum, dirapikan meja praktikum dan dimatikan komuter dati jala-jala listrik.
Dimatikan MCB dimeja praktikum sebelum meninggalkan ruangan.
Ditampilkan VisualDSP++ dan siapkan program yang digunakan pada modul tiga. Diperiksa lembar penggunaan meja.
Dibuka Process_data.c pada bagian CoreA SourceFiles (dengan jalan diklik tanda (+) pada tulisan CoreA dan Source Files) dari Project window
Dipastikan asisten telah menandatangani catatan percobaan kali ini pada Buku Catatan Laboratorium.
Perhatikan bagian: //Filter Coefficients (from MATLAB): int filter[BUFFERLENGTH]={…}; //////////////////////////////////////////////////// Diganti koefisien-koefisien tersebut dengan koefisien low-pass filter yang telah didapatkan dalam MATLAB.
4.
HASIL DAN ANALISIS
Pada menu bar diklik Project Build Project. Atau dapat pula dilakukan dengan cara menekan tombol F7 pada keyboard. Untuk menjalankan program yang telah di-build, pada menu bar diklik Debug -> Run. Atau dapat pula dilakukan dengan cara menekan tombol F5 pada keyboard. Dilakukan pengamatan pada sinyal masukan dan keluaran. Perhatikan efek pemfilteran (low-pass filtering) yang telah diterapkan.
PERCOBAAN IMPLEMENTASI FILTER FIR : LOW-PASS FILTER
Sebelum dilakukan implementasi pada board blackfin BF561EZ dilakukan pengambilan koefisien filter low-pass terlebih dahulu dengan menggunakan MATLAB seperti yang telah dilakukan pada praktikum sebelumnya. Filter lowpass yang dibuat yaitu low-pass orde 31 dengan frekuensi cut-off 800 Hz dan frekuensi sampling 44100 Hz. Berikut perintah yang dilakukan untuk membuat filter tersebut :
Diuji filter yang telah dibuat dengan menggunakan White noise sebagai input. White noise mempunyai daya sama pada semua komponen frekuensi. White noise ini bisa dihasilkan dengan program Audacity.
Direkam keluaran filter dengan program Audacity. Diperiksa spektrum sinyal hasil rekaman. Hasil ini digunakan sebagai konfirmasi apakah filter Low Pass telah berfungsi sesuai dengan yang diinginkan.. e.
Mengakhiri Percobaan
Perintah diatas melakukan pengubahan pada koefisien filter menjadi bilangan fraksional terlebih dahulu. Hal ini dikarenakan processor Blackfin merupakan processor fixed point 32 bit sehingga hanya dapat mengoperasikan bilangan integer Q31. Setelah perintah tersebut dieksekusi, maka dihasilkan koefisien low-pass filter sebagai berikut : Koefisien filter lowpass :
Koef 1-8 9501591 10873024 14682993 20868126 29240675 39495376
Koef 9-16 77056814 90019279 102223560 113104270 122152083 128940232
Koef 17-24 133146808 128940232 122152083 113104270 102223560 90019279
Koef 24-31 51222774 39495376 29240675 20868126 14682993 10873024
Laporan Praktikum - Laboratorium Dasar Teknik Elektro – STEI ITB
6
51222774 133146808 77056814 9501591 63928399 134571638 63928399 Setelah diperoleh koefisien filter, selanjutnya dilakukan impementasi filter pada board Blackfin BF561EZ dengan perantara software Visual DSP++5.0. Hasil implementasi dari lowpass filter yang telah dibuat yaitu sebagai berikut : Gambar 3 Sinyal hasil pem-filter-an low pass (domain waktu)
off dari grafik dilakukan dengan mencari frekuensi dimana daya sinyal sebesar -3 dB menurun setengah dayanya (-3 dB + (-3 dB)) hingga menjadi -6 dB. Seperti terlihat pada gambar, daya -6 dB terjadi pada frekuensi seitar 1000 Hz. Nilai ini hanya berbeda sedikit dari nilai frekuensi cut-off yang dimasukan pada program untuk mencari koefisien filter yaitu 800 Hz. Hal ini membuktikan bahwa percobaan yang dilakukan sudah cukup akurat.
PERCOBAAN IMPLEMENTASI FILTER FIR : BAND-PASS FILTER
Sebelum dilakukan implementasi pada board blackfin BF561EZ dilakukan pengambilan koefisien filter band-pass terlebih dahulu dengan menggunakan MATLAB seperti yang telah dilakukan pada praktikum sebelumnya. Filter band-pass yang dibuat yaitu band-pass orde 31 dengan frekuensi pass 8000 - 10000 Hz dan frekuensi sampling 44100 Hz. Berikut perintah yang dilakukan untuk membuat filter tersebut :
Gambar 4 Analisis frekuensi low-pass filter
Pada gambar 4 diatas, terlihat hasil pem-filter-an sinyal input menghasilkan sinyal output yang memblok amplituda diatas frekuensi sebesar sekitar 3000 Hz dan hanya meloloskan frekuensi dibawahnya. Hal ini menujukan bahwa filter lowpas telah berhasil diimplemetasikan. Filterisasi dilakukan dengan memasukan sebuah sinyal yang mempunyai spektrum flat seperti ”white noise” (sinyal input yang digunakan pada praktikum kali in). Karena sinyal ini bersifat flat, maka respon frekuensi dari sinyal output yang dihasilkan akan mengikuti plot respon magnitude dari filter (low pass). Frekuensi cut-off bukanlah frekeunsi saat sinyal telah teredam (dimana pada percobaan ini sinyal teredam pada frekuensi diatas 3000 Hz), melainkan frekuensi ketika energi sinyal mulai menurun saat keluar dari suatu filter. Pada frekuensi cut-off, sinyal kehilangan ½ dayanya (gain berkurang -3 dB). Setelah melewarti frekuensi cut-off sinyal akan terus diperlemah (gain semakin negatif) sehingga mencapai gain saat sinyal teredam (yaitu pada frekuensi 300an Hz tersebut).
Perintah diatas melakukan pengubahan pada koefisien filter menjadi bilangan fraksional terlebih dahulu. Hal ini dikarenakan processor Blackfin merupakan processor fixed point 32 bit sehingga hanya dapat mengoperasikan bilangan integer Q31. Setelah perintah tersebut dieksekusi, maka dihasilkan koefisien low-pass filter sebagai berikut : Koefisien filter bandpass :
Koef 1-8 3207633 -7569188 -15808001 -2861428 33885068 47562098 -13305372 -102159300
Koef 9-16 -86085576 70900435 194681636 90305262 -164223673 -257125626 -39155809 244294203
Koef 17-24 -39155809 -257125626 -164223673 90305262 194681636 70900435 -86085576 -102159300
Koef 24-31 -13305372 47562098 33885068 -2861428 15808001 -7569188 3207633
Pada tampilan analisis frekuensi sinyal (gambar 4), terlihat bahwa sinyal mulai melemah (kurba turun) saat amplitudo berada pada daya sekitar -3 dB (puncak paling kiri). Untuk mencari frekuensi cutLaporan Praktikum - Laboratorium Dasar Teknik Elektro – STEI ITB
7
Setelah diperoleh koefisien filter, selanjutnya dilakukan impementasi filter pada board Blackfin BF561EZ dengan perantara software Visual DSP++5.0. Hasil implementasi dari lowpass filter yang telah dibuat yaitu sebagai berikut :
dengan frekuensi cut-off 6000 Hz. Berikut perintah yang dilakukan untuk membuat filter tersebut :
Gambar 5 Sinyal hasil pem-filteran band pass (domain waktu)
Perintah diatas melakukan pengubahan pada koefisien filter menjadi bilangan fraksional terlebih dahulu. Hal ini dikarenakan processor Blackfin merupakan processor fixed point 32 bit sehingga hanya dapat mengoperasikan bilangan integer Q31.
Gambar 6 Analisi frekuensi band-pass filter
Setelah perintah tersebut dieksekusi, maka dihasilkan koefisien low-pass filter sebagai berikut : Koefisien filter highpass :
Sama seperti percobaan sebelumnya, filterisasi dilakukan dengan cara memasukan sinyal input yang memiliki spektrum flat (yaitu white noise). Karena sinyal yang dijadikan input bersifat flat, maka respon frekuensi yang dihasilkan akan mengikuti plot respon magnituda dari filter. Dengan metoda yang sama pada percobaan sebelumnya, frekuensi pass dicari dengan melihat frekuensi dimana daya berkurang sebesar -3 dB. Amplutuda daya sinyal terbesar ada pada nilai sekitar –6 dB. Untuk frekuensi pass pertama (frekuensi rendah), daya berkurang menjadi -9 dB pada frekuensi sekitar 7900 Hz (sesuai dengan input awal pada MATLAB yaitu 8000 Hz). Sedangkan untuk frekuensi pass kedua (frekuensi tinggi), daya berkurang menjdai -9 dB pada frekuensi 9800 Hz (berbeda sedikut dengan frekuensi pass yang diinputkan yaitu 10 kHz). Hal tersebut membuktikan bahwa percobaan yang dilakukan telah benar.
PERCOBAAN IMPLEMENTASI FILTER FIR : HIGH-PASS FILTER
Sebelum dilakukan implementasi pada board blackfin BF561EZ dilakukan pengambilan koefisien filter low-pass terlebih dahulu dengan menggunakan MATLAB seperti yang telah dilakukan pada praktikum sebelumnya. Filter high-pass yang dibuat yaitu band-pass orde 31
Koef 1-8 -923724 2474125 6247337 7070356 -308013 -16263337 -29797308 -22147534
Koef 9-16 16908410 70985578 95221626 39692504 -113257554 -324670252 -509986110 1561410095
Koef 17-24 -509986110 -324670252 -113257554 39692504 95221626 70985578 16908410 -22147534
Koef 24-31 -29797308 -16263337 -308013 7070356 6247337 2474125 -923724
Gambar 7 Sinyal hasil pem-filter-an high pass (domain waktu)
Gambar 8 Analisis frekuensi high-pass filter
Bedasarkan gambar 8 diatas, terlihat bahwa filterisasi high pass sinyal input ”white noise” menghasilkan sinyal output yang memblok amplituda dibawah frekuensi sekitar 5000 Hz serta hanya meloloskan frekuensi diatasnya. Hal ini menunjukan bahwa filter high pass yang dibuat telah benar. Seperti pada percobaan sebelumnya, filterisasi dilakukan pada sinyal white noise dikarenakan
Laporan Praktikum - Laboratorium Dasar Teknik Elektro – STEI ITB
8
sinyal input ini memiliki spektrum yang flat sehingga respon frekuensi yang dihasilkan akan sama dengan respon magnituda dari filter yang digunakan. Untuk mencari frekuensi cut-off dari grafik dilakukan pengamatan ketika sinyal berkurang sebesar -3 dB. Amplituda daya terbesar pada plot frekuensi diatas yaitu -12 dB. Frekuensi saat daya sinyal sebesar -15 dB yaitu berada pada titik frekuensi 7000 Hz, hanya berbeda sedikit dait nilai frekuensi cut-off yang diinputkan pada MATLAB (yaitu 6000 Hz). Hal ini membuktikan bahwa filterisasi yang dilakukan memiliki tingkat akurasi yang cukup besar. Tugas Laporan 1.
Jelaskan penggunaan format bilangan Q32 pada processor fixed point DSP Blackfin BF561EZ
-
ADSP-BR561 memiliki dua inti blackfin identuk dan setiap inti mengandung sebuah 40-bit shifter, dua buah 16-bit multiplier, dua buah 40-bit accumulator, dua buah 40-bit Aritmatic Logic Unit (ALU), dan empat buah 8-bit video ALU beserta unit-unit fungsional dari setiap inti. Bilangan Q32 yang dimasukan dalam source code program dioperasikan secara population count, perkalian modulo 232, pembagian primitiv, saturasi dan pembulatan, serta deteksi sign/eksponen, menggunakan ALU yang ada pada processor DSP Blackfin.
2.
-
Penjelasan keuntungan menggunakan circular buffer untuk implementas filter FIR Algoritma circular buffer digunakan karena proses konvolusi dilakukan tanpa menggunakan time shifting, melainkan hanya dilakukan pengaturan indeks/kursor array yang dgunakan, sehingga kompleksitas program menjadi kecil dan processor melakukan komputasi yang lebih cepat.
3.
Penjelasan hasil pemfilteran low-pass, band-pass, dan high-pass dengan menggunakan DSP
-
Filter low-pass hanya meloloskan sinyal input yang nilai frekuensinya berada dibawah frekuensi cut-off
-
Filter band-pass hanya meloloskan sinyal input yang memiliki frekuensi diatara kedua nilai frekuensi pass nya.
-
Filter high-pass hanya meloloskan sinyal input yang nilai frekuensinya berada diatas frekuensi cut-off
KESIMPULAN Kesimpulan yang diperoleh dari praktikum ini antara lain :
Blackfin BF56EZ merupakan hardware yang dapat digunakan dalam Digital Signal Processing yaitu dengan memroses sinyal input digital kemudian menghasilkan keluaran sinyal output sesuai dengan yang diinginkan
ADSP-BF561 memiliki dua inti Blackfin identik yang setiap intinya mengandung sebuah 40-bit shifter, dua buah 16-bit multiplier, dua buah 40-bit accumulator, dua buah 40-bit Aritmatic Logic Unit (ALU), dan empat buah 8-bit video ALU beserta unit-unit fungsional dari setiap inti.
Implementasi filter digital dapat menggunakan board Blackfin (untuk berbagai macam filter, seperti low-pass, band-pass, dan high-pass).
Filter low-pass hanya meloloskan sinyal input yang nilai frekuensinya berada dibawah frekuensi cut-off. Filter band-pass hanya meloloskan sinyal input yang memiliki frekuensi diatara kedua nilai frekuensi pass nya. Filter high-pass hanya meloloskan sinyal input yang nilai frekuensinya berada diatas frekuensi cutoff
Kesalahan yang mungkin terjadi pada saat pengimplementasian filter pada BF561EZ antara lain kesalahan pengesetan hardware (kabel, port, board, jack, dsb) atau kesalahan yang berasal dari software (algoritma mencari koefisien filter sinyal, kesalahan frekuensi sampling, dsb).
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
[3]. https://id.wikipedia.org/wiki/Audacity, 4:46, 7 Oktober 2015
Laporan Praktikum - Laboratorium Dasar Teknik Elektro – STEI ITB
9