Anda di halaman 1dari 7

Praktikum Pengolahan Sinyal - DAFX

Modul 7

MODUL 7

Efek Audio Digital : Echo


1. Pendahuluan
Echo berarti gema atau gaung. Bila anda berada dilokasi yang tepat kemudian anda meneriakkan kata Halo! maka setelah itu anda akan mendengar bunyi pantulnya yang semakin lama semakin lemah, Halo...halo...halo...., begitulah kira-kira. Pada praktikum ini, anda akan mencoba untuk membuat efek echo secara digital pada DSK TMS320C5402 menggunakan bahasa-C.

2. Tujuan
Setelah menyelesaikan praktikum ini, yang anda peroleh adalah : dapat menjelaskan cara kerja efek audio digital berbasis time-delay khususnya efek echo dapat mengimplementasikan disain efek echo pada DSK TMS320C5402 menggunakan bahasa-C

3. Gambaran Disain
Suara dalam bentuk data digital yang diterima dari ADC akan diproses didalam DSP untuk ditambahkan efek echo, kemudian suara yang telah diproses tersebut dikeluarkan melalui DAC ke speaker agar dapat kita dengar. Untuk membuat efek echo, suara ditahan sementara didalam buffer untuk beberapa saat lalu dikeluarkan sehingga menimbulkan kesan bahwa suara mengalami tundaan. Bila suara tundaan ini diputar berulang-ulang maka akan terdengar suara yang berulang-ulang pula. Teknik membuat buffer untuk efek echo akan anda coba pada praktikum ini.

hary@eepis-its.edu

1/7

Praktikum Pengolahan Sinyal - DAFX

Modul 7

4. Dasar Teori
Efek audio banyak digunakan pada pengolahan sinyal audio digital untuk keperluan industri musik. Teknologi ini digunakan untuk menambahkan efek tertentu pada sinyal audio atau memodifikasi sinyal audio. Efek audio secara garis besar dibagi menjadi empat yaitu: Efek berbasis amplitudo sinyal contoh: volume control, panning (ping-pong), compression/expansion, noise gating, dan attach delay. Efek berbasis time-delay contoh: echo, chorus, flanger, robot, reverb dan phasing. Efek distorsi bentuk sinyal contoh: efek distorsi. Efek respon frekuensi (filter digital) contoh: equalizer, pitch shifting. Pada praktikum ini kita akan membahas efek echo, untuk efek yang lain dapat anda pelajari pada literatur lain. Gambar 1 menunjukkan dua contoh efek yaitu efek echo satu lapis (untuk selanjutnya kita sebut dengan efek delay) dan efek echo berlapis (untuk selanjutnya kita sebut dengan efek echo). Efek delay menjumlahkan sinyal masukan (x[n]) dengan sinyal tertunda yang telah dilemahkan. Pada efek echo, sinyal masukan dijumlahkan dengan sinyal tertunda yang telah dilemahkan kemudian sinyal tertunda yang telah dilemahkan dijumlahkan dengan sinyal masukan untuk dimasukkan kembali ke blok delay (Z-D).

Gambar 1. Blok diagram efek delay dan efek echo

Pada gambar 1, simbol kotak bertuliskan Z-D adalah elemen/komponen delay, simbol segitiga bertuliskan huruf a adalah attenuator atau faktor pelemahan dan simbol lingkaran dengan tanda + didalamnya adalah penjumlah. Secara hardware komponen delay merupakan sederetan flip-flop yang membentuk sebuah shift-register. Komponen delay berupa shifregister inilah yang disebut sebagai buffer. Makin panjang ukuran buffer yang digunakan semakin lama pula waktu yang dibutuhkan x[n] untuk mencapai y[n]. Waktu yang dibutuhkan
hary@eepis-its.edu 2/7

Praktikum Pengolahan Sinyal - DAFX

Modul 7

data untuk melewati sebuah buffer disebut waktu tunda. Waktu tunda dirumuskan sebagai berikut: waktu tunda (detik) = ukuran buffer / frekuensi sampling (Hz) .(1) Misalnya kita ingin menunda suara selama 1 detik, bila sistem yang kita pakai menggunakan frekuensi sampling sebesar 16 kHz maka dibutuhkan buffer sebesar 16.000 lokasi. Circular Buffer Tadi disebutkan bahwa buffer yang digunakan untuk menunda suara dapat dibuat dari sederetan flop-flop misalnya tipe D flip-flop. Untuk membuat tundaan selama 1 detik dengan frekuensi sampling 16kHz akan dibutuhkan D flip-flop sebanyak 16.000. Bila kita gunakan IC flip-flop (biasanya dalam sebuah IC terdapat 8 buah flip-flop) akan membutuhkan 2000 IC. Anda bisa bayangkan papan sirkuit yang akan dibutuhkan mungkin lebih lebar dari sebuah bantal yang anda gunakan untuk tidur. Karenanya kita tidak menggunakan D flip-flop untuk membangun sebuah buffer tetapi kita gunakan sebuah memori. Ya, sebuah memori atau RAM. Didalam sebuah sistem mikroprosesor, data akan ditempatkan pada memori. Bila anda menuliskan int buffer[1000]; pada program, artinya anda memesan 1000 lokasi pada memori, diberi nama buffer dengan data bertipe integer. Data didalam buffer dapat diakses dengan dua cara yaitu menggunakan metode shift (geser) dan metode circular buffer. Perhatikan ilustrasi seperti yang ditunjukkan oleh gambar 2, data masuk pada buffer berukuran 4 lokasi lalu digeser. Cara ini mudah dilakukan tetapi untuk ukuran buffer yang sangat besar membutuhkan waktu akses yang cukup lama.
int geser(int input) { int i,j,output; j = ukuran_buffer; for (i<j;i>0,i--) { buffer[i] = buffer[i-1]; } buffer[0] = input; output = buffer[j-1]; return(output); }

Gambar 2. Metode penggeseran (shift)

Cara kedua ditunjukkan oleh gambar 3, menggunakan teknik circular buffer. Hanya menggunakan dua pointer, yaitu pointer tulis dan pointer baca yang bertugas menunjuk sebuah alamat didalam memori untuk ditulis atau dibaca. Pointer ini nilainya terus bertambah, bila telah mencapai alamat terakhir maka posisi pointer dikembalikan pada posisi awal.

hary@eepis-its.edu

3/7

Praktikum Pengolahan Sinyal - DAFX

Modul 7

Dengan metode circular buffer, untuk ukuran buffer yang sangat besar membutuhkan waktu akses yang tidak terlalu lama.

Gambar 3. Metode circular buffer, hardware cirlular buffer (kiri) dan circular buffer untuk panjang buffer N (kanan)

Perhatikan program dalam bahasa-C berikut untuk mengimplementasikan metode circular buffer dengan ukuran buffer sebesar size. Kedua pointer berhimpit, agar berfungsi maka terlebih dahulu dilakukan operasi baca data, kemudian tulis data.
... // deklarasi variabel global int pointer=0; int output; int buffer[size]={0}; ... // subrutin circular buffer // input --> | | | buffer | | | --> output int geser(int input) { // atur pointer if (pointer < j) {pointer++;} else {pointer=0} // ambil data output output = buffer[pointer]; // tulis data input buffer[pointer] = input; return(output); } input

Program disamping hanya mengimplentasikan bagian Z-D

subrutin geser output

Referensi
Dan Ledger and John Tomarakos, Using The Low Cost, High Performance ADSP21065L DigitalSignal Processor For Digital Audio Applications, DSP Applications Group, Analog Devices, Norwood, MA 02062, USA, Revision 1.0 - 12/4/98 Hary Oktavianto, Arif I, Anang BK, Implementasi FPGA Sebagai Prosesor Efek Audio Digital Berbasis Time-Delay, SNTI 2004, Vol.1 No.1, ISSN 1829-9156

hary@eepis-its.edu

4/7

Praktikum Pengolahan Sinyal - DAFX

Modul 7

5. Peralatan
1 set PC yang dilengkapi dengan software Matlab dan Code Composer Studio v2 1 set DSK TMS320C5402 1 set headset (speaker dan microphone)

6. Prosedur Praktikum
Praktikan diharapkan mengikuti langkah-langkah prosedur praktikum dan apabila ada kesulitan harap bertanya kepada asisten.


Langkah-langkah:

Praktikan harus didampingi asisten ketika menjalankan bagian ini !!!

Tujuan: Mencoba tugas yang telah dikerjakan sebagai tugas pendahuluan.

1. Persiapan peralatan : a. PC dalam keadaan mati. b. Hubungkan DSK ke PC menggunakan kabel paralel port yang tersedia. c. Hubungkan output adapator ke input power DSK. d. Hubungkan kabel power adaptor, nyalakan adaptor. e. Nyalakan PC f. Jalankan aplikasi Code Composer Studio dan pastikan dapat terhubung dengan board DSK 2. Dengan menggunakan Windows Explorer, buatlah folder baru pada direktori D:\prak_pengolahansinyal dengan kelas Anda diikuti dengan subfolder nama Anda. Perhatikan penulisan folder yang Anda buat. Kemudian salinlah direktori dafx pada direktori C:\ti\examples\dsk5402\dsp\dafx kedalam direktori D:\prak_pengolahan sinyal\kelas\nama. Hal ini dimaksudkan untuk mempermudah mengembalikan isi project seperti dalam keadaan semula apabila terjadi kesalahan yang fatal. 3. Pada CCS, dengan menggunakan Project Open, bukalah file project dafx.pjt pada direkori D:\prak_pengolahansinyal\kelas\nama\dafx. Apabila file library pada project tersebut ada yang tidak ditemukan maka carilah library tersebut pada direktori c:\ti yang sesuai. Hal ini terjadi karena lokasi project berpindah tempat. File library yang digunakan ada tiga yaitu: a. rts.lib pada direktori c:\ti\c5400\cgtools\lib b. dsk5402.lib pada direktori c:\ti\c5400\dsk5402\lib c. drv5402.lib pada direktori c:\ti\c5400\dsk5402\lib

hary@eepis-its.edu

5/7

Praktikum Pengolahan Sinyal - DAFX

Modul 7

4. Bukalah file dafx.c didalam source pada jendela project view. Tulislah program yang telah anda kerjakan. Cobalah dengan program untuk efek delay telebih dahulu. ). Maka CCS akan 5. Pilih Project Rebuild All (atau dengan menekan ikon merekompilasi, meng-assemble dan melakukan relink semua file pada project. Pesan pada proses ini akan ditampilkan pada bagian bawah window 6. Setelah kompilasi selesai dan tidak ada error, pilih File Load Program, browse dan pilih file dafx.out. Maka CCS akan meload program pada target DSP dan membuka window dis-assembly yang memperlihatkan instruksi program dalam bahasa assembler. 7. Pilih Debug Go Main 8. Hubungkan microphone pada input dari board DSK (jack audio untuk microphone, bersebelahan dengan konektor RJ-11 untuk line telephone) dan hubungkan output dari board DSK (jack audio untuk speaker, bersebelahan dengan konektor DB9 untuk serial port) pada speaker. 9. Pilih Debug Run, kemudian cobalah berbicara pada microphone, apakah hasil yang terdengar pada speaker telah sesuai dengan disain. Tunjukkan pada asisten. 10. Pilih Debug Halt, untuk menghentikan eksekusi pada board. 11. Kerjakan tugas. 12. Tutuplah program CCS dengan memilih File Exit. 13. Matikan adaptor power suplai. Lakukan prosedur shutdown PC dengan benar. Rapikan kembali kabel dan peralatan.

7. Tugas
Cobalah kembali dengan program untuk efek echo. Setelah melakukan kompilasi dan download, jalankan program. Berbicaralah pada mikrofon dan amati hasilnya. Untuk efek echo, cobalah untuk memberikan nilai a pada bagian umpanbalik dengan nilai dibawah 1 samadengan 1 diatas 1 umpan-balik Catatlah hasil pengamatan anda untuk menjawab bagian analisa.

hary@eepis-its.edu

6/7

Praktikum Pengolahan Sinyal - DAFX

Modul 7

8. Analisa
1. Pada efek echo, apakah yang terjadi bila nilai a (pada bagian umpanbalik) mendekati 0.0 ? Mengapa demikian ? 2. Pada efek echo, apakah yang terjadi bila nilai a semakin besar ? Mengapa demikian? 3. Berapakah ukuran memori yang digunakan sebagai buffer untuk menghasilkan waktu tunda (delay) selama 2 detik pada frekuensi sampling sebesar 16 kHz?

9. Pertanyaan pendahuluan
Ubahlah blok diagram efek delay dan efek echo seperti yang ditunjukkan oleh gambar 1 menjadi program efek delay dan program efek echo dalam bahasa-C. Tentukan ukuran buffer yang harus disediakan bila waktu tunda yang diinginkan sebagai berikut: Untuk efek delay: gunakan nilai 0.5 untuk nilai a (attenuator) waktu tunda selama detik dengan frekuensi sampling board DSK sebesar 8KHz Untuk efek echo: gunakan nilai 0.5 untuk kedua nilai a. waktu tunda selama detik dengan frekuensi sampling board DSK sebesar 8KHz

10. Tambahan
Berikan saran atau komentar guna pengembangan lebih lanjut praktikum ini.

hary@eepis-its.edu

7/7

Anda mungkin juga menyukai