FFT is the optimization of DFT and IDFT based on the idea of divide and conquer.
DFT: \ (\mathbb{c} ^{n}\rightarrow \mathbb{c} ^{n}: \left (X_{1},\ldots, X_{n}\right) \rightarrow \left (y_{1},\ldots , y_{n}\right) \)
IDFT is the inverse mapping of the DFT
Memory \ (\omega _{n}=e^{\dfrac {2\pi i}{n}}\), the
\[dft:y_{k}=\sum ^{n-1}_{n=0}\omega ^{nk}_{n}x_{n}\idft:x_{k}=\sum ^{n-1}_{n=0}\dfrac {\omega ^{-nk}_{N}}{N}y_{n}\]
Therefore, both DFT and IDFT are linear transformations on n-dimensional complex spaces, and their matrices are vandermonde matrices. Because it is matrix multiplication, the complexity is O (n^2). It is noted that the properties of the complex unit roots make the DFT highly similar to the IDFT, so it is only possible to consider reducing the complexity of the DFT.
Defined:
\[e_{k}=\sum ^{n/2-1}_{m=0}\omega ^{2mk}_{n}x_{2m}\o_{k}=\sum ^{n/2-1}_{m=0}\omega ^{2mk}_{N}x_{2m+1}\]
Then \[y_{k}=e_{k}+\omega _{n}o_{k}\y_{k+n/2}=e_{k}-\omega _{n}0_{k}\]
Obviously, this recursion can reduce the complexity to O (NLOGN).
FFT with fast Fourier transform