Pada masa
sekarang ini, pengolahan sinyal secara digital telah diterapkan begitu luas.
Dari peralatan instrumentasi dan kontrol, peralatan musik, peralatan kesehatan
dan peralatan lainnya. Istilah pengolahan sinyal digital sebenarnya kurang
begitu tepat, yang lebih tepat adalah pengolahan sinyal diskrete. Tetapi karena
istilah ini sudah luas digunakan, maka istilah pengolahan sinyal digital tetap
digunakan dalam artikel ini. Dalam artikel ini akan dibahas dasar-dasar
pengolahan sinyal digital, terutama dari sudut algoritma dan pemrograman di
samping juga sedikit pembahasan tentang pertimbangan hardware dari sistem yang
disusun.
Sistem Pengolahan
Sinyal Digital
Proses pengolahan sinyal
digital, diawali dengan proses pencuplikan sinyal masukan yang berupa sinyal
kontinyu. Proses ini mengubah representasi sinyal yang tadinya berupa sinyal
kontinyu menjadi sinyal diskrete. Proses ini dilakukan oleh suatu unit ADC
(Analog to Digital Converter). Unit ADC ini terdiri dari sebuah bagian
Sample/Hold dan sebuah bagian quantiser. Unit sample/hold merupakan bagian yang
melakukan pencuplikan orde ke-0, yang berarti nilai masukan selama kurun waktu
T dianggap memiliki nilai yang sama. Pencuplikan dilakukan setiap satu satuan
waktu yang lazim disebut sebagai waktu cuplik (sampling time). Bagian quantiser
akan merubah menjadi beberapa level nilai, pembagian level nilai ini bisa
secara uniform ataupun secara non-uniform misal pada Gaussian quantiser.
Unjuk kerja dari suatu ADC
bergantung pada beberapa parameter, parameter utama yang menjadi pertimbangan
adalah sebagai berikut :
- Kecepatan maksimum dari waktu cuplik.
- Kecepatan ADC melakukan konversi.
- Resolusi dari quantiser, misal 8 bit akan mengubah menjadi 256 tingkatan nilai.
- Metoda kuantisasi akan mempengaruhi terhadap kekebalan noise.
Gambar 1. Proses sampling
Sinyal input asli yang tadinya
berupa sinyal kontinyu, x(T) akan dicuplik dan diquantise sehingga berubah
menjadi sinyal diskrete x(kT). Dalam representasi yang baru inilah sinyal
diolah. Keuntungan dari metoda ini adalah pengolahan menjadi mudah dan dapat
memanfaatkan program sebagai pengolahnya. Dalam proses sampling ini diasumsikan
kita menggunakan waktu cuplik yang sama dan konstan, yaitu Ts. Parameter cuplik
ini menentukan dari frekuensi harmonis tertinggi dari sinyal yang masih dapat
ditangkap oleh proses cuplik ini. Frekuensi sampling minimal adalah 2 kali dari
frekuensi harmonis dari sinyal.
Untuk mengurangi kesalahan
cuplik maka lazimnya digunakan filter anti-aliasing sebelum dilakukan proses
pencuplikan. Filter ini digunakan untuk meyakinkan bahwa komponen sinyal yang
dicuplik adalah benar-benar yang kurang dari batas tersebut. Sebagai ilustrasi,
proses pencuplikan suatu sinyal digambarkan pada gambar berikut ini.
Gambar 2. Pengubahan dari sinyal
kontinyu ke sinyal diskret
Setelah sinyal diubah
representasinya menjadi deretan data diskrete, selanjutnya data ini dapat
diolah oleh prosesor menggunakan suatu algoritma pemrosesan yang
diimplementasikan dalam program. Hasil dari pemrosesan akan dilewatkan ke suatu
DAC (Digital to Analog Converter) dan LPF (Low Pass Filter) untuk dapat diubah
menjadi sinyal kontinyu kembali. Secara garis besar, blok diagram dari suatu
pengolahan sinyal digital adalah sebagai berikut :
Gambar 3. Blok Diagram Sistem
Pengolahan Sinyal Digital
Proses pengolahan sinyal
digital dapat dilakukan oleh prosesor general seperti halnya yang lazim
digunakan di personal komputer, misal processor 80386, 68030, ataupun oleh
prosesor RISC seperti 80860. Untuk kebutuhan pemrosesan real time, dibutuhkan
prosesor yang khusus dirancang untuk tujuan tersebut, misal ADSP2100, DSP56001,
TMS320C25, atau untuk kebutuhan proses yang cepat dapat digunakan paralel chip
TMS320C40. Chip-chip DSP ini memiliki arsitektur khusus yang lazim dikenal
dengan arsitektur Harvard, yang memisahkan antara jalur data dan jalur kode.
Arsitektur ini memberikan keuntungan yaitu adanya kemampuan untuk mengolah
perhitungan matematis dengan cepat, misal dalam satu siklus dapat melakukan
suatu perkalian matrix. Untuk chip-chip DSP, instruksi yang digunakan berbeda
pula. Lazimnya mereka memiliki suatu instruksi yang sangat membantu dalam
perhitungan matrix, yaitu perkalian dan penjumlahan dilakukan dalam siklus
(bandingkan dengan 80386, proses penjumlahan saja dilakukan lebih dari 1 siklus
mesin).
Proses
pengembagan aplikasi DSP
Apabila proses pengolahan
sinyal dilakukan menggunakan komputer biasa, maka pengembangan program tidak
berbeda seperti halnya pemrograman biasa lazimnya. Hanya algoritma yang
diterapkan dan teknik pengkodean harus mempertimbangkan waktu eksekusi dari
program tersebut.
Tata cara pengembangan
perangkat lunak menjadi berbeda apabila kita menggunakan sistem chip DSP, misal
TMS320C25. Terlebih lagi bila sistem tersebut nantinya akan bekerja sendiri (stand
alone). Pengembangan model harus dilakukan dengan menggunakan perangkat
bantu pengembang (development tool). Sebagai contoh digambarkan suatu
sistem pendisain perangkat lunak DSP buatan SPW- DSP Frameworks, yang secara
garis besar digambarkan sebagai berikut :
Gambar 4. Perangkat lunak pengembang
aplikasi pengolahan sinyal digital.
Keterangan :
- Design Database, berisi library disain yang telah tersedia dan lazim digunakan misal, FIR, IIR, Comb Filter dan lain-lain.
- Signal Calculator, merupakan perangkat lunak simulasi sinyal. Dapat melakukan manipulasi dan pengolahan sinyal sederhana.
- Sistem Disain Filter, merupakan perangkat lunak, untuk mendisain filter dengan response yang kita ingini, berikut pengujian filter tersebut. Lazimnya menggunakan beberapa algoritma disain seperti Park-McLelland, dan akan dihasilkan koefisien filter yang diingini.
- TIL, akan menghasilkan Custon HDL dan Netlist , yaitu gambar diagram implementasi algoritma secara perangkat keras, dengan menggunakan chip-chip, misal chip FIR, IIR.
- HDS, VHDL Generator, akan menghasilkan implementasi algoritma dalam deskripsi VHDL yang lazim digunakan dalam disain chip ASIC.
- DSP ProCoder – Assembly Code Generator, menghasilkan program dalam bahasa assembly chip DSP tertentu
- MultiProx, akan menghasilkan program yang diimplementasikan pada paralel DSP chip.
- CGS, C Code Generator akan menghasilkan program dalam bahasa C.
Pada
komputer utama, kita melakukan simulasi, disain filter, dan uji-coba awal.
Program bantu tersebut tersedia pada program pengembang (development tool
program). Apabila kita telah puas dengan algoritma tersebut, kita dapat
mengimplementasikan sesuai dengan sistem yang akan kita gunakan. Program akan
menghasilkan kode atau deskripsi yang dibutuhkan oleh jenis implementasi
tertentu. Misal akan menghasilkan deskripsi dalam format VHDL, apabila kita
ingin mengimplementasikan sistem menggunakan chip ASIC. Atau juga dapat dihasilkan
kode dalam bahasa C bila kita menginginkan portabilitas dari implementasi yang
dihasilkan.
Untuk lebih jelasnya
langkah-langkah pengembangan program untuk sistem DSP dapat digambarkan sebagai
berikut :
Gambar 5. Langkah-langkah
pengembangan sistem DSP
Dalam tahapan pengembangan
ini, digunakan komputer utama sebagai perangkat bantu pengembang, dan sebuah
DSP board, sebagai sasaran (target board) dari pengembangan program.
DSP Board ini ada yang berhubungan dengan PC melalui ekspansion slot, dan melalui
memori share, ada juga yang berhubungan dengan PC menggunakan hubungan serial
atau parallel printer card, sehingga benar-benar terpisah dari PC dan proses
hubungan dengan PC hanyalah pentransferan kode biner. Langkah-langkah
pengembangan program aplikasi adalah sebagai berikut :
Langkah pertama, adalah
mensimulasikan algoritma pengolahan sinyal dengan menggunakan perangkat
simulasi ataupun program. Sinyal masukan disimulasikan dengan menggunakan
data-data sinyal standard. Untuk keperluan ini dapat digunakan program-program
khusus simulasi ataupun program bantu matematis seperti halnya MATLAB dengan
Sinyal Processing Toolbox, Mathematica dengan DSP extension, DSPWorks, Khoros,
dan lain-lain.
Langkah kedua dilakukan dengan
menggunakan sistem DSP yang akan kita gunakan akhrinya, misal dengan
menggunakan TMS320C25 Card (tipe ini telah digunakan di Laboratorium Teknik
Komputer, STMIK Gunadarma). Biasanya pada card DSP telah terdapat unit ADC dan
DAC, sehingga dapat dilakukan proses pencuplikan sinyal sesungguhnya. Pertama
kali dicoba mengakuisisi sinyal masukan sesungguhnya, ini dilakukan dengan
mencuplik sinyal masukan tersebut. Hasil akuisisi tersebut akan berupa deretan
data akan digunakan untuk menguji algoritma. Kemudian secara off-line, baik
menggunakan program bantu matematis ataupun melalui program yang ditulis untuk
keperluan simulasi, sinyal tersebut diolah berdasarkan algortima yang
diimplementasikan. Hasil olahan sinyal tersebut disalurkan ke jalur keluaran
untuk menguji hasil akhir sesungguhnya dari algoritma tersebut. Proses ini
masih dilakukan secara non-real time dan diproses oleh prosesor pada PC.
Pengujian terhadap sinyal sesungguhnya dapat diukur dengan menggunakan alat
ukur seperti osciloscope, spectrum analyzer dan lain-lain.
Kemudian, program yang ditulis
dengan menggunakan instruksi dari chip DSP yang terdapat pada DSP Board
tersebut diuji. Proses penulisan program dilakukan di komputer utama (misal
PC), dan proses kompilasi juga dilakukan di komputer utama. Pengkompilasian
menggunakan cross-compiler atau cross asseembler khusus. Setelah
program berbentuk format biner, data akan ditransfer ke dalam memory di DSP
board, dan sistem DSP tersebut dieksekusi. Pada tahap ini, komputer utama hanya
bekerja untuk mengawasi keadaan memori, dan kerja dari program, tetapi tidak
melakukan pengolahan sinyal. Pada tahap ini, masukan sesungguhnya digunakan
untuk diolah dapat diberikan sehingga kerja dari algoritma dapat diamati pada
keadaan sesungguhnya.
Langkah terakhir adalah dengan
menulis kode biner tersebut ke dalam ROM, dan meletakkannya ke DSP board yang
nantinya akan bekerja berdiri sendiri tanpa adanya sebuah PC. Misal DSP sistem
tersebut digunakan untuk noise eliminator pada line telepon. Untuk membuat
sistem yang lebih lengkap, sistem dapat dikombinasikan dengan mikrokontroller
atau SBC (Single Board Computer) sebagai perangkat pengatur user interface.
Dengan demikian, secara garis
besar langkah-langkah pengembangan perangkat lunak untuk sistem DSP dapat
diringkas sebagai berikut :
- Simulasikan algoritma dengan menggunakan data simulasi.
- Lakukan simulasi dengan sinyal sesungguhnya, pengolahan secara off-line dan proses masih dilakukan di PC
- Tulis program menggunakan instruksi DSP.
- Kompilasi dan transfer ke RAM di DSP board.
- Eksekusi dan uji dengan sinyal sesungguhnya.
- Bila program sudah tidak ada kesalahan, tulis kode biner dari program ke ROM.
- Sistem siap pakai dengan ditambahkan prosesor utama yang menangani sistem pendukung.