# Does Mathematica implement the fast Fourier transform?

Is there a fast Fourier transform in Mathematica? Although looking in the help I could not find one.

I am looking to implement the equivalent of fft in MATLAB.

• There is definitely something different going on with Fourier[] than the fft function in Matlab. If you take the fft(eye(n)) in Matlab you get the FourierMatrix of n. In Mathematica you do not. FourierMatrix[n] does exist, but the method of obtaining it via Fourier[IdentityMatrix[n]] does not work in Mathematica, so the fft and Fourier functions are different somehow. Apr 14, 2018 at 22:30
• I have put some notes on how Mathematica implements a Fourier transform here.
– Hugh
Nov 4, 2021 at 6:47

Fourier[list] computes the discrete Fourier transform of list. I assume it uses the FFT when it can.
• Note that the normalization used by Mathematica is quite different from conventional (e.g. physics, signal processing) normalizations. Check the definition you are using, and set the option FourierParameters accordingly. Feb 2, 2012 at 14:15
• fftshift[vec_?VectorQ] := RotateRight[vec, Quotient[Length[vec], 2]] Feb 2, 2012 at 14:39
• For reference: MATLAB's fft(stuff) is equivalent to Mathematica's Fourier[stuff, FourierParameters -> {1, -1}]. To do fft(y)/sqrt(length(y)), one doesn't need to do an explicit division, as the adjustment of FourierParameters is all that's needed: Fourier[y, FourierParameters -> {0, -1}]. Feb 2, 2012 at 15:00
• @A.Vieira, under the fifth and sixth bullets of "Details and Options" for Fourier[] and fourth and fifth bullets of "Details and Options" for FourierTransform[], are explanations on how the FourierParameters option affects them. There should be similar notations in the other Fourier-related functions of Mathematica that take the FourierParameters setting. Sep 8, 2017 at 14:29
Fourier uses FFT when possible