You are on page 1of 8

Introduction to Fast Fourier Transform (FFT) Algorithms

R.C. Maher ECEN4002/5002 DSP Laboratory Spring 2003

Discrete Fourier Transform (DFT)


The DFT provides uniformly spaced samples of the Discrete-Time Fourier Transform (DTFT) DFT definition:
N 1

X [k ] ! x[ n]e
n !0

j

2Tnk N

1 x[n] ! N

N 1

X [k ]e
n !0

2Tnk N

Requires N2 complex multiplies and N(N-1) complex additions


ECEN4002 Spring 2003 FFT Intro R. C. Maher 2

Faster DFT computation?


Take advantage of the symmetry and periodicity of the complex exponential (let WN=e-j2T/N)
symmetry: WNk [ N n ] ! WN kn ! (WNkn )* [ periodicity: WNkn ! WNk [ n  N ] ! WNk  N ]n

Note that two length N/2 DFTs take less computation than one length N DFT: 2(N/2)2<N2 Algorithms that exploit computational savings are collectively called Fast Fourier Transforms

ECEN4002 Spring 2003

FFT Intro

R. C. Maher

Decimation-in-Time Algorithm
Consider expressing DFT with even and odd input samples:
N 1 nk X [ k ] ! x[n]WN n!0

nk x[n]WN  n even
N 1 2

nk x[n]WN n odd
N 2

1

2 k ! x[2r ](WN ) rk  WN x[2r  1](WN2 ) rk r !0


N 1 2 N 2

r !0 1

rk k rk ! x[2r ]WN / 2  WN x[2r  1]WN / 2 r !0


ECEN4002 Spring 2003 FFT Intro

r !0
R. C. Maher 4

DIT Algorithm (cont.)


Result is the sum of two N/2 length DFTs

X [k ] !

G[ k ] ]
N/2 DFT of even samples

 WNk H [k ] ]
N/2 DFT of odd samples

Then repeat decomposition of N/2 to N/4 DFTs, etc. x[0,2,4,6]


N/2 DFT

X[07] x[1,3,5,7]
N/2 DFT
0 WN ...7
ECEN4002 Spring 2003 FFT Intro R. C. Maher 5

Detail of Butterfly
Cross feed of G[k] and H[k] in flow diagram is called a butterfly, due to shape
r WN

or simplify:
( WNr  N 2 )

r WN

-1

(! WNr )
ECEN4002 Spring 2003 FFT Intro R. C. Maher 6

8-point DFT Diagram


x[0,4,2,6, 1,5,3,7]
0 WN

X[07]
1
0 WN 0 WN

1 1
0 WN

1

WN2

1 1 1

0 WN

1
0 WN

1 WN

1

2 WN 3 WN

0 WN

1

2 WN

1
ECEN4002 Spring 2003 FFT Intro R. C. Maher

1
7

Computation on DSP
Input and Output data
Real data in X memory Imaginary data in Y memory

Coefficients (twiddle factors)


cos (real) values in X memory sin (imag) values in Y memory

Inverse computed with exponent sign change and 1/N scaling


ECEN4002 Spring 2003 FFT Intro R. C. Maher 8

You might also like