If you’ve taken any digital signal processing classes at a college or university, you’ve probably been exposed to MATLAB. However, if you want to do your own work, you might think about Linux and one of the many scientific computing applications available for it.

[David Duarte] recently published a three-part tutorial on using Octave to do scientific audio processing. The first part covers basic reading, writing, and playing of audio files. Part two covers synthesis of signals, plotting, and some basic transformations. Modulation is the topic of the third part. If you prefer your tutorials on video, you can check out the video below.

We’ve talked about MATLAB before in the context of message cracking. Then again, some of the best signal processing is done by humans. If you don’t like Octave, you might try Scilab, another Linux package that is similar. There’s also Freemat, Sage, and Spyder. Of course, you can also run MATLAB under Linux.

Python users on Linux can look at SciPy and NumPy and work interactively in developing an algorithm or process using iPython Notebook. There are plenty of videos and blogs to choose from. (Use Python virtualization and set up a Python3.5 to use the cool newer features).

:)

Why do I get the impression from the write-up that the only easily-conceivable combinations would be Linux+Octave or Win+Matlab. The last 14 years I’ve been using professionally the combination Linux+Matlab (and the installation is nowadays identical to Win-version, so no magic there) and privately Win+Octave. Most of the things work in Octave just the way they work in Matlab. For me the benefit of Matlab/Octave over Python-based solutions is how easy debugging is, since during algorithmic development that’s what you do a lot. For real-world deployment etc. Python could be more suitable.

I used Matlab in college and loved it until I got out of college and realized how much it costs. I switched to python and haven’t once thought it was missing something Matlab has. If you use a good IDE like PyCharm, the debugging just as good as Matlab.

I use both and prefer python with the spicy package. Octave is great if there is something on the web that works in matlab and you don’t want to rewrite it (some minor tweaks may be required though as not all functions are available). I have found the spicy/numpy implementations to generally be faster when working with large datasets by 10x or more. YMMV.

Developing in Spyder or iPython makes it as easy as getting the command figured out, making sure results are correct, then copy/paste over to your main program.

Would be nice to see a similar tutorial using julia instead!

Link:

http://julialang.org/

There, that wasn’t so hard – was it?

Octave has a windows package that works very well. Also you can download many add in packages to expand Octave from the Octave Forge page. Scilab also works well although the documentation is not is well developed as it is translated from another language.

And a plug for Freemat when you want to do simpler calculations. It loads very quickly. I use it in place of excel now for most basic calculations.

I like a version of Octave called Octave UPM. It’s developed by a spanish university and it has some fancy stuff normal Octave doesn’t have.