next up previous
Next: Fourier Transform 2 Real Up: fourier Previous: An Example

Fast Fourier Transform (FFT) Algorithm

The N-point DFT of time samples $x[0], x[1], \cdots, x[N-1]$ is defined as (ignoring the coefficient $1/\sqrt{N}$ for now):

\begin{displaymath}X[n]=\sum_{m=0}^{N-1} x[m]e^{-j2\pi mn/N}=\sum_{m=0}^{N-1}x[m]w_N^{mn}
\;\;\;\;\;\;\;\;\;\;(n=0, 1, \cdots, N-1) \end{displaymath}

where we have defined

\begin{displaymath}w_N \stackrel{\triangle}{=} e^{-j2\pi/N} \end{displaymath}

It is easy to show that $w_N$ has the following properties:

  1. \begin{displaymath}w_N^{kN}=\left( e^{-j2\pi /N} \right)^{kn}=e^{-j2\pi kN/N}
=e^{-j2k\pi} \equiv 1\end{displaymath}


  2. \begin{displaymath}w_{2N}^{2k}=\left( e^{-j2\pi /2N} \right)^{2k}=e^{-j2\pi k2/2N}
=e^{-jk2\pi/N} \equiv w_N^k\end{displaymath}


  3. \begin{displaymath}w_{2N}^{N}=\left( e^{-j2\pi /2N} \right)^N=e^{-j2\pi N/2N}
=e^{-j\pi} \equiv -1 \end{displaymath}

Let $N=2M$, the above DFT can be written as

\begin{displaymath}X[n]=\sum_{m=0}^{N-1} x[m]w_{N}^{mn}
=\sum_{m=0}^{M-1} x[2m]w_{2M}^{2mn}+\sum_{m=0}^{M-1} x[2m+1]w_{2M}^{(2m+1)n} \end{displaymath}

The first summation has all $M=N/2$ even terms and the second all $M=N/2$ odd ones. Due to the 2nd property of $w_M$, the above can be rewritten as
\begin{displaymath}
X[n]=\sum_{m=0}^{M-1}x[2m]w_{M}^{mn}+\sum_{m=0}^{M-1}x[2m+1...
...n}[n]+X_{odd}[n] w_{2M}^n,\;\;\;\;\;\;\;\;\;\;(n=0,\cdots,M-1)
\end{displaymath} (1)

where

\begin{displaymath}X_{even}[n]\stackrel{\triangle}{=}\sum_{m=0}^{M-1} x[2m]w_{M}...
...d}[n]\stackrel{\triangle}{=}\sum_{m=0}^{M-1} x[2m+1]w_{M}^{mn} \end{displaymath}

are two M-point DFTs, where

\begin{displaymath}
w_M^{mn}=e^{-j2\pi mn/M}=\cos(2\pi mn/M)-j\sin(2\pi mn/M)
\end{displaymath}

Note that the index $n=0,\cdots, M-1 $ for these two M-point DFTs only covers the first half of the range $n=0,\cdots,N-1$ for the original N-point DFT. However, the second half can be easily obtained by replacing $n$ in Eq. (1) with $n+M$:
$\displaystyle X[n+M]$ $\textstyle =$ $\displaystyle X_{even}[n+M]+X_{odd}[n+M] w_{2M}^{n+M}$  
  $\textstyle =$ $\displaystyle X_{even}[n+M]+X_{odd}[n+M] w_{2M}^n w_{2M}^M$  
  $\textstyle =$ $\displaystyle X_{even}[n+M]-X_{odd}[n+M] w_{2M}^n,\;\;\;\;\;\;\;\;\;\;(n=0,\cdots,M-1)$  

The last equation is due to the 3rd property of $w_M$. Also, due to the first property of $w_M$, we have

\begin{displaymath}X_{even}[n+M]=\sum_{m=0}^{M-1} x[2m]w_{M}^{m(n+M)}
=\sum_{m=0}^{M-1} x[2m]w_{M}^{mn}=X_{even}[n]
\end{displaymath}

and

\begin{displaymath}
X_{odd}[n+M]=\sum_{m=0}^{M-1} x[2m+1]w_{M}^{m(n+M)}
=\sum_{m=0}^{M-1} x[2m+1]w_{M}^{mn}=X_{odd}[n]
\end{displaymath}

Now the second half of the N-point DFT can be obtained as
\begin{displaymath}
X[n+M]=X_{even}[n]-X_{odd}[n] w_{2M}^n,\;\;\;\;\;\;\;\;\;\;(n=0,\cdots,M-1)
\end{displaymath} (2)

The N-point DFT can now be obtained from Eqs. (1), (2), once $X_{ever}[n]$ and $X_{odd}[n]$ are available. However, as $X_{ever}[n]$ and $X_{odd}[n]$ are two N/2-point DFTs, they each can also be obtained by two N/4-point DFTs. This process can be carried out recursively until finally only 1-point DFTs are needed, which are just the time samples themselves. Therefore, the operations of an N-point DFT can be symbolically represented by the following diagram. The complexity is therefore reduced from $O(N^2)$ to $O(N\; log_2 N)$.

fft_butter_fly.gif

FFTCode.png


next up previous
Next: Fourier Transform 2 Real Up: fourier Previous: An Example
Ruye Wang 2015-11-12