MATLAB is an expensive and vey elaborate software out there. Is there any free, preferably open source, software near MATLAB; at least offering some features of MATLAB in FFT, and other frequency analysis tools?


3 Answers 3


There are two free alternatives to MATLAB with Fast Fourier Transform (FFT) that I'd like to recommend based on my own usage:

  • R
  • Python's Scipy package

R Statistics

R is a statistical analysis software. It is very very good at statistics and data visualization.

Here's some discussion on Stackoverflow of various packages that allow FFT in R.


Python is a general purpose programming language, and it's Scipy package has grown functionality that is nearly comparable to R. Stackoverflow has a great example of FFT frequency analysis in Python's Scipy.

A third option, Octave

Octave is an interpreted language environment that is quite similar to Matlab. I have not used it, but I did a full feature analysis when I decided on using R, and Octave came in second.

Here's Octave's FFT functionality: http://www.gnu.org/software/octave/doc/interpreter/Signal-Processing.html

Pick the one that best represents the direction you're heading. R is great for statistics, Octave is more pure math. Good luck!

  • 1
    Can you add any personal experiences with this software? Commented Mar 3, 2014 at 23:20
  • I have used R and been to many presentations on it and using it. Octave, not so much, but it was second to R when I was doing a package analysis for my own needs.
    – Aaron Hall
    Commented Mar 3, 2014 at 23:22
  • Welcome to Software Recommendations! To join in to what Kelly was referring to: Could you please read our discussion on what makes an answer high quality to see if you can incorporate some of these improvements into your answer? A.o., please include essentials from behind off-site links – as if the linked pages disappear, this information would be lost.
    – Izzy
    Commented Mar 4, 2014 at 10:34

If you are open to playing with relatively new languages, have a look at Julia.

As a Matlab user, you might find it familiar.

Its FFT function is documented here; cosine transforms, filters and convolutions are also part of its standard library. Interestingly, there is also a paper describing how to make use of Julia's parallelism to implement a parallel FFT.

In particular, it implements most of the Matlab functions for Fourier Analysis, and also gives you control of whether to perform the transform in-place or not.

It is built on top of the FFTW C library, so its performance is predictable and state of the art. (Note you can also interface FFTW from Matlab.


There are many good alternatives for MATLAB:

Octave Octave has a syntax that is virtually the same as MATLAB's and it is therefore very easy to get started with. It allows the implementation of functions in the C language, which greatly outperforms all script implementations.

SciPy Use python as a language to MATLAB and, for plotting at least, the syntax is close enough to MATLAB's to be simple to get you started.

matplotlib The graph plotting quality of matplotlib is among the best I've come across and I've found nothing that compares to its tools for scrolling and zooming around data plotted on a graph.

Sage is a free open-source mathematics software system licensed under the GPL. It combines the power of many existing open-source packages into a common Python-based interface.


Not the answer you're looking for? Browse other questions tagged or ask your own question.