The Cooley-Tukey decimation-in-time algorithm
Consider the DFT algorithm for an integer power of 2, N 2
N 1 N 1
X[k] x[n]WN nk x[n]e j 2nk / N ; WN e j2 / N
k 0 k 0
Create separate sums for even and odd values of n:
x[n]WN x[n]WN
nk nk
X [k ]
n even n odd
Letting n 2r for n even and n 2r 1 for n odd, we obtain
N / 21 N / 2 1
X[k] x[2r]WN 2rk x[2r 1]WN 2r1k
r 0 r 0
Carnegie
Mellon Slide 1 ECE Department
The Cooley-Tukey decimation in time algorithm
Splitting indices in time, we have obtained
N / 2 1 N / 2 1
2 rk k 2
X [k ] x[2r ](WN ) WN x[2r 1](WN ) rk
r 0 r 0
But W 2 e j 2 2 / N e j2 /(N / 2) W and W 2rkW k W k W rk
N N/2 N N N N/2
So …
(N/ 2)1 ( N/ 2)1
X[k] x[2r]WNrk/ 2 WNk x[2r 1]WNrk/ 2
n0 n0
N/2-point DFT of x[2r] N/2-point DFT of x[2r+1]
Carnegie
Mellon Slide 2 ECE Department
Savings so far …
We have split the DFT computation into two halves:
N 1
X[k] x[n]WN nk
k 0
( N/ 2)1 ( N/ 2)1
x[2r]WNrk/ 2 WNk x[2r 1]WNrk/ 2
n0 n0
Have we gained anything? Consider the nominal number of
multiplications for
N8
– Original form produces multiplications
8 2 64
– New form produces multiplications
2(4 2 ) 8 40
– So we’re already ahead ….. Let’s keep going!!
Carnegie
Mellon Slide 3 ECE Department
Signal flowgraph notation
In generalizing this formulation, it is most convenient to adopt
a graphic approach …
Signal flowgraph notation describes the three basic DSP
operations:
– Addition x[n]
x[n]+y[n]
y[n]
a
– Multiplication by a constant x[n] ax[n]
z-1
– Delay x[n] x[n-1]
Carnegie
Mellon Slide 4 ECE Department
Signal flowgraph representation of 8-point DFT
Recall that the DFT is now of the form X[k] G[k] WNk H[k]
The DFT in (partial) flowgraph notation:
Carnegie
Mellon Slide 5 ECE Department
Continuing with the decomposition …
So why not break up into additional DFTs? Let’s take the
upper 4-point DFT and break it up into two 2-point DFTs:
Carnegie
Mellon Slide 6 ECE Department
The complete decomposition into 2-point DFTs
Carnegie
Mellon Slide 7 ECE Department
Now let’s take a closer look at the 2-point DFT
The expression for the 2-point DFT is:
1 1
X[k] x[n]W2nk x[n]e j 2nk / 2
n0 n0
Evaluating for k 0,1 we obtain
X[0] x[0] x[1]
X[1] x[0] e j 21 / 2 x[1] x[0] x[1]
which in signal flowgraph notation looks like ...
This topology is referred to as the
basic butterfly
Carnegie
Mellon Slide 8 ECE Department
The complete 8-point decimation-in-time FFT
Carnegie
Mellon Slide 9 ECE Department
Number of multiplys for N-point FFTs
Let
N 2 where log2 (N)
(log2(N) columns)(N/2 butterflys/column)(2 mults/butterfly)
or ~ multiplys
N log2 (N)
Carnegie
Mellon Slide 10 ECE Department
Comparing processing with and without FFTs
“Slow” DFT requires N mults; FFT requires N log2(N) mults
Filtering using FFTs requires 3(N log2(N))+2N mults
2 2
Let 1 N log2 (N) / N ; 2 [3(N log2 (N)) N] / N
N a2 a1
16 .8124 .25 Note: 1024-point FFT
Accomplishes a speedup of ~100
32 .50 .156
64 .297 .0935 for filtering~ 30
128 .171 .055
256 .097 .031
1024 .0302 .0097
Carnegie
Mellon Slide 11 ECE Department
Additional timesavers: reducing multiplications
in the basic butterfly
As we derived it, the basic butterfly is of the form
WNr
WNr N / 2
Since W N / 2 1 we can reducing computation by 2 by
N
premultiplying by W r
N
Carnegie
Mellon WNr Slide 12 ECE1
Department