Although Matlab™ has become widely used for DSP system design and simulation, Matlab has two problems: 1) it's expensive, and 2) it costs a lot. Fortunately, there are alternatives: Free Clones. Whatever else you can say about them, these Free Clones offer two significant advantages: 1) you don't have to pay for them, and 2) they're free.
The major Matlab clones are Scilab, Octave, Rlab and SciPy. None are true "clones", because none offer 100% compatibility with Matlab's "m-files". However, they all provide number-crunching power similar to Matlab, at a much better cost/performance ratio (since they're free!)
Essentially, Octave, Scilab, Rlab, and Scipy are interpreted, matrix-based programming languages. They share with Matlab:
- The use of matrices as a fundamental data type.
- Built-in support for complex numbers.
- Powerful built-in math functions and extensive function libraries.
- Extensibility in the form of user-defined functions.
- Strong support for plots
GNU Octave is a mature high-quality Matlab clone. It has the highest degree of Matlab compatibility of all the clones. And even thought it's a GNU project, easy-to-install Windows distributions are available. For more information about Octave:
In some ways, Scilab may be the best of the Matlab clones. Scilab has many strengths, including excellent documentation (the signal processing manual is an education in itself!) and excellent support (via e-mail and its own newsgroup). Best of all, for Windows users, Scilab is supplied not only as source code but as a Windows binary. Scilab is mostly - but not completely - compatible with Matlab. (Scilab now comes with a Matlab-to-Scilab translator, but that's still a bit immature.) For more information:
- Scilab Documentation and Support Page
- Scilab Online Documentation
- Scilab Signal Processing Manual (.pdf)
- Scilab Download Page
Rlab is the least Matlab-compatible so far. It does not try to be a Matlab clone but instead, in the words of its creator "borrows what I believe are the best features of the Matlab language and provides improved language syntax and semantics." Note: there haven't been any new releases in several years so development of Rlab seems to have ended. For more information about Rlab:
SciPy isn't actually a Matlab clone since it doesn't try to be compatible with Matlab. Instead, it bundles a set of Python packages that are directed at doing scientific computing tasks similar to what you might do with Matlab. In some ways the lack of compatibilty is an advantage: SciPy uniquely marries the power of Python as a general-use scripting language with the power of scientific computing ala Matlab. For more information about SciPy: