You are on page 1of 12

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 2nk / 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 / 21  N / 2 1
X[k]   x[2r]WN 2rk   x[2r 1]WN 2r1k
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
n0 n0

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
n0 n0

 Have we gained anything? Consider the nominal number of


multiplications for
N8
– 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 2nk / 2
n0 n0
 Evaluating for k  0,1 we obtain
X[0]  x[0]  x[1]
X[1]  x[0]  e  j 21 / 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 ECE1
Department

You might also like