Está en la página 1de 14

PRINCIPLE OF THE FAST FOURIER

TRANSFORM
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
j2tkn / N
n=0
N1

3(N+ M1)
2
+ (N+ M1)
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]
2
M
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
v

X[k] =
n=0
N1

x[n]W
N
nk
=
n=0
N1

x[n]e
j2tnk / N
; W
N
= e
j2t / N

X[k] = x[n]W
N
nk
+
n even

x[n]W
N
nk
n odd

X[k] = x[2r]W
N
2rk
+
r=0
N / 2 ( )1

x[2r +1]W
N
2r+1 ( )k
r=0
N / 2 ( )1

1 2 + = r n
n = 2r
The Cooley-Tukey decimation-in-time
algorithm
Splitting indices in time , we have obtained



But and
So
X[k] = x[2r]W
N
2rk
+
r=0
N / 2 ( )1

x[2r +1]W
N
2r+1 ( )k
r=0
N / 2 ( )1

W
N
2
= e
j 2t2 / N
= e
j2t /( N/ 2)
= W
N/ 2
rk
N
k
N
k
N
rk
N
W W W W
2 /
2
=
X[k] =
n=0
(N/ 2)1

x[2r]W
N / 2
rk
+ W
N
k
n=0
( N/ 2)1

x[2r +1]W
N / 2
rk
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:

] [ ] [ ] [ k H W k G k X
k
N
+ =
Continuing with the decomposition
So why not break up into additional DFTs? Lets 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] =
n=0
1

x[n]W
2
nk
=
n=0
1

x[n]e
j 2tnk / 2
X[0] = x[0] + x[1]
X[1] = x[0] +e
j 2t1/ 2
x[1] = x[0] x[1]
k = 0,1
The complete 8-point decimation-in-time FFT
Number of multiplys for N-point FFTs





Let
(log
2
(N) columns)(N/2 butterflies/column)(2 mults/butterfly)
or multiplies
N = 2
v
where v = log
2
(N)
Nlog
2
(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.

También podría gustarte