Documente Academic
Documente Profesional
Documente Cultură
Learning Objectives
DFT algorithm.
Conversion of DFT to FFT algorithm.
Implementation of the FFT algorithm.
DFT Algorithm
x t e jt dt
X k x n e
2
nk
N
n 0
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(1)
X(k)
120
120
Number of Additions
Number of Multiplications
100
80
60
40
20
100
80
60
40
20
0
0
0
Number of Samples
10
10
Number of Samples
DFT FFT
DFT FFT
N 1
X k x nWNnk ; 0 k N 1
n 0
[1]
x[2n]
= x[0], x[2], , x[N-2]
x[2n+1] = x[1], x[3], , x[N-1]
DFT FFT
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
DFT FFT
X k x nWNnk ; 0 k N 1
N-point DFT
n 0
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
DFT FFT
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
DFT FFT
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
DFT FFT
N
X k
2
N
1
2
n 0
x1 nW Nnk WNk
2
Y k WNk Z k
N
1
2
n 0
x2 nW Nnk
2
[4]
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
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
N
Y k U k W Nk V k
4
Z k P k W Nk Q k
2
Z k P k W Nk Q k
4
DFT FFT
x[0]
x[2]
x[4]
N/2 point
DFT
x[N-1]
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]
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
N
G[k ] G1[k] W Nk H1[ K ]
4
2
N
k 0 to ( 1)
4
Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004
BUTTERFLY STRUCTURE
FFT Implementation
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
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
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
Stage 1
W0
W0
W0
W0
FFT Implementation
Stage 2
-1
-1
-1
-1
W0
-1
W2
-1
W0
W0
-1
W1
-1
W0
-1
W2
-1
W2
-1
W3
-1
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
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
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
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
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
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
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
Stage 2: Nblocks = 1
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
Stage 2: Nblocks = 2
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
Stage 2: Nblocks = 2
Stage 3: Nblocks = 1
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
Stage 2: Nblocks = 2
Stage 3: Nblocks = 1
(3) Bflies/block:
Stage 1:
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
Stage 2: Nblocks = 2
Stage 3: Nblocks = 1
(3) Bflies/block:
Stage 1: Nbtf = 1
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
Stage 2: Nblocks = 2
Stage 3: Nblocks = 1
(3) Bflies/block:
Stage 1: Nbtf = 1
Stage 2: Nbtf = 1
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
Stage 2: Nblocks = 2
Stage 3: Nblocks = 1
(3) Bflies/block:
Stage 1: Nbtf = 1
Stage 2: Nbtf = 2
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
Stage 2: Nblocks = 2
Stage 3: Nblocks = 1
(3) Bflies/block:
Stage 1: Nbtf = 1
Stage 2: Nbtf = 2
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
Stage 2: Nblocks = 2
Stage 3: Nblocks = 1
(3) Bflies/block:
Stage 1: Nbtf = 1
Stage 2: Nbtf = 2
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
Stage 2: Nblocks = 2
Stage 3: Nblocks = 1
(3) Bflies/block:
Stage 1: Nbtf = 1
Stage 2: Nbtf = 2
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
Stage 2: Nblocks = 2
Stage 3: Nblocks = 1
(3) Bflies/block:
Stage 1: Nbtf = 1
Stage 2: Nbtf = 2
FFT Implementation
Stage 1
W0
-1
W0
-1
W0
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
FFT Implementation
Stage 1
W0
-1
W0
-1
W0
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
FFT Implementation
Stage 1
W0
-1
W0
-1
W0
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
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
Decimation-in-frequency FFT
Regroup the signal samples
butterfly operation
DFT obtained with proper order of frequency index
Decimation-in-frequency FFT
Assuming that N is a even number.
Divide the data sample into two groups
x
(
),
x
(
1
),...
x
(
N
1
)
.
2
2
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
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
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
Decimation-in-frequency FFT
x(0)
x(1)
x(2)
x(3)
x(4)
x(5)
x(6)
x(7)
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)
Decimation-in-frequency FFT
x(0)
2-point
x(1)
x(2)
x(3)
x(4)
x(5)
x(6)
x(7)
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)
Decimation-in-frequency FFT
x(0)
X(0)
x(1)
x(2)
x(3)
x(4)
x(5)
x(6)
x(7)
--
W80
W81
W82
W83
W40
W41
W20
X(4)
X(2)
X(6)
X(1)
X(3)
W40
W41
X(5)
X(7)
End