PENGOLAHAN SINYAL DIGITAL
I Made Wiryana
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.
Demikianlah pada
tulisan awal ini telah dijelaskan secara singkat tentang pengolahan sinyal
digital dan tahapan pengembangan sistem pengolahan sinyal digital. Lebih lanjut
akan diterangkan tentang algoritma-algoritma yang digunakan untuk pengolahan
sinyal digital.
REFERENCE :
Oppenheim, Alan V., Ronald W. Schafer (1989), Discrete
Tme Signal Processing, New Jersey: Prentice Hall Inc.
Kuc, Roman (1988), Introduction to Digital
Signal Processing, Singapore: Mc Graw-Hill Book Co.
Lynn, Paul A., Wolfgang Fuerst (1989), Introductory
Digital Signal Processing with Computer Applications, England: John Willey
and Sons Ltd.
Smith, M. R. (1992), To DSP or Not to DSP, will a
RISC do it better ?, The Computer Application Journal,
Agustus-Septermber, 28, pp. 14-25.
Borax, Craig , David Beck (1992), VFX Digital
Signal Processor, use this effects processors to change the pitch of your voice
and to create special effects, Electronics, September, pp.37-47.
Chen, Daniel (1992), Parallel DSP for designing
adaptive filters, Dr Dobb Journal, Januari 1992, pp.16-22.
Posted : Ari Anggriawan S.
Posted : Ari Anggriawan S.
Tidak ada komentar:
Posting Komentar