0% found this document useful (0 votes)
41 views

Fast Fourier Transform

The document discusses the Fast Fourier Transform (FFT) algorithm. It describes how the FFT uses symmetry properties to greatly speed up the Discrete Fourier Transform (DFT) calculation. Specifically, it breaks down the Cooley-Tukey decimation-in-time algorithm which decomposes a DFT of size N into multiple smaller DFTs of size N/2, reducing the computational complexity from O(N^2) to O(NlogN). It also introduces signal flowgraph notation to represent the decomposition of DFT calculations into basic butterfly operations.

Uploaded by

Alina Raza
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
41 views

Fast Fourier Transform

The document discusses the Fast Fourier Transform (FFT) algorithm. It describes how the FFT uses symmetry properties to greatly speed up the Discrete Fourier Transform (DFT) calculation. Specifically, it breaks down the Cooley-Tukey decimation-in-time algorithm which decomposes a DFT of size N into multiple smaller DFTs of size N/2, reducing the computational complexity from O(N^2) to O(NlogN). It also introduces signal flowgraph notation to represent the decomposition of DFT calculations into basic butterfly operations.

Uploaded by

Alina Raza
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 62

FAST FOURIER

TRANSFORM
Introduction

 Today we will Discuss “Fast Fourier


Transforms”, which have revolutionized
digital signal processing
 What is the FFT?
– A collection of “tricks” that exploit the symmetry of the
DFT calculation to make its execution much faster
– Speedup increases with DFT size
Introduction, continued

 Some dates:
– ~1880 - algorithm first described by Gauss
– 1965 - algorithm rediscovered (not for the first time)
by Cooley and Tukey

 In 1967, calculation of a 8192-point DFT on


the top-of-the line IBM 7094 took ….
– ~30 minutes using conventional techniques
– ~5 seconds using FFTs
Measures of computational efficiency

 Could consider
– Number of additions
– Number of multiplications
– Amount of memory required
– Scalability and regularity

 For the present discussion we’ll focus most on


number of multiplications as a measure of
computational complexity
– More costly than additions for fixed-point processors
– Same cost as additions for floating-point processors, but number
of operations is comparable
Fast Fourier Transform Algorithms
 Consider DFT

 Basic idea is to split the sum into 2 subsequences of length N/2 and
continue all the way down until you have N/2 subsequences of length
2

Log2(8)

N
The Cooley-Tukey decimation-in-time
algorithm

 Consider the DFT algorithm for an integer power of 2, N  2


N 1 N 1
X[k]   x[n]W N nk   x[n]e j2nk / N ; W N  e j2 / N
n0 n0
 Create separate sums for even and odd values of n:
X[k]   x[n]WN nk   x[n]WN nk
n even n odd
 Letting n  2r for n even and n  2r 1 for n odd, we obtain
 N / 21  N / 2 1
X[k]   x[2r]WN 2rk   x[2r  1]WN  2r1 k
r 0 r 0
The Cooley-Tukey decimation in time algorithm

 Splitting indices in time, we have obtained


 N / 21  N / 2 1
X[k]   x[2r]WN 2rk   x[2r  1]WN  2r1 k
r 0 r 0

 But WN2  e  j 2 2 / N  e  j2 /( N / 2)  WN / 2 and WN2rk WNk  WNk WNrk/ 2


So … (N/ 2)1 ( N/ 2)1
X[k]   x[2r]WNrk/ 2  WNk  x[2r 1]WNrk/ 2
n0 n0

N/2-point DFT of x[2r] N/2-point DFT of x[2r+1]


Savings so far …

 We have split the DFT computation into two halves:


N 1
X[k]   x[n]WN nk
k 0
( N/ 2)1 ( N/ 2)1
  x[2r]WNrk/ 2  WNk  x[2r  1]WNrk/ 2
n0 n0

 Have we gained anything? Consider the nominal number of


multiplications for N  8
2
– Original form produces 8  64 multiplications
2
– New form produces 2(4 )  8  40 multiplications
– So we’re already ahead ….. Let’s keep going!!
Signal flowgraph notation

 In generalizing this formulation, it is most convenient to adopt


a graphic approach …
 Signal flowgraph notation describes the three basic DSP
operations:
x[n]
– Addition x[n]+y[n]
y[n]
a
– Multiplication by a constant x[n] ax[n]
z-1
– Delay x[n] x[n-1]
Signal flowgraph representation of 8-point DFT

 Recall that the DFT is now of the form X[k]  G[k]  WNk H[k]
 The DFT in (partial) flowgraph notation:
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
Now let’s take a closer look at the 2-point DFT

 The expression for the 2-point DFT is:


1 1
X[k]   x[n]W2nk   x[n]e  j 2nk / 2
n0 n0
 Evaluating for k  0,1 we obtain
X[0]  x[0]  x[1]
X[1]  x[0]  e  j 21 / 2 x[1]  x[0]  x[1]
which in signal flowgraph notation looks like ...

This topology is referred to as the


basic butterfly

You might also like