Categories


Algorithm Prototyping: GNU Octave

Signal processing algorithms are usually prototyped and tested using high level math tools such as MATLAB or Mathcad. These tools use a high level language that closely models actual mathematical equations. Tools like these include many built in math functions and utilities to plot results. MATLAB even has add-on packages that can generate C/C++ code or HDL for implementing signal processing applications on a DSP or an FPGA. The only problem is that these tools are too expensive to purchase for personal development projects.

Fortunately there is an open-source alternative, GNU Octave. Octave’s language is mostly compatible with MATLAB. You can also write your own modules for Octave in C/C++ and invoke them from Octave. Octave is integrated with GNU Plot to provide graphical output. Octave provides a highly interactive environment making it easier to quickly debug algorithms. This should prove to be much quicker than writing C++ code and trying to debug both the algorithm and the code at the same time.

GNU Octave includes an audio processing package that will be useful for prototyping speech processing algorithms. The package includes functions for reading and writing digitized audio in WAV file format, playing processed audio using the computer’s sound card, and plotting digital audio data. There are also packages for digital signal processing and communications that may prove useful in this project.  You don’t even need to buy yet another manual to use Octave.  The entire 575 page manual is online.

Comments are closed.