How are FFTs different from DFTs and how can they be implemented in C ++?

After some study, I created a small application that calculates DFT (discrete Fourier transforms) from some input. It works quite well, but it is rather slow.

I read that FFTs (fast Fourier transforms) allow you to calculate faster, but how do they differ? And more importantly, how can I implement them in C ++?

+3
source share
5 answers

If you don’t need to manually implement the algorithm, you can take a look at the Fastest Fourier Transform in the West

I even thought that it was developing in C, it officially works in C ++ (from the FAQ )

2.9. FFTW ++?

. FFTW / ++. , , ++   - FFTW (. FFTW ).

+4

FFT n * log (n) DFT, n ^ 2.

, -, ​​ . http://en.wikipedia.org/wiki/Fast_Fourier_transform ( )

, , . http://www.fftw.org/ propariaretery (, MATLAB).

+3

, 8 DFT 12 FFT, , .

, ( ), .

++, Fastest Fourier Transform ( superexsl) DSP, TI Analog Devices.

+1

( ). , . DFT O (n ^ 2), FFT O (nlogn).

, , - (, ) E . . DFT Cooley-Tukey Algorithm radix-2 (n - 2) ( , ).

radix-2 X . , X , , n .

+1

.

FastFourierTransform

,

  • , ( Matlab , )
  • ,
0

Source: https://habr.com/ru/post/1739725/


All Articles