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.
0 komentar:
Posting Komentar