Professional Documents
Culture Documents
=
t
=
1 N
0 k
kn N / 2 j
e k X
N
1
] n [ x
| |
( )
=
1
0
/ 2
] [
N
n
kn N j
e n x k X
t
( )
2
N O
Complexity order
Lecture 19 EE-802 ADSP SEECS-NUST
From Direct Computation to FFT
Schematic Representation of DFT
( ) | |
| | ( )
( ) | |
| | ( )
1
tion Representa Alternate
synthesis
1
analysis
1
0
1
0
1
0
2
1
0
2
=
=
=
=
N
n
kn
N
N
n
kn
N
N
n
N
kn
j
N
n
N
kn
j
W k X
N
n x
W n x k X
e k X
N
n x
e n x k X
t
t
: y Periodicit 2.
: Symmetry 1.
2 /
k
N
N k
N
k
N
N k
N
W W
W W
=
=
+
+
Properties
Lecture 19 EE-802 ADSP SEECS-NUST
Radix based FFT Algorithm
Consider that we need to compute N-point DFT and N = r
v
where v is an integer and r is called the radix of the FFT algorithm
Each DFT is of size r, thus giving a regular pattern to computation of DFT
Development of radix-2 FFT algorithm is often cited as the most important
event in digital signal processing
Other FFT algorithms (radix-4, split radix, etc) also exist
Classical FFT computation algorithms
Decimation in Time (DIT) algorithm
Decimation in Frequency (DIF) algorithm
Decompose the input sequence (or DFT coefficients) into successively
smaller subsequences and compute smaller DFTs
Exploit periodicity/symmetry property of complex exponential in DFT Eq.
Lecture 19 EE-802 ADSP SEECS-NUST
Radix-2 Decimation in Time FFT
G[k] and H[k] are N/2 point
DFTs of x[2r] and x[2r +1]
Lecture 19 EE-802 ADSP SEECS-NUST
Radix-2 Decimation in Time FFT
| | ( ) ( ) ( ) ( )
/ 2 / 2
0,1, , 1
k
N
N N
X k G k W H k k N
= + =
For N/2 (8/2=4)
point DFTs
By implicit
periodicity
G[0] = G[4]
Lecture 19 EE-802 ADSP SEECS-NUST
Radix-2 Decimation in Time FFT
Repeat the process to break each
N/2 point DFT further into N/4
point DFTs
| | | |
( )
| |
( )
| |
( )
( )
/ 2 1 / 4 1 / 4 1
2 1 2
/ 2 / 2 / 2
0 0 0
2 2 1
N N N
k rk k
N N N
r
G k g r W g W g W
+
= = =
= = + +
l l
l l
l l +
| | | |
( )
| |
( ) / 4 1 / 4 1
/ 4 / 2 / 4
0 0
2 2 1
N N
k k k
N N N
G k g W W g W
= =
= + +
l
l l
l l +
Lecture 19 EE-802 ADSP SEECS-NUST
Radix-2 Decimation in Time FFT
Lecture 19 EE-802 ADSP SEECS-NUST
Radix-2 Decimation in Time FFT
2-point DFT
basic butterfly
computation
8-point DFT using DIT algorithm
Number of DFT stages
v = log
2
N as 2
v
= N
Computations per stage
N complex multiplications
N complex additions
Total computations
N.log
2
N
Lecture 19 EE-802 ADSP SEECS-NUST
Radix-2 DIT (Complexity Reduction)
2 complex multiplications
1 complex multiplication
Lecture 19 EE-802 ADSP SEECS-NUST
Radix-2 DIT (Complexity Reduction)
Total computations
N/2.log
2
N
Lecture 19 EE-802 ADSP SEECS-NUST
Radix-2 DIT Bit-reversed Input Ordering
i/p
Indx
b
2
b
1
b
0
b
2
' b
1
' b
0
'
Bit-reversed order
Input placement
x[0] 0 0 0 0 0 0 0
0
x[1] 1 0 0 1 1 0 0
4
x[2] 2 0 1 0 0 1 0
2
x[3] 3 0 1 1 1 1 0
6
x[4] 4 1 0 0 0 0 1
1
x[5] 5 1 0 1 1 0 1
5
x[6] 6 1 1 0 0 1 1
3
x[7] 7 1 1 1 1 1 1
7
x[0] goes in location 0; x[1] goes in location 4; x[6] goes in location 3,
Lecture 19 EE-802 ADSP SEECS-NUST
Radix-2 DIT In-Place Computations
A = a + W
N
r
b
B = a - W
N
r
b
Once (a,b) are used to calculate (A,B), there is no need for (a,b)
Hence (A,B) results can be saved in the same memory location as (a,b)
resulting in efficient memory utilization and the name in-place computation
2N memory registers required
Condition : inputs (sequence) /outputs (DFT coefficients) be stored in bit-
reversed order
Lecture 19 EE-802 ADSP SEECS-NUST
Direct DFT vs FFT Round-up
Understanding DSP (Lyons)
Lecture 19 EE-802 ADSP SEECS-NUST
Further Recommended Reading
Understanding DSP (Lyons)
Chapter 4 (Section 4.2: Hints on using FFTs in Practice)
*
Other FFT Algorithms
Radix-4
Split Radix FFT
Other DFT algorithms (Discussion in Next lecture)
Goertzel Algorithm (Tone-detector)
Winograd Algorithm
Chirp-z Transform Algorithm
* Highly recommended