Anda di halaman 1dari 10

Percobaan IV

Desain Filter dan Implementasi Algoritma DSP


Rahman Ecky Retnaldi (13116006)
Asisten : Dinur Wahyu Pratiwi (13115010)
Tanggal Percobaan : 12/10/2018
EL3104 Praktikum Pengolahan Sinyal Digital
Laboratorium Teknik Elektro
Institut Teknologi Sumatera

Abstrak— Pada percobaan modul 4 ini akan dilakukan II. LANDASAN TEORI
percobaan untuk mendesain filter dan implementasi algoritma
A. Blackfin BF561EZ
DSP. Dimana model atau rancangan filter FIR yang akan
Blackfin BF561EZ adalah sebuah development board
dibuat ini adalah filter lowpass, bandpass dan highpas. Yang
produksi dari Analog Devices yang digunakan untuk penelitian
kemudian mengeksekusi nilai koefisien yang diperoleh dari
dan pengembangan aplikasi menggunakan Prosesor ADSP
FIR1 kedalam sebuah source code visual DSP yang kemudian
BF561. BF561EZ ini terdiri dari bermacam-macam peripheral
akan dilakukan debugging ke board Blackfin BF561EZ. Setelah
yang digunakan untuk pengembangan. BF561EZ mempunyai
itu output diamati dengan audacity. Adapun percobaan yang
fitur :
akan dilakukan yaitu pertama percobaan implementasi filter
 Prosesor ADSP-BF561 Blackfin
FIR Low-pass filter, kedua percobaan implementasi filter FIR
Band-pass filter dan yang terahir Percobaan implementasi filter  64 MB (16 M x 16-bit x 2) SDRAM
FIR High-pass filter.  8 MB (4 M x 16-bit) FLASH memory
 AD1836 multichannel 96 kHz audio codec
Kata Kunci— Visual DSP+++ 5.1.2, Audacity ,Blackfin  3 RCA jack untuk composite (CVBS), differential
BF561EZ, FIR Lowpass, FIR Highpass dan FIR Bandpass component (YUV) atau S video (Y/C) input
 RCA jack untuk input/output audio stereo
I. PENDAHULUAN
Digital signal prosessing (DSP) adalah teknik , algoritma dan  10-bit video decoder ADV7183A
bentuk matematis yang digunakanuntuk memanipulasi data  NTSC/PAL video encoder ADV7179
sinyal kedalam bentuk digital . Tujuan dari DSP ini adalah
Pada Gambar 1 ditampilkan blok diagram dari Blackfin
untuk mendapatkan informasi yang dibawa oleh sinyal seperti
BF561EZ. ADSP-BF561 merupakan anggota dari keluarga
meningkatkan kualitas gambar , suara kompresi data dan lain-
prosesor Blackfin yang memang ditargetkan untuk konsumen
lain. Dalam pemrosesan sinyal umunya digunakan software
aplikasiaplikasi multimedia. Di dalam perangkat ini terdapat
visual DSP++ yang di integrasikan pada board development
dua core prosesor Blackfin yang independen satu sama lain
blackfin.
yang menawarkan performa tinggi serta konsumsi daya yang
Pemfilteran FIR merupakan sebuah filter yang memiliki respon
rendah dengan tetap menjaga kemudahan penggunaan serta
impulse dengan batasan tertentu. Filter FIR ini umumnya ada 3
kompatibilitas. Arsitektur inti mengombinasikan mesin
jenis yaitu FIR Lowpass, FIR Bandpass dan FIR Highpass.
pengolah sinyal dual-MAC, kemampuan single-instruction
Dalam praktikum ini praktikan akan mempelajari cara
multipledata (SIMD) yang fleksibel dan fitur-fitur multimedia
mendesain filter dengan algortima DSP. Yang kemudian akan
ke dalam arsitektur single-instructionset.
diimplementasikan ke board BF561EZ dengan arsitektur
SMID. Selanjutnya hasil output akan diamati dengan software
eksternal audacity.
Percobaan ini memiliki tujuan sebagai berikut :
1. Praktikan mampu menjelaskan bagian-bagian penting
dari BlackfinnBF561EZ beserta fungsinya.
2. Praktikan mampu melakukan trouble-shooting
BF561EZ.
3. Mengimplementasikan pemfilteran FIR untuk
berbagai macam filter di Blackfin BF561EZ.
4. Melakukan verivikasi filter FIR hasil implementasi

Gambar 1. Diagram Block Blackfin BF561EZ


B. Periferal-Periferal Adsp-Bf561 40-bit. Format-format signed dan unsigned, pembulatan dan
Sistem ADSP-BF561 memiliki periferal-periferal sebagai saturasi didukung di dalamnya.
berikut:
 Antarmuka Periferal Parallel / Parallel Peripheral ALU menjalankan set-set traditional aritmatikadan operasi-
Interfaces (PPIs) operasi logika pada data 16-bit atau 32-bit. Beberapa instruksi-
 Port Serial / Serial Ports (SPORTs) instruksi khusus tergabung di dalamnya untuk mempercepat
berbagai tugas pengolahan sinyal. Ini mencakup operasi-
 Antarmuka Periferal Serial / Serial Peripheral Interface
operasi bit seperti field extract dan population count, perkalian
(SPI)
modulo 232, pembagian primitive, saturasi dan pembulatan,
 Timer multi-guna / General-Purpose Timers dan deteksi sign/eksponen. Set dari instruksi-instruksi video
 Universal Asynchronous Receiver Transmitter (UART) mencakup bytealignment dan operasi packing, penjumlaahan
 Watchdog Timers 16-bit dan 8-bit dengan clipping, operasi rata-rata 8-bit, dan
 I/O multi-guna / General Purpose I/O (Programmable operasi-operasi pengurangan / nilai absolute/ akumulasi 8-bit.
Flags) Selain itu tersedia pula instruksi-instruksi perbandingan dan
Periferal-periferal tersebut di atas terhubungkan dengan inti pencarian vektor. Untuk beberapa instruksi, dua operasi 16-bit
melalui beberapa bus berbandwidth besar, seperti ditampilkan ALU dapat dijalankan bersamaan pada pasangan register (16-
pada Gambar 1. Semua periferal kecuali I/O multi-guna dan bit paruh tengah atas dan 16-bit paruh tengah bawah dari
Timer, didukung oleh struktur DMA yang fleksibel, termasuk register komputasi). Juga dengan menggunakan ALU kedua,
di antaranya adalah dua buah pengatur DMA (DMA1 dan operasi quad 16-bit juga dimungkinkan. Shifter 40-bit dapat
DMA2) dan sebuah pengatur internal memory DMA menyimpan data dan juga menjalankan operasi pergeseran,
(IMDMA). Pada masing-masing dari DMA1 dan DMA2, rotasi, normalisasi dan ekstraksi.
terdapat dua belas kanal periferal DMA yang dapat deprogram
dan dua aliran memori DMA terpisah, ditujukan untuk transfer Sebuah pegurut program mengendalikan aliran dari eksekusi
data antar ruang memori DSP, yang mencakup SDRAM dan instruksi termasuk instruksi alignment dan decoding. Untuk
memori asynchronous. Beberapa bus on-chip menyediakan pengendalian aliran program, pengurut mendukung PCrelative
bandwidth yang cukup untuk menjaga agar inti prosesor dan conditional jump tidak langsung (dengan prediksi cabang
berjalan meskipun terdapat pula aktivitas pada semua periferal- statis), dan panggilanpanggilan subrutin. Perangkat keras
periferal on-chip dan periferal-periferal eksternal. disediakan untuk mendukung zero-overhead looping. Unit
alamat aritmatika menyediakan dua alamat untuk pengambilan
C. Arsitektur Inti (CORE) ADSP-BF561 secara simultan dari memori. Unit ini mengandung file register
ADSP-BF561 memiliki dua inti Blackfin identik dan setiap multi-port yang terdiri dari empat set 32-bit, yaitu register
inti mengandung dua 16-bit multiplier, dua 40-bit accumulator, Index, register Modify, register Length dan register Base (untuk
dua 40-bit arithmetic logic unit (ALU),empat 8-bit video ALU circular buffer), dan delapan register pointer 32-bit tambahan.
dan sebuah 40-bit shifter bersamaan dengan unit-unit Produk-produk Blackfin mendukung arsitektur Harvard
fungsional dari setiap inti, seperti ditampilkan pada Gambar 2. termodifikasi dalam kombinasinya dengan struktur memori
Unit-unit komputasional memproses data 8-, 16-, atau 32-bit hierarki. Memori level 1 (L1) biasanya beroperasi pada
dari register. 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.
Gambar 2. Arsitektur inti BF-561
Memori L2 merupakan suatu kesatuan memori instruksi dan
data serta dapat menyimpan berbagai campuran data dan kode
File register komputasi mengandung delapan register 32-bit. yang dibutuhkan oleh desain sistem. Arsitektur menyediakan
Saat menjalankan operasioperasi komputasi pada data operand tiga mode operasi: User, Supervisor, dan Emulation. Mode User
16-bit, file register beroperasi sebagai 16 register 16- bit yang memiliki akses terbatas untuk sebuah subset dari sumber daya
independen. Semua operand untuk operasi-operasi komputasi sistem sehingga menyediakan lingkungan perangkat lunak yang
berasal dari file register multi-port dan field-field instruksi yang terlindungi. Mode Supervisor dan Emulation memiliki akses
konstan. Setiap MAC dapat menjalankan sebuah 16 x 16 bit yang tak terbatas pada sumber daya inti. Set instruks Blackfin
perkalian setiap siklusnya, dengan akumulasi ke sebuah hasil telah dioptimasi sedemikian sehingga op-codes 16-bit
mewakilkan instruksi-instruksi yang paling sering digunakan.
Instruksi-instruksi DSP yang kompleks dikodekan menjadi op- mantisa yang dinormalisasi ke 1. Bilangan Q31 memiliki
codes 32-bit sebagai instruksi-instruksi multifungsi. Produk- kisaran desimal antara –1 sampai 0.9999 (0x8000h sampai
produk Blackfin mendukung kemampuan multi-isu yang 0x7FFFh). Bilangan fraksional h dapat direpresentasikan
terbatas, di mana insturks 32-bit dapat diisukan secara parallel sebagai     N n 0 n h bn 2 atau h= -b02 0 + b12 -1 + b22 -
bersamaan dengan instruksi-instruksi 16-bit. Ini 2 + ... + bN2 -N , dimana h adalah bilangan fraksional dan b
memungkinkan seorang programmer untuk menggunakan adalah biner 1 atau 0.
banyak sumber daya inti dalam satu siklus instruksi. Bahasa
assembly ADSP-BF561 menggunakan sebuah sintaks aljabar. F. White Noise
Arsitektur juga diptimasikan untuk digunakan dengan sebuah White noise adalah sinyal acak (random) dengan spektrum
compiler C. daya flat. Artinya sinyal white noise memiliki daya yang sama
pada bandwidth yang tetap pada setiap frekuensi tengah. White
D. Dasar Teori Pemfilteran noise merupakan nama yang diturunkan dari cahaya putih yang
Sinyal di dunia nyata ada dalam bentuk analog dan selalu spektrum daya dari cahayanya terdistribusi pada rentang band
merupakan sinyal komposit antara bagian yang diketahui dan cahaya tampak. Bandwidth dari white noise terbatas pada
yang tidak diketahui. Misalnya, suara di jalur telepon adalah prakteknya oleh mekanisme pembangkitan noise, media
gabungan dari suara speaker di ujung dan derau. Pendengar di transmisi. Sinyal random dapat dikatakan white noise jika
ujung harus mem-filter suara dominan agar pembicaraan dapat memiliki spektrum yang flat pada bandwidth terlebar yang
berlangsung. Contoh ini menunjukkan bahwa telepon mem- mungkin dapat dilewatkan pada sebuah medium.
filter hampir semua derau kanal dan selanjutnya terserah
pengguna untuk mem-filter dan mengartikan suara. Karenanya, III. METODELOGI
pem-filter-an adalah teknik pemrosesan sinyal yang mendasar A. Alat dan bahan
untuk mengekstrak sinyal yang diperlukan dari bentuk aslinya. Pada percobaan modul 4 ini alat dan bahan yang
Semua teknik pem-filter-an analog –low-pass, high-pass, band- digunakan yaitu :
pass, dan band-stop– dapat diimplementasikan di domain dijital 1. unit computer
bila sinyalnya di-sampling dengan tepat. Sampel sinyal ini 2. Blackfin BF561EZ,adaftor,kabel RCA, Converter RCA,
dikirim melalui struktur filter dijital untuk melakukan pem- dan speaker
filter-an. Filter dijital diklasifikasi menjadi filter FIR (Finite 3. Software Matlab dan visual DSP++ 5.1.2
Impulse Response) dan IIR (Infinite Impulse Response).
Masing-masing filter ini dapat melakukan hal yang serupa B.1 Percobaan Implementasi Filter FIR Low-Pass Filter
dengan filter analog.
Dengan cara yang sudah dibahas pada modul dua dan metode
pengambilan koefisien yang telah dibahas pada subbab 4 di atas
input analog -> h(t) ->output analog FIR buat filter tipe low-pass orde 31 dengan frekuensi cut-off 800
input analog ->A/D ->h(n) -> D/A ->output analog Hz dengan MATLAB.

Filter analog mengambil input analog dan menghasilkan output


analog. Filter dijital, dengan adanya perangkat pencuplikan dan
Ditampilkan VisualDSP++ dan siapkan program yang digunakan
konverter, melakukan hal yang sama dengan filter analog. pada modul tiga. Buka Process_data.c pada bagian CoreA-
>SourceFiles (dengan jalan
E. Penyimpanan Koefisien Filter Dan Sinyal Input
Dari percobaan sebelumnya Anda telah memperoleh koefisien diklik tanda (+) pada tulisan CoreA dan Source Files) dari Project
filter untuk melakukan pemfilter-an. Kita akan window Perhatikan bagian: //Filter Coefficients (from MATLAB):
menggunakannya sebagai koefisien filter yang akan diterapkan intfilter[BUFFERLENGTH]={…};//////////////////////////////////////
di BF561. Nantinya kita akan mencoba program filter dalam ////////////// Perhatikan bahwa nilai-nilai yang dimasukkan di
atas merupakan koefisien koefisien dari filter FIR.
bahasa pemograman C ataupun Assembly, jadi kita dapat
menuliskan koefisien tersebut di program kita,
int koef={a1,a2,a3,a4};
Tetapi biasanya akan lebih mudah bila kita menyimpan Diganti koefisien-koefisien tersebut dengan koefisien low-pass
koefisien tersebut di dalam file. Hal ini memudahkan apabila filter yang telah didapatkan dalam MATLAB
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 Pada menu bar klik Project -> Build Project lalu di jalankan
dalam 32 bit dengan kisaran –2 -31 sampai 231 -1 atau – program yang telah di-build, pada menu bar klik Debug ->Run.
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, Diakukan pengamatan pada sinyal masukan dan keluaran.
digunakan format Q31. Format Q31 ini merepresentasikan Perhatikan efek pemfilteran (low-pass filtering) yang telah
fraksional 31 bit. Pada format ini, MSB adalah sign bit yang diterapkan.
diikuti oleh suatu titik imajiner, dan kemudian 31 bit atau
Diuji filter yang telah dibuat dengan menggunakan White noise
sebagai input. Rekam keluaran filter dengan program Audacity.
Periksa spektrum sinyal hasil.
B.2 Percobaan Implementasi Filter FIR Band-Pass Filter B.3 Percobaan Implementasi Filter FIR High-Pass Filter

Dengan cara yang sudah dibahas pada modul dua dan metode Dengan cara yang sudah dibahas pada modul dua dan metode
pengambilan koefisien yang telah dibahas pada subbab 4 di pengambilan koefisien yang telah dibahas pada subbab 4 di
atas FIR buat filter tipe low-pass orde 31 dengan frekuensi pass atas FIR buat filter tipe low-pass orde 31 dengan frekuensi cut-
1000 Hz -3000 Hz dengan MATLAB. off 6000 Hz dengan MATLAB.

Ditampilkan VisualDSP++ dan siapkan program yang Ditampilkan VisualDSP++ dan siapkan program yang
digunakan pada modul tiga. Buka Process_data.c pada bagian digunakan pada modul tiga. Buka Process_data.c pada bagian
CoreA->SourceFiles (dengan jalan CoreA->SourceFiles (dengan jalan

diklik tanda (+) pada tulisan CoreA dan Source Files) dari diklik tanda (+) pada tulisan CoreA dan Source Files) dari
Project window Perhatikan bagian: //Filter Coefficients (from Project window Perhatikan bagian: //Filter Coefficients (from
MATLAB): MATLAB):
intfilter[BUFFERLENGTH]={…};////////////////////////////////// intfilter[BUFFERLENGTH]={…};//////////////////////////////////
////////////////// Perhatikan bahwa nilai-nilai yang ////////////////// Perhatikan bahwa nilai-nilai yang
dimasukkan di atas merupakan koefisien koefisien dari filter dimasukkan di atas merupakan koefisien koefisien dari filter
FIR. FIR.

Diganti koefisien-koefisien tersebut dengan koefisien Band- Diganti koefisien-koefisien tersebut dengan koefisien High-
pass filter yang telah didapatkan dalam MATLAB pass filter yang telah didapatkan dalam MATLAB

Pada menu bar klik Project -> Build Project lalu di jalankan Pada menu bar klik Project -> Build Project lalu di jalankan
program yang telah di-build, pada menu bar klik Debug ->Run. program yang telah di-build, pada menu bar klik Debug ->Run.

Diakukan pengamatan pada sinyal masukan dan keluaran. Diakukan pengamatan pada sinyal masukan dan keluaran.
Perhatikan efek pemfilteran (Band-pass filtering) yang telah Perhatikan efek pemfilteran (High-pass filtering) yang telah
diterapkan. diterapkan.

Diuji filter yang telah dibuat dengan menggunakan White Diuji filter yang telah dibuat dengan menggunakan White
noise sebagai input. Rekam keluaran filter dengan program noise sebagai input. Rekam keluaran filter dengan program
Audacity. Periksa spektrum sinyal hasil. Audacity. Periksa spektrum sinyal hasil.
// time a complete audio
IV. HASIL DAN ANALISIS frame has been received. The new //
// input samples can be
A. Percobaan Implementasi Filter FIR Low-Pass Filter found in the variables iChannel0LeftIn,//
Pada percobaan ini pertama dilakukan pengambilan nilai // iChannel0RightIn,
koefisien low-pass pada percobaan FIR1 pada modul 1. iChannel1LeftIn and iChannel1RightIn //
kemudian nilai koefisien di konvert menjadi bilangan // respectively. The
fraksional, pengubahan kebilangan fraksional ini bertujuan agar processed data should be stored in //
blackfin dapat melakukan operasi, karena blackfin hanya bisa // iChannel0LeftOut,
mengoprasikan bilangan integer Q31. Untuk mengkonvert pada iChannel0RightOut, iChannel1LeftOut, //
matlab menggunakan perintah berikut : // iChannel1RightOut,
iChannel2LeftOut and iChannel2RightOut //
>>fs =16000; // respectively.
>>Wn1=800/(fs/2);
>>Lowpass=fir1(N,Wn1,’Low’); //
>>frak=round(2^31*Lowpass); //--------------------------------------------------------------------------
//
Dari perintah diatas diperoleh nilai koefisien lowpas yang void Process_Data(void)
sudah di convert ke fraksional sebagai berikut : {
//Left
//Buffering input
bufferLeft[i] = iChannel0LeftIn;
//convolution with circular buffer
tempLeft=0;
for (j = 0; j < BUFFERLENGTH; j++)
{
tempLeft += (filter[j] >> 16) * (bufferLeft[(i + j) %
BUFFERLENGTH] >> 15);
}
//Output
Dari nilai-nilai koefisien yang diperoleh diatas kemudian iChannel0LeftOut = tempLeft;
dimasukan dalam source code seperti berikut : // //Right
//Buffering input
#include "Talkthrough.h" bufferRight[i]= iChannel0RightIn;
#define BUFFERLENGTH 32 //convolution with circular buffer
int tempRight=0;
bufferLeft[BUFFERLENGTH],bufferRight[BUFFERLENGT for (j = 0; j < BUFFERLENGTH; j++)
H]={0,0,0}; {
int tempLeft, tempRight = 0; tempRight += (filter[j] >> 16) * (bufferRight[(i + j) %
int i,j=0; BUFFERLENGTH] >> 15);
//Filter Coefficients (from MATLAB): }
int filter[BUFFERLENGTH]= {-3283169,-4089104,- //Output
5394501,-6768273,-7261877,- iChannel0RightOut=tempRight;
5516883,0,10673790,27392986,50250325,78362065,1098553 //decreasing i (circular)
26,142041242,171754609,195805997,211467481,216903618, i=(i+BUFFERLENGTH-1)%BUFFERLENGTH;
211467481,195805997,171754609,142041242,109855326,78 //
362065,50250325,27392986,10673790,0,-5516883,- //channel1
7261877,-6768273,-5394501,-4089104,-3283169} ; //Left
iChannel1LeftOut = iChannel1LeftIn;
//right
//-------------------------------------------------------------------------- iChannel1RightOut = iChannel1RightIn;
//
// Function: Process_Data() }

// Kemudian dibuat sinyal white noise pada audacity. berikut


// adalah bentuk sinyal white noise :

//
// Description: This function is called from inside the SPORT0
ISR every //
Berdasarkan hasil dari gambar diatas terlihat bahwa sinyal
domain waktu dan analisis frekuensi pada filter lowpass
bentuknya jauh berbeda dengan sinyal inputan white noise, hal
ini karena sinyal telah difilter dengan model lowpas . kemudian
pada analisi frekuensi ketika sinyal memiliki frekuensi dibawah
3000 Hz sinyal memiliki amplitude sangat besar. Sedangkan
pada sinyal yang frekuensinya lebih dari 3000 HZ sinyalnya
sangat kecil. Hal ini menunjukan bahwa pemfilteran yang
dilakukan hanya akan meloloskan sinyal yang
memilikifrekuensi dibawah 3000 HZ dan akan meredam sinyal
Gambar 3. Sinyal White Noise yang memiliki frekuensi lebih dari 3000 Hz. Kemudian dilihat
dari gambar juga frekuensi mulai mengalami penurunan
dikisaran 800 Hz, dimana 800 Hz ini merupakan frekuensi cut-
offnya. Dengan demikian percobaan implementasi dengan FIR
Lowpass ini sudah benar dan sesuai dengan teori.

B. Percobaan Implementasi Filter FIR Band-Pass Filter


Pada percobaan ini dilakukan pengambilan nilai koefisien
band-pass pada percobaan FIR1 pada modul 1. kemudian nilai
koefisien di konvert menjadi bilangan fraksional, pengubahan
kebilangan fraksional ini bertujuan agar blackfin dapat
melakukan operasi, karena blackfin hanya bisa mengoprasikan
bilangan integer Q31. Untuk mengkonvert pada matlab
menggunakan perintah berikut :
Gambar 4. Analyse Frekuensi White Noise
>>fs =16000;
>>Wn2=[1000/(fs/2) 3000/(fs/2);
Selanjutnya dilakukan implementasi filter lowpass pada board >>bandpass=fir1(N,Wn2,’bandpass’);
Blackfin BF561EZ Dengan sinyal inputan berupa white noise >>frak=round(2^31*bandpass);
sehingga diperoleh hasil sebagai berikut :.
Dari perintah diatas diperoleh nilai koefisien Bandpas yang
sudah di convert ke fraksional sebagai berikut :

Gambar 5. Sinyal Hasil pemfilteran Lowpass

Dari nilai-nilai koefisien yang diperoleh diatas kemudian


dimasukan dalam source code seperti berikut :

#include "Talkthrough.h"
#define BUFFERLENGTH 32
int
bufferLeft[BUFFERLENGTH],bufferRight[BUFFERLENGT
H]={0,0,0};
int tempLeft, tempRight = 0;
int i,j=0;
//Filter Coefficients (from MATLAB):
int filter[BUFFERLENGTH]= {0,-
2181204,0,10773679,24354187,22990859,0,-
18424869,0,33132130,0,-141470186,-294409348,-
Gambar 6. Frekuensi analysis Hasil 273397515,0,365030666,534466228,365030666,0,-
pemfilteran Lowpass 273397515,-294409348,-141470186,0,33132130,0,-
18424869,0,22990859,24354187,10773679,0,-2181204,0} ;
//right
//-------------------------------------------------------------------------- iChannel1RightOut = iChannel1RightIn;
//
// Function: Process_Data() }

// Dari source code diatas selanjutnya dilakukan implementasi


// filter lowpass pada board Blackfin BF561EZ melalui visual
DSP++ Dengan sinyal inputan berupa white noise sehingga
// diperoleh hasil sebagai berikut :.
// Description: This function is called from inside the SPORT0
ISR every //
// time a complete audio
frame has been received. The new //
// input samples can be
found in the variables iChannel0LeftIn,//
// iChannel0RightIn,
iChannel1LeftIn and iChannel1RightIn //
// respectively. The
processed data should be stored in //
// iChannel0LeftOut,
iChannel0RightOut, iChannel1LeftOut, //
// iChannel1RightOut,
iChannel2LeftOut and iChannel2RightOut // Gambar 7. Sinyal Hasil pemfilteran Bandpass
// respectively.

//
//--------------------------------------------------------------------------
//
void Process_Data(void)
{
//Left
//Buffering input
bufferLeft[i] = iChannel0LeftIn;
//convolution with circular buffer
tempLeft=0;
for (j = 0; j < BUFFERLENGTH; j++)
{
tempLeft += (filter[j] >> 16) * (bufferLeft[(i + j) % Gambar 8. Frekuensi Analyze Hasil
pemfilteran Bandpass
BUFFERLENGTH] >> 15);
}
//Output Berdasarkan Gambar diatas terlihat bahwa sinyal pada domain
iChannel0LeftOut = tempLeft; waktu dan analisis frekuensi bentuknya berbeda dengan
// //Right inputanya hal ini dikarenakan sinyal white noise telah
//Buffering input dilakukan pemfilteran dengan model bandpass filter. Kemudian
bufferRight[i]= iChannel0RightIn; jika dibandingkan dengan sinyal lowpass amplitudenya sinyal
//convolution with circular buffer domain waktu pada bandpass lebih besar dari pada amplitude
tempRight=0; lowpas. Kemudian pada analisis frekuensi pada rentan
for (j = 0; j < BUFFERLENGTH; j++) frekuensi 100-300 Hz amplitude rendah muncul, kemudian
{ mulai muncul dengan amplitude mulai naik ketika frekuensi
tempRight += (filter[j] >> 16) * (bufferRight[(i + j) % diatas 1000Hz. Kemudian ketika frekuensi lebih dari 7000 Hz
BUFFERLENGTH] >> 15); amplitudenya mulai mengalami penurunan. Selain itu terlihat
} juga bahwa rentan frekuensi pasnya berubah pada dari rentan
//Output 1000-3000 Hz pada percobaan 1 berubah menjadi antara 3000
iChannel0RightOut=tempRight; -7000 Hz. Terjadinya perubahan frekuensi pas ini kemungkinan
//decreasing i (circular) karena adanya effek 40-bit shifter yang ada pada brackfin
i=(i+BUFFERLENGTH-1)%BUFFERLENGTH; BF561EZ yang menyebabkan frekuensi pasnya bergeser. Hal
// ini menyebabkan filter hanya meloloskan sinyal dengan rentan
//channel1 frekunesi pas antara 3000 – 7000 Hz . meskipun demikian
//Left bentuk frekuensi yang dihasilkan ini sesuai dengan karakteristik
iChannel1LeftOut = iChannel1LeftIn; pemfikteran FIR Bandpass. Sehingga percobaan yang
dilakukan untuk implementasi bandpass menggunakan blackfin // Function: Process_Data()
BF561 dapat dikatakan benar.
//
//
C. Percobaan Implementasi Filter FIR High-Pass Filter
Pada percobaan ini dilakukan pengambilan nilai koefisien //
high-pass pada percobaan FIR1 pada modul 1. kemudian nilai // Description: This function is called from inside the SPORT0
koefisien di konvert menjadi bilangan fraksional. pengubahan ISR every //
kebilangan fraksional ini bertujuan agar blackfin dapat // time a complete audio
melakukan operasi, karena blackfin hanya bisa mengoprasikan frame has been received. The new //
bilangan integer Q31. Untuk mengkonvert pada matlab // input samples can be
menggunakan perintah berikut : found in the variables iChannel0LeftIn,//
// iChannel0RightIn,
>>fs =16000; iChannel1LeftIn and iChannel1RightIn //
>>Wn3=6000/(fs/2); // respectively. The
>>highpass=fir1(N,Wn3,’high’); processed data should be stored in //
>>frak=round(2^31*highpass); // iChannel0LeftOut,
iChannel0RightOut, iChannel1LeftOut, //
Dari perintah diatas diperoleh nilai koefisien highpass yang // iChannel1RightOut,
sudah di convert ke fraksional sebagai berikut : iChannel2LeftOut and iChannel2RightOut //
// respectively.

//
//--------------------------------------------------------------------------
//
void Process_Data(void)
{
//Left
//Buffering input
bufferLeft[i] = iChannel0LeftIn;
//convolution with circular buffer
tempLeft=0;
for (j = 0; j < BUFFERLENGTH; j++)
{
tempLeft += (filter[j] >> 16) * (bufferLeft[(i + j) %
BUFFERLENGTH] >> 15);
}
Dari nilai-nilai koefisien yang diperoleh diatas kemudian //Output
dimasukan dalam source code seperti berikut : iChannel0LeftOut = tempLeft;
// //Right
#include "Talkthrough.h" //Buffering input
#define BUFFERLENGTH 32 bufferRight[i]= iChannel0RightIn;
int //convolution with circular buffer
bufferLeft[BUFFERLENGTH],bufferRight[BUFFERLENGT tempRight=0;
H]={0,0,0}; for (j = 0; j < BUFFERLENGTH; j++)
int tempLeft, tempRight = 0; {
int i,j=0; tempRight += (filter[j] >> 16) * (bufferRight[(i + j) %
//Filter Coefficients (from MATLAB): BUFFERLENGTH] >> 15);
int filter[BUFFERLENGTH]= {0,2869454,- }
5628996,5870718,0,-12528018,24938095,- //Output
24238586,0,43586522,-81768406,77088945,0,- iChannel0RightOut=tempRight;
148977863,330592721,-480211122,538136919,- //decreasing i (circular)
480211122,330592721,-148977863,0,77088945,- i=(i+BUFFERLENGTH-1)%BUFFERLENGTH;
81768406,43586522,0,-24238586,24938095,- //
12528018,0,5870718,-5628996,2869454,0} ; //channel1
//Left
iChannel1LeftOut = iChannel1LeftIn;
//-------------------------------------------------------------------------- //right
// iChannel1RightOut = iChannel1RightIn;
}
 Blackfin BF561EZ dapat digunakan untuk pemrosessan
Dari source code diatas selanjutnya dilakukan implementasi sinyal digital untuk mendapatkan sinyal output sesuai yang
filter lowpass pada board Blackfin BF561EZ melalui visual di harapkan.
DSP++ Dengan sinyal inputan berupa white noise sehingga  Pemodelan filter Fir lowpas , bandpass dan highpass dapat
diperoleh hasil sebagai berikut : diimplementasikan pada BF561EZ dengan menggunakan
nilai koefisien pada filter lowpas, highpass dan bandpass
yang diperoleh dari Fir1 pada matlab. kemudian diproses
dengan algoritma pemfilteran circular buffer pada visual
DSP++.
 Hasil implementasi filter dengan algoritma DSP yang
diberi inputan white noise dapat menghasilkan sinyal
output yang menyerupai filter lowpass,bandpass, dan
highpass.

REFERENSI
[1]. Ingle, V. K. and J. G. Proakis, Digital Signal Processing
Gambar 9. Sinyal Hasil pemfilteran Highpass
Using Matlab v.4. Boston, MA: PWS Publishing
Company, 1997.
[2]. Proakis, J.G. and D. G. Manolakis, Digital Signal
Processing, Principles, Algorithms, and Applications 4th
ed. Upper Saddle River, NJ: Prentice Hall, 2006.
[3]. Higham,Desmond J. and Nicholas J. Higham, Matlab
Guide 2nd.Philadelphia:SIAM,2005
[4]. Kananda,kiki,dkk. Praktikum Pengolahan Sinyal Digital.
Laboratorium Dasar Teknik Elektro ITERA, Lampung,
2018

Gambar 10. Frekuensi analyse Hasil


pemfilteran Highpass

Berdasarkan hasil dari gambar diatas terlihat bahwa


sinyaldomain waktu dan analisis frekuensi pada pemfilteran
highpass bentuknya jauh berbeda dengan sinyal inputan white
noise,dimana amplitude hasil filter nilainya lebih kecil. hal ini
karena sinyal telah difilter dengan model highpass. Kemudian
dari frekuensi analisisnya seharusnya frekuensi teredam ketika
frekuensinya dibawah 6000 Hz. Namun pada gambar terlihat
bahwa frekuensi teredam ketika berada kurang dari 7000 Hz
dan ketika lebih besar dari 7000 Hz baru mengalami kenaikan.
Hal ini kemungkinan disebabkan oleh 40-bit shifter yang
mengakibatkan adanya pergeseran pada titik cutoff sehingga
frekuensi cut-offnya ikut berubah. Meskipun demikian hasil
yang diperoleh ini sudah sesuai dengan karakteristik dari filter
FIR highpass filter.

V. SIMPULAN

 Blackfin BF51 memiliki arsitektur ADSP-BF561 identik


yang terdiri dari 40-bit shifter , 2 16-bit multiplier, 2 40-bit
accumulator , 2 40-bit ALU dan 4 8-bit Video ALU. Selain
itu juga terdiri dari periferal periferal yang berfungsi untuk
pengembangan.

Anda mungkin juga menyukai