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 :