Professional Documents
Culture Documents
13 FFT
13 FFT
X[k] = x[n]WNkn
n =0
x[n] =
1 N 1
X[k]WN kn
N k =0
WNkn
The FFT
!Algorithms for computing the DFT which
are more computationally efficient than the
direct method (better than proportional to
N2) are called Fast Fourier Transforms.
!Generally, we use FFT to refer to
algorithms which work by breaking the
DFT of a long sequence into smaller and
smaller chunks.
X[k] = x[n]WNkn
n =0
N 1
= x[n]WN k( N n ) =
n =0
x[n]W
k (N n )
N
x[n]W
k (N n)
N
n =
u[N n]
n =
1
1 WN k z 1
1
(1 WNk z 1 )
=
1 WN k z 1 1 WN k z 1 (1 WNk z 1 )
(1 WNk z 1 )
1 2 cos(2 k / n)z 1 + z 2
=X[k]
Decimation in time
!Start with decimation by 2 (Fig. 9.3)
N 1
n =0
x[n]W +
n even
kn
N
( N / 2) 1
x[n]W
kn
N
n odd
x[2n]WNk(2n ) +
n =0
( N / 2) 1
n =0
(N / 2) 1
n =0
x[2n]WNkn/ 2 +
( N / 2) 1
n =0
Resulting Improvement
!Original direct DFT:
2N2 steps (N2 multiplications, N2 additions)
!New way:
N/2 DFT + N/2 DFT + N mult + N add.
= 2(N/2)2 + 2(N/2)2 + N + N
= N2 + 2N steps
(N2/2 + N multiplications, additions)
A 2-pt DFT:
x[0]
X[0]
n =0
x[0] + x[1] k = 0
=
x[0] x[1] k = 1
x[1]
X[1]
Resulting
8-pt FFT:
Significance
!Change from N2 to Nlog2N is big:
"N=64:
"N=256:
"N=1024:
"N=4096:
"N=16384:
4,096 reduces to
65,536
1,048,576
16,777,216
268,435,456
384
2,048
10,240
49,152
229,376
The Butterfly
!If we use N=2x, then all the FFT operations are
2-input 2-output blocks, similar to 2-point DFTs.
This building block is called a butterfly.
r+N / 2
In-place computation
!Each stage of the FFT process has N inputs and N
outputs, so we need exactly N storage locations at
any one point in the calculations.
!It is possible to re-use the same storage locations at
each stage to reduce memory overhead.
" Any algorithm which uses the same memory to store
Decimation in Frequency
!Instead of separating odd and even x[n], we
separate odd and even X[k]. For k even:
N 1
X[2r] = x[n]WN(2r)n
n =0
=
=
( N / 2) 1
N 1
n =0
n = ( N / 2)
( N / 2) 1
( N / 2) 1
n =0
x[n]WN(2r )n +
( N / 2) 1
x[n]WN(2r )n +
x[n]WN(2r)n
x[n + N / 2]WN(2r )(n + N / 2)
n =0
n =0
10
11
Butterfly element:
Resulting
8-pt FFT
12