Deskripsi Sistem Audio Filter
FPGA memiliki fungsi untuk membangkitkan audio. Berbicara tentang audio erat kaitannya dengan pemrosesan sinyal. Salah satu pemrosesan sinyal yang selalu digunakan adalah filter. Secara sederhana filter ada 2 macam, yaitu high pass filter dan low pass filter.
High pass filter bertujuan untuk melewatkan sinyal dengan frekuensi tinggi dan memblok sinyal dengan frekuensi rendah. Sebaliknya Low pass filter bertujuan untuk melewatkan sinyal dengan frekuensi rendah dan memblok sinyal dengan frekuensi tinggi. Pada proyek kali ini akan dibuat high pass filter dan low pass filter pada FPGA menggunakan code verilog, kemudian di test secara simulasi menggunakan modelsim dan disintesis menggunakan quartus.
Diagram Rancangan Sistem Audio Filter
- ADCDAT adalah output aliran data audio digital yang diformat dari filter digital ADC dengan saluran kiri dan kanan multipeks bersama-sama
- ADCLRC adalah clock yang mengontrol apakah data saluran kiri atau kanan ada pada garis ADCDAT
- BCLK memungkinkan sebagai input atau output tergantung pada apakah perangkat dalam mode master atau slave
- DACDAT adalah output aliran data audio digital yang diformat ke filter digital DAC dengan saluran kiri dan kanan multiplexing bersama.
- DACLRC adalah clock yang mengontrol apakah data saluran kiri atau saluran kanan ada di DACDAT
Untuk menerima sampel audio digital dari ADC wolfson (konverter analog ke digital), pin AUD_ADCDAT dan AUD_ADCLRCK digunakan. Untuk mengrim sampel audio digital ke DAC (digital to analog converter), pin AUD_DACDAT dan AUD_DACLRCK digunakan.
IC Wolfson diinisialisasi untuk menggunakan sampel audio 16 bit. Ini berarti bahwa dalam setiap pasangan sampel kiri dan kanan, total 32 bit digunakan. Seperti yang ditunjukkan pada diagram, bit dibaca/ditulis satu per satu dimulai dengan bit yang paling signifikan dan bergerak menuju bit paling tidak signifikan. Ini dilakukan untuk saluran kiri dan kanan secara berurutan sampai semua bit dibaca/ditulis. Masing-masing bit dibaca pada AUD_BCLK. Clock ini beroperasi pada 64 kali laju sampel audio. Dalam hal ini, clock berjalan sekitar 64 x 48000 = 3Mhz.
Code Verilog
Download full file here
Low Pass Filter
High Pass Filter
Hasil Simulasi Pada Modelsim
Low Pass Filter:
Diberi input berupa hexadecimal, outputnya akan bernilai dari 0 dan akan naik terus sampai mendekati nilai input (21211212), melebihi nilai tersebut tidak akan tergenerate, atau bisa diartikan frekuensi diatas itu tidak akan bisa lewat.
High Pass Filter:
Ketika diberi input hexadecimal (fbfbfbfb), output yang keluar bernilai diatasnya dan akan terus bertambah sampai maksimal yaitu (FFFFFFFF), lalu setelah itu kembali ke nol. Apabila diberi nilai rendah (10101010), nilai outputnya akan langsung turun bertingkat sampai ke titik nol. Kedua hal diatas menunjukkan karakter dari high pass filter dimana hanya melewatkan sinyal dengan frekuensi tinggi.
Hasil Sintesis Pada Quartus
Low Pass Filter:
High Pass Filter:
Tidak ada komentar:
Posting Komentar