The FFT, an efficient way to compute the DFT, is introduced and derived throughout this module.
FFT
(Fast Fourier Transform) An efficient
computational
algorithm for computing the
DFT .
The fast fourier transform fft
DFT can be
expensive to compute
directly
For each
, we must execute:
complex multiplies
complex adds
The total cost of direct computation
of an
-point DFT is
complex multiplies
complex adds
How many adds and mults of
real numbers
are required?
This "
" computation rapidly gets out of hand, as
gets large:
1
10
100
1000
1
100
10,000
The FFT provides us with a much more
efficient way of computing the DFT. The
FFT requires only "
" computations to compute the
-point DFT.
10
100
1000
100
10,000
10
200
3000
How long is
? More than 10 days! How long is
?
The FFT and digital computers revolutionized DSP (1960 -
1980).
How does the fft work?
The FFT exploits the
symmetries of the
complex exponentials
are called "
twiddle factors "
Complex conjugate symmetry
Periodicity in n and k
Decimation in time fft
Just one of
many different FFT
algorithms
The
idea is to build a DFT out of
smaller and smaller DFTs by decomposing
into smaller and smaller subsequences.
Assume
(a power of 2)
Derivation
is
even , so we can complete
by separating
into
two subsequences each
of length
.
where
. So
where
. So
where
is
-point DFT of even samples (
) and
is
-point DFT of odd samples (
).
Decomposition of an
-point
DFT as a sum of 2
-point DFTs.
Why would we want to do this?
Because it is more
efficient!
Cost to compute an
-point DFT is approximately
complex mults and adds.
But decomposition into 2
-point DFTs + combination requires only
where the first part is the number of complex mults and adds for
-point DFT,
. The second part is the number of complex mults
and adds for
-point DFT,
. The third part is the number of complex mults and
adds for combination. And the total is
complex mults and adds.
So why stop here?! Keep decomposing. Break each of the
-point DFTs into two
-point DFTs,
etc. , ....
We can keep decomposing:
where
Computational cost:
-pt DFTtwo
-pt DFTs. The cost is
. So replacing each
-pt DFT with two
-pt DFTs will reduce cost to
As we keep going
, where
. We get the cost
is the total number of complex adds and mults.