Decimation-in-time algorithm

The Cooley-Tukey decimation-in-time
algorithm
 Consider the DFT algorithm for an integer power of 2, N  2
X[k] 
N1

k 0
x[n]WN nk 
N1

k 0
x[n]e  j 2nk / N ; WN  e  j2 / N
 Create separate sums for even and odd values of n:
X [k ] 
 x[n]WN   x[n]WN
nk
n even
nk
n odd
 Letting n  2r for n even and n  2r 1 for n odd, we obtain
X[k] 
 N / 21

r 0
Carnegie
Mellon
 N / 2 1
x[2r]WN 2rk 
Slide 1

r 0
x[2r 1]WN  2r1 k
ECE Department
The Cooley-Tukey decimation in time algorithm
 Splitting indices in time, we have obtained
X [k ] 
 N / 2 1

r 0
x[2r ](WN ) WN
2 rk
k
 N / 2 1

r 0
x[2r  1](WN ) rk
2
 But WN2  e  j 2 2 / N  e  j2 /( N / 2)  WN / 2 and WN2rk WNk  WNk WNrk/ 2
So …
X[k] 
(N/ 2)1
( N/ 2)1
n0
n0

x[2r]WNrk/ 2  WNk
N/2-point DFT of x[2r]
Carnegie
Mellon
Slide 2

x[2r 1]WNrk/ 2
N/2-point DFT of x[2r+1]
ECE Department
Savings so far …
 We have split the DFT computation into two halves:
X[k] 

N 1

x[n]WN nk
k 0
( N/ 2)1
( N/ 2)1
n0
n0

x[2r]WNrk/ 2  WNk

x[2r  1]WNrk/ 2
 Have we gained anything? Consider the nominal number of
multiplications for N  8
2
– Original form produces 8  64 multiplications
2
– New form produces 2(4 )  8  40 multiplications
– 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]
– Multiplication by a constant
x[n]
– Delay
Carnegie
Mellon
x[n]
Slide 4
a
z-1
ax[n]
x[n-1]
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:
X[k] 
1

n0
x[n]W2nk 
1

x[n]e  j 2nk / 2
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 ~ N log2 (N) multiplys
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
 Let a1  N log2 (N) / N 2 ; a 2  [3(N log2 (N))  N] / N 2
N
a2
a1
16
.8124
.25
32
.50
.156
64
.297
.0935
128
.171
.055
256
.097
.031
1024
.0302
.0097
Carnegie
Mellon
Slide 11
Note: 1024-point FFT
Accomplishes a speedup of ~100
for filtering~ 30
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 WNN / 2  1 we can reducing computation by 2 by
premultiplying by WNr
1
Carnegie
Mellon
WNr
Slide 12
1
ECE Department