Sunteți pe pagina 1din 59

Chapter 19

Fast Fourier Transform (FFT)


(Theory and Implementation)

Chapter 19, Slide 1

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004

Learning Objectives

Chapter 19, Slide 2

DFT algorithm.
Conversion of DFT to FFT algorithm.
Implementation of the FFT algorithm.

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004

DFT Algorithm

The Fourier transform of an analogue


signal x(t) is given by:
X

x t e jt dt

The Discrete Fourier Transform (DFT) of


a discrete-time signal x(nT) is given by:
N 1

X k x n e

2
nk
N

n 0

Chapter 19, Slide 3

Where:

k 0,1, N 1
x nT x n
Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004

DFT Algorithm
N 1

X k x nWNnk
n0

x[n] = input
X[k] = frequency bins
W

= twiddle factors

X(0)

= x[0]WN0 + x[1]WN0*1 ++ x[N-1]WN0*(N-1)

X(1)

= x[0]WN0 + x[1]WN1*1 ++ x[N-1]WN1*(N-1)


:

X(k)

= x[0]WN0 + x[1]WNk*1 ++ x[N-1]WNk*(N-1)


:

X(N-1) = x[0]WN0 + x[1]WN (N-1)*1 ++ x[N-1]WN (N-1)(N-1)

Note: For N samples of x we have N frequencies


representing the signal.
Chapter 19, Slide 4

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004

Performance of the DFT Algorithm

The DFT requires N2 (NxN) complex


multiplications:

The DFT also requires (N-1)*N complex


additions:

Chapter 19, Slide 5

Each X(k) requires N complex


multiplications.
Therefore to evaluate all the values of the
DFT ( X(0) to X(N-1) ) N2 multiplications are
required.

Each X(k) requires N-1 additions.


Therefore to evaluate all the values of the
DFT (N-1)*N additions are required.
Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004

120

120

Number of Additions

Number of Multiplications

Performance of the DFT Algorithm

100
80
60
40
20

100
80
60
40
20
0

0
0

Number of Samples

Chapter 19, Slide 6

10

10

Number of Samples

Can the number of computations required


be reduced?
Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004

DFT FFT

Chapter 19, Slide 7

A large amount of work has been devoted


to reducing the computation time of a
DFT.
This has led to efficient algorithms which
are known as the Fast Fourier Transform
(FFT) algorithms.

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004

DFT FFT
N 1

X k x nWNnk ; 0 k N 1
n 0

[1]

x[n] = x[0], x[1], , x[N-1]

Lets divide the sequence x[n] into even


and odd sequences:

Chapter 19, Slide 8

x[2n]
= x[0], x[2], , x[N-2]
x[2n+1] = x[1], x[3], , x[N-1]

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004

DFT FFT

Equation 1 can be rewritten as:


N
1
2

N
1
2

n 0

n0

X k x 2nWN2 nk x 2n 1WN 2 n 1 k

[2]

Since:
W N2 nk e

2
2 nk
N

2
nk
N 2

WN 2 n 1 k WNk W Nnk

W Nnk

Then:

X k

N
1
2

n 0

x 2nW Nnk W Nk
2

Y k WNk Z k
Chapter 19, Slide 9

N
1
2

n 0

x 2n 1W Nnk
2

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004

DFT FFT

The result is that an N-point DFT can be


divided into two N/2 point DFTs:
N 1

X k x nWNnk ; 0 k N 1

N-point DFT

n 0

Where Y(k) and Z(k) are the two N/2


point DFTs operating on even and odd
samples respectively:
X k

N
1
2

n 0

x1 nW Nnk W Nk
2

Y k W Nk Z k
Chapter 19, Slide 10

N
1
2

n 0

x2 nW Nnk
2

Two N/2point DFTs

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004

DFT FFT

Periodicity and symmetry of W can be


exploited to simplify the DFT further:
N
1
2

X k

x1 n W Nnk W Nk

n 0

N
1
2

x2 nW Nnk

n 0

[3]

X k
2

Or:
And:
Chapter 19, Slide 11

WN

N
2

N
1
2

N
n k
x1 n W N 2
n 0
2

WN
2

N
2

2
k
N

2 N
N 2

2
k
N 2

N
1
2
N
k
WN 2
x2

n 0

2
k
N

2 N
N 2 2

e
2
k
N 2

n k
n W N 2
2

2
k
N

W Nk
2

W Nk

: Symmetry

: Periodicity

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004

DFT FFT

Symmetry and periodicity:


W86

W85

W87

W84

W80 = W88

W83

W81 = W89

WNk+N/2 = -WNk
WN/2k+N/2 = WN/2k
W8k+4 = -W8k
W8k+8 = W8k

W82

Chapter 19, Slide 12

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004

DFT FFT

Finally by exploiting the symmetry and


periodicity, Equation 3 can be written as:

N
X k
2

N
1
2

n 0

x1 nW Nnk WNk
2

Y k WNk Z k

Chapter 19, Slide 13

N
1
2

n 0

x2 nW Nnk
2

[4]

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004

DFT FFT
N
1
2

N
k
Y k WN Z k ; k 0,
1
2

X k Y k WNk Z k ; k 0,

N
X k
2

Chapter 19, Slide 14

Y(k) and WNk Z(k) only need to be


calculated once and used for both
equations.
Note: the calculation is reduced from 0 to
N-1 to 0 to (N/2 - 1).

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004

DFT FFT
N
1
2

N
k
Y k WN Z k ; k 0,
1
2

X k Y k WNk Z k ; k 0,

N
X k
2

Y(k) and Z(k) can also be divided into N/4


point DFTs using the same process shown
above:
Y k U k W Nk V k
2

N
Y k U k W Nk V k
4

Chapter 19, Slide 15

Z k P k W Nk Q k
2

Z k P k W Nk Q k
4

The process continues until we reach 2


point DFTs.

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004

DFT FFT
x[0]
x[2]
x[4]

N/2 point
DFT

x[N-1]

Chapter 19, Slide 16

X[0] = y[0]+W0z[0]
X[1] = y[1]+W1z[1]

y[N-2]

x[N-2]
x[1]
x[3]
x[5]

y[0]
y[1]
y[2]

N/2 point
DFT

z[0]
z[1]
z[2]

W0
W1

-1
-1

X[N/2] = y[0]-W0z[0]
X[N/2+1] = y[1]-W1z[1]

z[N/2-1]

Illustration of the first decimation in time


FFT.
Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004

X [k ] G[k] WNk H[ K ]
X[k
Chapter 19, Slide 17

N
] G[k] WNk H[ K ]
2

N
k 0 to
1
2

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004

Chapter 19, Slide 18

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004

G[k ] G1[k] W Nk H1[ K ]


2

N
G[k ] G1[k] W Nk H1[ K ]
4
2

Chapter 19, Slide 19

N
k 0 to ( 1)
4
Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004

Chapter 19, Slide 20

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004

BUTTERFLY STRUCTURE

Chapter 19, Slide 21

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004

Chapter 19, Slide 22

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004

Decimation-In-Time FFT Algorithm

Final flow graph for 8-point decimation in time

Chapter 19, Slide 23

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004

FFT Implementation

To efficiently implement the FFT


algorithm a few observations are made:

Chapter 19, Slide 24

Each stage has the same number of


butterflies (number of butterflies = N/2, N is
number of points).
The number of DFT groups per stage is equal
to (N/2stage).
The difference between the upper and lower
leg is equal to 2stage-1.
The number of butterflies in the group is
equal to 2stage-1.

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004

FFT Implementation
Example: 8 point FFT
W0

W0

W0

W0

-1

-1

-1

-1

W0

-1

W2

-1

W0

W0

-1

W1

-1

W0

-1

W2

-1

W2

-1

W3

-1

Decimation in time FFT:

Chapter 19, Slide 25

Number of stages = log2N


Number of blocks/stage = N/2stage
Number of butterflies/block
= 2stage-1
Dr. Naim Dahnoun,
Bristol University, (c) Texas Instruments 2004

FFT Implementation
Example: 8 point FFT
(1) Number of stages:
W0

W0

W0

W0

-1

-1

-1

-1

W0

-1

W2

-1

W0

W0

-1

W1

-1

W0

-1

W2

-1

W2

-1

W3

-1

Decimation in time FFT:

Chapter 19, Slide 26

Number of stages = log2N


Number of blocks/stage = N/2stage
Number of butterflies/block
= 2stage-1
Dr. Naim Dahnoun,
Bristol University, (c) Texas Instruments 2004

Stage 1

W0

W0

W0

W0

FFT Implementation
Example: 8 point FFT
(1) Number of stages:
Nstages = 1

-1

-1

-1

-1

W0

-1

W2

-1

W0

W0

-1

W1

-1

W0

-1

W2

-1

W2

-1

W3

-1

Decimation in time FFT:

Chapter 19, Slide 27

Number of stages = log2N


Number of blocks/stage = N/2stage
Number of butterflies/block
= 2stage-1
Dr. Naim Dahnoun,
Bristol University, (c) Texas Instruments 2004

Stage 1

W0

W0

W0

W0

FFT Implementation
Stage 2

Example: 8 point FFT


(1) Number of stages:
Nstages = 2

-1

-1

-1

-1

W0

-1

W2

-1

W0

W0

-1

W1

-1

W0

-1

W2

-1

W2

-1

W3

-1

Decimation in time FFT:

Chapter 19, Slide 28

Number of stages = log2N


Number of blocks/stage = N/2stage
Number of butterflies/block
= 2stage-1
Dr. Naim Dahnoun,
Bristol University, (c) Texas Instruments 2004

Stage 1

W0

W0

W0

W0

FFT Implementation
Stage 2

Stage 3

-1

-1

-1

-1

W0

-1

W2

-1

W0

W0

-1

W1

-1

W0

-1

W2

-1

W2

-1

W3

-1

Example: 8 point FFT


(1) Number of stages:
Nstages = 3

Decimation in time FFT:

Chapter 19, Slide 29

Number of stages = log2N


Number of blocks/stage = N/2stage
Number of butterflies/block
= 2stage-1
Dr. Naim Dahnoun,
Bristol University, (c) Texas Instruments 2004

Stage 1

W0

W0

W0

W0

FFT Implementation
Stage 2

Stage 3

-1

-1

-1

-1

W0

-1

W2

-1

W0

Example: 8 point FFT


(1) Number of stages:
Nstages = 3
(2) Blocks/stage:
Stage 1:

W0

-1

W1

-1

W0

-1

W2

-1

W2

-1

W3

-1

Decimation in time FFT:

Chapter 19, Slide 30

Number of stages = log2N


Number of blocks/stage = N/2stage
Number of butterflies/block
= 2stage-1
Dr. Naim Dahnoun,
Bristol University, (c) Texas Instruments 2004

Stage 1

FFT Implementation
Stage 2

Stage 3

Block 1
W0

W0

W0

W0

-1

-1

-1

-1

W0

-1

W2

-1

W0

W0

-1

W1

-1

W0

-1

W2

-1

W2

-1

W3

-1

Example: 8 point FFT


(1) Number of stages:
Nstages = 3
(2) Blocks/stage:
Stage 1: Nblocks = 1

Decimation in time FFT:

Chapter 19, Slide 31

Number of stages = log2N


Number of blocks/stage = N/2stage
Number of butterflies/block
= 2stage-1
Dr. Naim Dahnoun,
Bristol University, (c) Texas Instruments 2004

Stage 1

FFT Implementation
Stage 2

Stage 3

Block 1
W0

-1

Block 2
W0

W0

W0

-1

-1

-1

W0

-1

W2

-1

W0

W0

-1

W1

-1

W0

-1

W2

-1

W2

-1

W3

-1

Example: 8 point FFT


(1) Number of stages:
Nstages = 3
(2) Blocks/stage:
Stage 1: Nblocks = 2

Decimation in time FFT:

Chapter 19, Slide 32

Number of stages = log2N


Number of blocks/stage = N/2stage
Number of butterflies/block
= 2stage-1
Dr. Naim Dahnoun,
Bristol University, (c) Texas Instruments 2004

Stage 1

FFT Implementation
Stage 2

Stage 3

Block 1
W0

-1

Block 2
W0

-1

W0

-1

W2

-1

Block 3
W0

W0

-1

-1

W0

W0

-1

W1

-1

W0

-1

W2

-1

W2

-1

W3

-1

Example: 8 point FFT


(1) Number of stages:
Nstages = 3
(2) Blocks/stage:
Stage 1: Nblocks = 3

Decimation in time FFT:

Chapter 19, Slide 33

Number of stages = log2N


Number of blocks/stage = N/2stage
Number of butterflies/block
= 2stage-1
Dr. Naim Dahnoun,
Bristol University, (c) Texas Instruments 2004

Stage 1

FFT Implementation
Stage 2

Stage 3

Block 1
W0

-1

Block 2
W0

-1

W0

-1

W2

-1

Block 3
W0

-1

Block 4
W0

-1

W0

W0

-1

W1

-1

W0

-1

W2

-1

W2

-1

W3

-1

Example: 8 point FFT


(1) Number of stages:
Nstages = 3
(2) Blocks/stage:
Stage 1: Nblocks = 4

Decimation in time FFT:

Chapter 19, Slide 34

Number of stages = log2N


Number of blocks/stage = N/2stage
Number of butterflies/block
= 2stage-1
Dr. Naim Dahnoun,
Bristol University, (c) Texas Instruments 2004

Stage 1

Block 1

W0

W0

W0

W0

FFT Implementation
Stage 2

Stage 3

-1

-1

-1

-1

W0

-1

W2

-1

W0

W0

-1

W1

-1

W0

-1

W2

-1

W2

-1

W3

-1

Example: 8 point FFT


(1) Number of stages:
Nstages = 3
(2) Blocks/stage:
Stage 1: Nblocks = 4

Stage 2: Nblocks = 1

Decimation in time FFT:

Chapter 19, Slide 35

Number of stages = log2N


Number of blocks/stage = N/2stage
Number of butterflies/block
= 2stage-1
Dr. Naim Dahnoun,
Bristol University, (c) Texas Instruments 2004

Stage 1

Block 1

W0

W0

Block 2

W0

W0

FFT Implementation
Stage 2

Stage 3

-1

-1

-1

-1

W0

-1

W2

-1

W0

W0

-1

W1

-1

W0

-1

W2

-1

W2

-1

W3

-1

Example: 8 point FFT


(1) Number of stages:
Nstages = 3
(2) Blocks/stage:
Stage 1: Nblocks = 4

Stage 2: Nblocks = 2

Decimation in time FFT:

Chapter 19, Slide 36

Number of stages = log2N


Number of blocks/stage = N/2stage
Number of butterflies/block
= 2stage-1
Dr. Naim Dahnoun,
Bristol University, (c) Texas Instruments 2004

Stage 1

W0

Block 1

W0

W0

W0

FFT Implementation
Stage 2

Stage 3

-1

-1

-1

-1

W0

-1

W2

-1

W0

W0

-1

W1

-1

W0

-1

W2

-1

W2

-1

W3

-1

Example: 8 point FFT


(1) Number of stages:
Nstages = 3
(2) Blocks/stage:
Stage 1: Nblocks = 4

Stage 2: Nblocks = 2

Stage 3: Nblocks = 1

Decimation in time FFT:

Chapter 19, Slide 37

Number of stages = log2N


Number of blocks/stage = N/2stage
Number of butterflies/block
= 2stage-1
Dr. Naim Dahnoun,
Bristol University, (c) Texas Instruments 2004

Stage 1

W0

W0

W0

W0

FFT Implementation
Stage 2

Stage 3

-1

-1

-1

-1

W0

-1

W2

-1

W0

W0

-1

W1

-1

W0

-1

W2

-1

W2

-1

W3

-1

Decimation in time FFT:

Chapter 19, Slide 38

Example: 8 point FFT


(1) Number of stages:
Nstages = 3
(2) Blocks/stage:
Stage 1: Nblocks = 4

Stage 2: Nblocks = 2

Stage 3: Nblocks = 1

(3) Bflies/block:
Stage 1:

Number of stages = log2N


Number of blocks/stage = N/2stage
Number of butterflies/block
= 2stage-1
Dr. Naim Dahnoun,
Bristol University, (c) Texas Instruments 2004

Stage 1

W0

W0

W0

W0

FFT Implementation
Stage 2

Stage 3

-1

-1

-1

-1

W0

-1

W2

-1

W0

W0

-1

W1

-1

W0

-1

W2

-1

W2

-1

W3

-1

Decimation in time FFT:

Chapter 19, Slide 39

Example: 8 point FFT


(1) Number of stages:
Nstages = 3
(2) Blocks/stage:
Stage 1: Nblocks = 4

Stage 2: Nblocks = 2

Stage 3: Nblocks = 1

(3) Bflies/block:
Stage 1: Nbtf = 1

Number of stages = log2N


Number of blocks/stage = N/2stage
Number of butterflies/block
= 2stage-1
Dr. Naim Dahnoun,
Bristol University, (c) Texas Instruments 2004

Stage 1

W0

W0

W0

W0

FFT Implementation
Stage 2

Stage 3

-1

-1

-1

-1

W0

-1

W2

-1

W0

W0

-1

W1

-1

W0

-1

W2

-1

W2

-1

W3

-1

Decimation in time FFT:

Chapter 19, Slide 40

Example: 8 point FFT


(1) Number of stages:
Nstages = 3
(2) Blocks/stage:
Stage 1: Nblocks = 4

Stage 2: Nblocks = 2

Stage 3: Nblocks = 1

(3) Bflies/block:
Stage 1: Nbtf = 1

Stage 2: Nbtf = 1

Number of stages = log2N


Number of blocks/stage = N/2stage
Number of butterflies/block
= 2stage-1
Dr. Naim Dahnoun,
Bristol University, (c) Texas Instruments 2004

Stage 1

W0

W0

W0

W0

FFT Implementation
Stage 2

Stage 3

-1

-1

-1

-1

W0

-1

W2

-1

W0

W0

-1

W1

-1

W0

-1

W2

-1

W2

-1

W3

-1

Decimation in time FFT:

Chapter 19, Slide 41

Example: 8 point FFT


(1) Number of stages:
Nstages = 3
(2) Blocks/stage:
Stage 1: Nblocks = 4

Stage 2: Nblocks = 2

Stage 3: Nblocks = 1

(3) Bflies/block:
Stage 1: Nbtf = 1

Stage 2: Nbtf = 2

Number of stages = log2N


Number of blocks/stage = N/2stage
Number of butterflies/block
= 2stage-1
Dr. Naim Dahnoun,
Bristol University, (c) Texas Instruments 2004

Stage 1

W0

W0

W0

W0

FFT Implementation
Stage 2

Stage 3

-1

-1

-1

-1

W0

-1

W2

-1

W0

W0

-1

W1

-1

W0

-1

W2

-1

W2

-1

W3

-1

Decimation in time FFT:

Chapter 19, Slide 42

Example: 8 point FFT


(1) Number of stages:
Nstages = 3
(2) Blocks/stage:
Stage 1: Nblocks = 4

Stage 2: Nblocks = 2

Stage 3: Nblocks = 1

(3) Bflies/block:
Stage 1: Nbtf = 1

Stage 2: Nbtf = 2

Number of stages = log2N


Stage 3: Nbtf = 1
Number of blocks/stage = N/2stage
Number of butterflies/block
= 2stage-1
Dr. Naim Dahnoun,
Bristol University, (c) Texas Instruments 2004

Stage 1

W0

W0

W0

W0

FFT Implementation
Stage 2

Stage 3

-1

-1

-1

-1

W0

-1

W2

-1

W0

W0

-1

W1

-1

W0

-1

W2

-1

W2

-1

W3

-1

Decimation in time FFT:

Chapter 19, Slide 43

Example: 8 point FFT


(1) Number of stages:
Nstages = 3
(2) Blocks/stage:
Stage 1: Nblocks = 4

Stage 2: Nblocks = 2

Stage 3: Nblocks = 1

(3) Bflies/block:
Stage 1: Nbtf = 1

Stage 2: Nbtf = 2

Number of stages = log2N


Stage 3: Nbtf = 2
Number of blocks/stage = N/2stage
Number of butterflies/block
= 2stage-1
Dr. Naim Dahnoun,
Bristol University, (c) Texas Instruments 2004

Stage 1

W0

W0

W0

W0

FFT Implementation
Stage 2

Stage 3

-1

-1

-1

-1

W0

-1

W2

-1

W0

W0

-1

W1

-1

W0

-1

W2

-1

W2

-1

W3

-1

Decimation in time FFT:

Chapter 19, Slide 44

Example: 8 point FFT


(1) Number of stages:
Nstages = 3
(2) Blocks/stage:
Stage 1: Nblocks = 4

Stage 2: Nblocks = 2

Stage 3: Nblocks = 1

(3) Bflies/block:
Stage 1: Nbtf = 1

Stage 2: Nbtf = 2

Number of stages = log2N


Stage 3: Nbtf = 3
Number of blocks/stage = N/2stage
Number of butterflies/block
= 2stage-1
Dr. Naim Dahnoun,
Bristol University, (c) Texas Instruments 2004

Stage 1

W0

W0

W0

W0

FFT Implementation
Stage 2

Stage 3

-1

-1

-1

-1

W0

-1

W2

-1

W0

W0

-1

W1

-1

W0

-1

W2

-1

W2

-1

W3

-1

Decimation in time FFT:

Chapter 19, Slide 45

Example: 8 point FFT


(1) Number of stages:
Nstages = 3
(2) Blocks/stage:
Stage 1: Nblocks = 4

Stage 2: Nblocks = 2

Stage 3: Nblocks = 1

(3) Bflies/block:
Stage 1: Nbtf = 1

Stage 2: Nbtf = 2

Number of stages = log2N


Stage 3: Nbtf = 4
Number of blocks/stage = N/2stage
Number of butterflies/block
= 2stage-1
Dr. Naim Dahnoun,
Bristol University, (c) Texas Instruments 2004

FFT Implementation
Stage 1

W0

-1

W0

-1

W0

Chapter 19, Slide 46

Stage 3

-1

W0

Start Index
Input Index
Twiddle Factor Index

Stage 2

-1

0
1

W0

-1

W2

-1

W0

W0

-1

W1

-1

W0

-1

W2

-1

W2

-1

W3

-1

0
2

0
4

N/2 = 4

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004

FFT Implementation
Stage 1

W0

-1

W0

-1

W0

Chapter 19, Slide 47

Stage 3

-1

W0

Start Index
Input Index
Twiddle Factor Index

Stage 2

-1

0
1
N/2 = 4

W0

-1

W2

-1

W0

W0

-1

W1

-1

W0

-1

W2

-1

W2

-1

W3

-1

0
2

0
4

4 /2 = 2

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004

FFT Implementation
Stage 1

W0

-1

W0

-1

W0

Chapter 19, Slide 48

Stage 3

-1

W0

Start Index
Input Index
Twiddle Factor Index

Stage 2

-1

0
1
N/2 = 4

W0

-1

W2

-1

W0

W0

-1

W1

-1

W0

-1

W2

-1

W2

-1

W3

-1

0
2
4 /2 = 2

0
4
2 /2 = 1

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004

FFT Implementation
Stage 1

W0

Stage 3

-1

W0

-1

W0

-1

W0

Start Index
Input Index
Twiddle Factor Index
Indicies Used

Stage 2

-1

0
1
N/2 = 4
W0

W0

-1

W2

-1

W0

W0

-1

W1

-1

W0

-1

W2

-1

W2

-1

W3

-1

0
2

0
4

4 /2 = 2
W0

2 /2 = 1

W2

W1

W0
W2

Chapter 19, Slide 49

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments


2004
3

Decimation-in-frequency FFT
Regroup the signal samples
butterfly operation
DFT obtained with proper order of frequency index

Chapter 19, Slide 50

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004

Decimation-in-frequency FFT
Assuming that N is a even number.
Divide the data sample into two groups

x (0), x (1), x ( 2)... x ( 2 1)


N
N

x
(
),
x
(

1
),...
x
(
N

1
)
.

2
2

Chapter 19, Slide 51

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004

Decimation-in-frequency FFT
7

X ( k ) x ( n )W
n 0

nk
8

x ( n )W
n 0

nk
8

x ( n )W
n 4

nk
8

We want to do something so that the above


are two 4-point DFTs.

Chapter 19, Slide 52

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004

Decimation-in-frequency FFT
For even k, (k=2m)
3

X ( 2m ) x ( n )W

2 nm
8

n 0

x ( n )W
n 0

nm
4

x ( n )W82 nm
n 4

x ( n 4)W
n 0

( n4)m
4

x ( n )W
n 0

nm
4

x ( n 4)W4nm
n 0

x ( n ) x ( n 4)W4nm
n 0

The DFT with even frequency indices can be


obtained as the 4-DFT of [x(n) +x(n+4)] (n=0,1,2,3)

Chapter 19, Slide 53

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004

Decimation-in-frequency FFT
For odd k, (k=2m+1)
X ( 2m 1)

x ( n )W

n ( 2 m 1)
8

n 0

W
n 0

W
n 0

n
8

n
8

W
n 0

n
8

nm
4

x ( n )W

nm
4

x ( n )W

W
n 0

( n4 )
8

W
n 0

n
8

x ( n )W

n ( 2 m 1)
8

n 4

x ( n 4)W4( n 4 ) m

x ( n 4)W4nm

x ( n ) x ( n 4)W

nm
4

W x ( n ) x ( n 4)W
3

n 0

n
8

nm
4

The DFT with odd frequency


indices can be obtained
n
as the 4-DFT of W8 x ( n ) x ( n 4)
(n=0,1,2,3)

Chapter 19, Slide 54

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004

Decimation-in-frequency FFT
x(0)
x(1)
x(2)
x(3)
x(4)
x(5)
x(6)
x(7)

Chapter 19, Slide 55

X(0)
4-point
DFT
-

W80
W81

4-point

W82

DFT

W83

X(2)
X(4)
X(6)
X(1)
X(3)
X(5)
X(7)

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004

Decimation-in-frequency FFT
x(0)

2-point

x(1)
x(2)

x(3)

x(4)

x(5)

x(6)

x(7)

Chapter 19, Slide 56

W40
W41

W80
1
8

W82
W83

W40
W41

X(0)

DFT

X(4)

2-point

X(2)

DFT

X(6)

2-point

X(1)

DFT

X(5)

2-point

X(3)

DFT

X(7)

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004

Decimation-in-frequency FFT
x(0)

X(0)

x(1)

x(2)

x(3)
x(4)
x(5)
x(6)
x(7)

Chapter 19, Slide 57

--

W80

W81

W82

W83

W40
W41

W20

X(4)
X(2)
X(6)
X(1)

X(3)

W40
W41

X(5)

X(7)

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004

Chapter 19, Slide 58

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004

End

Chapter 19, Slide 59

Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004