Fast Fourier Transform: Content
Fast Fourier Transform: Content
Content
Introduction
Radix-2 DIT- FFT Algorithm
.K
.B
hu
ya
Introduction
Problems
.K
.B
hu
ya
N 1
ya
kn
N
120
Number of Additions
120
100
80
60
40
20
100
80
60
40
20
0
0
0
10
Number of Samples
Number of Samples
.K
.B
hu
ya
Number of Multiplications
10
Introduction
How to reduce the computational complexity
In 1965, Cooley and Tukey showed a procedure to
substantially reduce the amount of computations involved
in the DFT. This led to the explosion of applications of the
DFT.
.K
.B
hu
ya
W exp( j 2k / N )
k
N
( k N/ 2 )
N
(k N )
N
W WN / 2
ya
.B
hu
.K
1
M
N/ 2
N
2
N
k
N
k
N
Introduction
FFT algorithm classification
DIT - FFT: Decimation-in-time FFT algorithm
.K
.B
hu
ya
N 2
.K
.B
hu
ya
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
2 signals of 8
points
2 4 6 8 10 12 14
3 5 7 9 11 13 15
4 signals of 4
points
4 8 12
2 6 10 14
5 9 13
8 signals of 2
points
0 8
4 12 2 10 6 14
16 signals of 1
point
4 12
1 9
3 7 11 15
5 13 3 11 7 15
.K
.B
hu
ya
1 signal of 16
points
2 10 6 14
9 5 13
3 11 7 15
N
x 1 ( r ) x ( 2 r ); x 2 ( r ) x ( 2 r 1 ) , r 0 ,1 , 2 ,
1
2
To compute the DFT of x1(r) and x2(r)
x ( 2r )W
n
r 0
ya
r 0
hu
x ( r )W
rk
N
2
N
1
2
N
(k 0 ~
1)
2
rk
N
2
X 2 (k )
.K
X 1 (k )
N
1
2
.B
N
1
2
x ( r )W
r 0
rk
N
2
N
1
2
x ( 2r 1)W
r 0
rk
N
2
N
(k 0 ~
1)
2
X ( k ) x ( n )W
n0
n 0 ( even )
N
1
2
N
1
2
r 0
r 0
nk
N
N 1
x( n)W
n 0 ( odd )
2 rk
( 2 r 1 ) k
x
(
2
r
)
W
x
(
2
r
1
)
W
N
N
N
1
2
N
1
2
rk
k
rk
x
(
r
)
W
W
x
(
r
)
W
1 N N 2 N
X 1 ( k ) W Nk X 2 ( k )
r 0
ya
r 0
.B
hu
x( n)W
( k 0,1,2, N 1)
.K
nk
N
N 1
nk
N
N
1)
X ( k ) X 1 ( k ) W X 2 ( k ) ( k 0,1,
2
N
(
)
k
N
N
N
2
X (k ) X 1 (k ) W N
X 2 (k )
2
2
2
N
k
X 1 (k ) W N X 2 (k )
1)
( k 0,1,
2
k
N
x1 ( r )
X 1 (k )
X (k )
x2 ( r )
.K
.B
hu
ya
x(n)
X 2 (k )
X (k ) X 1 (k ) W X 2 (k )
k
N
N
X ( k ) X 1 ( k ) W Nk X 2 ( k )
2
X 1 ( k ) W Nk X 2 ( k )
X 1(k )
.B
hu
ya
W Nk
X 1 ( k ) W Nk X 2 ( k )
.K
X 2 (k )
N
( k 0 ,1,
1)
2
N
( k 0 ,1,
1)
2
X 1 (0)
x1(0 ) x (0 )
X (1 )
X 1(2)
X (2)
DFT
x1(3 ) x (6 )
X 1(3)
x 2 ( 0 ) x (1 )
X 2 (0)
W N0
x 2 (1 ) x ( 3 )
X 2 (1 )
W N1
X 2 (2)
W N2
X 2 (3)
W N3
x 2 (2 ) x (5 )
N/2point
DFT
.B
hu
ya
x 2 (3 ) x (7 )
X (3)
.K
x2 (r )
x1(2 ) x (4 )
X 1 (1 )
x1 (r )
x 1 (1 ) x ( 2 )
N/2point
X (0 )
N-point DFT
X (4 )
X (5 )
X (6 )
X (7 )
x (0)
x (4)
X (0 )
W N0
x(2)
x (6)
W N0
X (1 )
W N0
W N2
x (1 )
0
N
x(3)
1
ya
W N2
1
0
N
1
N
2
N
3
N
X (3)
1
X (4 )
X (5 )
X (6 )
X (7 )
.K
x (7 )
0
N
W N0
.B
hu
x (5)
X (2)
In radix-2 FFT , the N point sequence is decimated into 2-point sequences, and 2 point DFT for
each decimated sequence is computed. From the result of 2 point DFTs, the 4 point DFTs can
be computed. From the result of 4 point DFT, the 8 point DFT can be computed and so on, until
we get N point DFT.
for N 2 3
X (k )
x(n )
2-point
DFT
2-point
DFT
Synthesize
the 2-point
DFTs into a
4-point DFT
Synthesize
the 4-point
DFTs into a
8-point DFT
.B
hu
.K
2-point
DFT
ya
2-point
DFT
Synthesize
the 2-point
DFTs into a
4-point DFT
N 2L
N
N
mF
L log 2 N
2
2
.B
hu
ya
a F N L N lo g 2 N
M
In-place computation
X m 1 ( k )
.K
n
ya
.B
hu
1
M
X m 1 ( j )
WNr
X m (k ) X
r
(
k
)
W
m 1
N X
m 1
( j)
X m ( j) X
r
(
k
)
W
m 1
N X
m 1
( j)
.K
.B
hu
ya
Bit-reversed order
010
n:
100
010
000
.K
001
011
100
101
110
111
110
001
101
011
111
m: 000
.B
hu
ya
n0
n1
n2
0
x (n 2n1n0 )
0
.B
hu
ya
1
.K
x (000)
x (0)
x (1 0 0 )
x(4)
x (010)
x(2)
x (1 1 0 )
x (6)
x (001)
x (1 )
x (1 0 1 )
x (011)
x (5 )
x (1 1 1 )
x (7 )
x (3 )
A ( 0 ) A (1 ) A ( 2 ) A ( 3 )
x (5)
x (6)
x (7 )
x (1 )
x (5)
x(3)
x (7 )
ya
n x ( 0 ) x (1 ) x ( 2 ) x ( 3 )
represent the
n
.K
.B
hu
.K
.B
hu
ya
x(n )
butterfly computation
0
2
2
butterfly computation
butterfly computation
1
0
n
ya
X (k )
.K
.B
hu
butterfly
butterfly
butterfly
butterfly
N
x ( n ),
0n
1
2
N
N
x ( n ), 0 n
1
2
2
.K
.B
hu
ya
X ( k ) x ( n )W
n0
N
1
2
x( n)W
n0
N
1
2
nk
N
nk
N
N
1
2
x( n)W
n0
nk
N
N 1
x( n)W
N
1
2
( n
N
x ( n )W N
2
n0
nk
N
N
2
N
)k
2
ya
.B
hu
N
1
2
N
k
N nk
2
x ( n ) W N x ( n )W N
2
n0
M
.K
N nk
k
x ( n ) ( 1) x ( n )W N
2
n0
( k 0,1, N 1)
N
le t k 2 r , k 2 r 1 , ( r 0 ,1 , , 1 )
2
N
1
2
N nr
N
X ( 2 r ) x ( n ) x ( n ) W N ( r 0 ,1 ,
1)
2 2
2
n0
ya
N
1
2
.K
.B
hu
N n nr
N
X ( 2 r 1 ) x ( n ) x ( n ) W N W N ( r 0 ,1 ,
1)
2
2
n0
2
X ( 2 r 1)
x ( n )W
n0
nr
N
2
N
( r 0,1,
1)
2
.B
hu
N
1
2
.K
n0
N
( r 0,1,
1)
2
x ( n )W
nr
N
2
M
X ( 2r )
N
1
2
N
n 0 ,1,
1
2
ya
x 1 ( n ) x ( n ) x ( n 2 )
let
N n
x 2 ( n ) x ( n ) x ( n ) W N
N
x1 (n ) x (n ) x (n )
2
x(n )
N n
x 2 ( n ) x ( n ) x ( n ) W N
2
ya
N
x(n )
2
W Nn
.K
.B
hu
for N 2 3
x1 (0)
x (0)
x 1 (1 )
x (1 )
x1 (2)
x(2)
x (7 )
W N2
x2 (2)
W N3
x 2 (1 )
ya
W N1
.B
hu
x 2 (0)
.K
x (6)
W N0
x (5)
N/2point
X (2)
DFT
X (4 )
x1 (3)
x(3)
x (4)
X (0 )
x2 (3)
X (6 )
X (1 )
N/2point
X (3)
DFT
X (5 )
X (7 )
for N 2 3
x (0)
X (0 )
x (1 )
x(2)
x(3)
W N0
W N2
1
W N0
W N2
W N3
X (2)
W N1
ya
x (7 )
X (4 )
X (6 )
X (1 )
.B
hu
x (6)
.K
x (5)
0
N
x (4)
W N0
W N0
W N0
X (5 )
X (3)
W N0
W N2
1
X (7 )
.K
.B
hu
ya
A DIT-FFT flow graph can be transposed to a DIFFFT flow graph and vice versa.
M
.K
.B
hu
ya
return
X (k ) x(n)WNnk
n 0
N 1
1
x(n) X (k )WN nk
N k 0
N 2
.K
.B
hu
ya
x ( n ) X ( k ); X ( k ) x ( n )
M
1
x(n)
N
N 1
X ( k )W
k 0
nk
N
1
nk
X ( k )W N
N k 0
DFT[ X ( k )]
N
ya
.B
hu
.K
N 1
(k 0 ,1 , N-1 )