Objectives:: Fast Fourier Transform
Objectives:: Fast Fourier Transform
EE 8443
3512 – PatternContinuous
– Signals: Recognition
and Discrete
• Objectives:
Discrete Fourier Transform
Computational Complexity
Decimation in Time
Butterfly Diagrams
Convolution Application
Waterfall Plots
Spectrograms
• Resources:
DPWE: The Fast Fourier Transform
CNX: Decimation in Time
ECE 4773: The Fast Fourier Transform
Wiki: The Cooley-Tukey FFT
URL:
The Discrete Fourier Transform
• Recall our definition for the Discrete Fourier Transform (DFT):
N 1
X k x[n]e j 2kn / N , k 0, 1, ..., N 1
n0
1 N 1
x[n] X k e j 2kn / N , n 0, 1, ..., N 1
N k 0
• The computation for Xk requires N2 complex multiplications that require four
multiplications of real numbers per complex multiplication.
• The Fast Fourier Transform (FFT) is an approach to reduce the computational
complexity that produces the same result as a DFT (same result, significantly
fewer multiplications).
• To simplify notation, define:
W N e j 2 / N W( N / 2 ) e j 2 /( N / 2) e j 4 / N
(W N ) N W NN e j 2 / N N
e j 2 1
• We can rewrite the DFT equations:
N 1
X k x[n]W Nkn , k 0, 1, ..., N 1
n0
N 1
1
x[n]
N
X
k 0
k W N kn , n 0, 1, ..., N 1
EE 3512: Lecture 18, Slide 2
Decimation in Time (Radix 2)
• Let’s explore an approach that subdivides time interval into successively
smaller intervals. Assume N, the size of the DFT, is an even integer so that
N/2 is also an integer. Define two auxiliary signals:
a[n] x[2n], n 0, 1, 2, ..., N / 2 1
b[n] x[2n 1], n 0, 1, 2, ..., N / 2 1
• Let Ak and Bk denote two (N/2)-point DFTs of a[n] and b[n]:
( N / 2 ) 1
Ak a[n]W
n 0
kn
N /2 , k 0, 1, ..., N / 2 1
( N / 2 ) 1
Bk b[n]W
k 0
kn
N /2 , k 0, 1, ..., N / 2 1
• We can show that these are related to the DFT by the following equations:
X k Ak W Nk Bk , k 0, 1, ..., N / 2 1
X ( N / 2) k Ak W Nk Bk , k 0, 1, ..., N / 2 1
• The computation
k
of Ak and Bk each requires (N/2)2 = N2/4 multiplications. The
scaling by W N requires N/2 additional multiplications. The total computation
is N2/2+N/2 multiplications, which represents N2/2-N/2 fewer multiplications
than the N2 multiplications required by the DFT.
• For N = 128, this is a savings of 8,128 multiplications (16,384 vs. 8,256).
EE 3512: Lecture 18, Slide 3
Block Diagram of an FFT Algorithm
• If N is a power of 2 (e.g., N = 2q), we can repeat this process to further reduce
the computations. The overall complexity reduces from N2 to (Nlog2N)/2.