MATLAB: Does the fft automatically use a dft algorithm

dftfft

Hello everybody, Matlab has only the fft command. The fft algorithm is based on a signal of power of 2. If your signal length differs, you can perfomr zero-padding or a cut-off. Well, what is not clear for me: if the signal does not fit the power of 2 condition, does matlab then automatically perform a dft or does it automatically zero-padding/truncating? thanks for your help! Peter

Best Answer

Hi Peter, MATLAB has multiple FFT algorithms. The transform is the discrete Fourier transform (DFT). FFT algorithms are just implementations of the DFT that reduce the computational complexity. You don't want to implement the DFT by a brute force matrix-vector product.
All these algorithms, the classic radix-2 FFT that you refer to, the chirp Z-transform evaluated on the unit circle contour, the Goerzel algorithm are ways of obtaining the DFT.
In particular, the FFTW library implemented in both MATLAB and SIMULINK supports both power of two and non-power of two signal lengths. Please see:
So in short: There is no single FFT algorithm. FFT algorithms are implementations of the mathematical transform, the DFT.
Related Question