the fast fourier transform
DESCRIPTION
Title. The Fast Fourier Transform. Introduction. What is the FFT? - A collection of “tricks” that exploit the symmetryof the DFT calculation to make its execution muchfaster . - Speedup increases with DFT size. - PowerPoint PPT PresentationTRANSCRIPT
The Fast Fourier Transform
Title
Introduction
What is the FFT?
- A collection of “tricks” that exploit the symmetryof the DFT calculation to make its execution muchfaster .
- Speedup increases with DFT size.
Computational Cost of Discrete-Time Filtering
Convolution of an N-point input with an M-point unit sample response .
- Direct convolution:
Number of multiplies ≈ MN
- Using transforms directly:
Computation of N-point DFTs requires N^2 multiplies.
Each convolution requires three DFTs of length N+M-1 plus an additional N+M-1 complex multiplies or
For , for example, the computation is O(N^2)
y[n] x[k]h[n k]k
X[k] x[n]e j2kn / N
n0
N 1
3(N M 1)2 (N M 1)N M
Computational Cost of Discrete-Time Filtering
Convolution of an N-point input with an M-point unit sample response .
- Using overlap-add with sections of length L:
N/L sections, 2 DFTs per section of size L+M-1, plus additional multiplies for the DFT coefficients, plus one more DFT for
- For very large N, still is proportional to
2N
L(L M 1)2
N
L
(L M 1) (L M 1)2
h[n]
2M
The Cooley-Tukey decimation-in-time algorithm
Consider the DFT algorithm for an integer power of 2,
Create separate sums for even and odd values of n:
Letting for n even and for n odd, we obtain
N 2
X[k]n0
N 1 x[n]WN
nk n0
N 1 x[n]e j2nk /N ; WN e j2 /N
X[k] x[n]WNnk
n even x[n]WN
nk
n odd
X[k] x[2r]WN2rk
r0
N / 2 1
x[2r 1]WN2r1 k
r0
N /2 1
12 rnn 2r
The Cooley-Tukey decimation-in-time algorithm
Splitting indices in time , we have obtained
But and
So
X[k] x[2r]WN2rk
r0
N / 2 1
x[2r 1]WN2r1 k
r0
N /2 1
WN2 e j22 / N e j2 /(N / 2) WN / 2
rkN
kN
kN
rkN WWWW 2/2
X[k] n0
(N/ 2) 1
x[2r]WN /2rk WN
k
n0
(N/ 2) 1
x[2r 1]WN / 2rk
N/2-point DFT of x[2r] N/2-point DFT of x[2r+1]
Signal flowgraph representation of 8-point DFT
Recall that the DFT is now of the form
The DFT in (partial) flowgraph notation:
][][][ kHWkGkX kN
Continuing with the decomposition …
So why not break up into additional DFTs? Let’s take the upper 4-point DFT and break it up into two 2-point DFTs:
The complete decomposition into 2-point DFTs
Closer look at the 2-point DFT
The expression for the 2-point DFT is:
Evaluating for we obtain
which in signal flow graph notation looks like …
This topology is referred as the BASIC BUTTERFLY
X[k] n0
1
x[n]W2nk
n0
1
x[n]e j2nk / 2
X[0] x[0] x[1]
X[1] x[0] e j21/ 2x[1] x[0] x[1]
k 0,1
The complete 8-point decimation-in-time FFT
Number of multiplys for N-point FFTs
• Let
(log2(N) columns)(N/2 butterflies/column)(2 mults/butterfly)
or multiplies
N 2 where log2 (N)
N log2(N)
CONCLUSION
Use of the FFT algorithm reduces the number of multiplys required to perform the DFT by a factor of more than 100 for 1024-point DFTs, with the advantage increasing with increasing DFT size.