V. R. Gupta
Department of Electronics and Telecommunication, YCCE, Nagpur
k 0,1..., N 1
kn N
1 x[n] N
X [k ]W
k 0
N 1
n 0,1..., N 1
WN = ej2/N is Twiddle factor or Nth root of Unity. It requires N2 complex multiplications and (N1)N complex additions for computation. Each complex multiplication needs four real multiplications and two real
W
Periodicity property:
kN 2 N
kN N
W
W
k N
k N
N r1 x r2 x r3
If
x ..............x v
r (a)
r1 = r2 = r3
= ..............= v
r (b)
Then
N = r v (c )
v indicates the no. of stages in the FFT
algorithm
N 2v
If you want to compute 8-point DFT then
8 2 v3
algorithm.
Since N is an even integer, we can consider computing X[k] by separating x[n] into two (N/2)-point sequence consisting of the even numbered point in x[n] and the odd-numbered points in x[n].
X [k ]
nk x [ n ] W N n even
nk x [ n ] W N n odd
or, with the substitution of variable n=2r for n even and n=2r+1 for n odd ( N / 2 ) 1 ( N / 2 ) 1
X [k ]
r 0 ( N / 2 ) 1 r 0
2 rk x [ 2 r ] W N
( 2 r 1) k x [ 2 r 1 ] W N r 0 ( N / 2 ) 1 r 0
2 rk k x [ 2 r ]( W ) W N N
2 rk x [ 2 r 1 ]( W N)
Since
2 WN e 2 j ( 2 / N ) e j 2 /( N / 2 ) WN / 2
X [k ]
k G[k ] WN H [k ], k 0,1,..., N 1
Both G[k] and H[k] can be computed by (N/2)-point DFT, where G[k] is the (N/2)-point DFT of the even numbered points of the original sequence and the second being the (N/2)-point DFT of the odd-numbered point of the original sequence. Although the index ranges over N values, k = 0, 1, , N-1, each of the sums must be computed only for k between 0 and (N/2)-1, since G[k] and H[k] are each periodic in k with period N/2.
Decomposing N-point DFT into two (N/2)-point DFT for the case of N=8
We can further decompose the (N/2)-point DFT into two (N/4)-point DFTs. For example, the upper half of the previous diagram can be decomposed as
Hence, the 8-point DFT can be obtained by the following diagram with four 2-point DFTs.
Finally, each 2-point DFT can be implemented by the following signal-flow graph, where no multiplications are needed.
In each stage of the decimation-in-time FFT algorithm, there are a basic structure called the butterfly computation:
r X m [ p] X m1[ p] WN X m1[q] r X m [q] X m1[ p] WN X m1[q]
1
1
A
1
1 1
A
1
1 1
1 1
X(0) X(1)
W8 1
B
-1
1 1 1
B C
1
C D
1 W80
-1
X(2)
W8 1
W8 2
1
-1
D E
1 W80
-1
X(3) X(4)
x(1)
x(5)
1
1 1 -1
0
E F G
1
-1
1
W8
1
0
F
1
-1 -1 -1
X(5)
x(3)
x(7)
1 W8
0
1 1 -1
W8 W8
G H
X(6) X(7)
1
2
-1
In the above, we have introduced the decimation-in-time algorithm of FFT. Here, we assume that N is the power of 2. For N=2v, it requires v=log2N stages of computation. The number of complex multiplications and additions required was N+N+N = Nv = N log2N. When N is not the power of 2, we can apply the same principle that were applied in the power-of-2 case when N is a composite integer. For example, if N=RQ, it is possible to express an Npoint DFT as either the sum of R Q-point DFTs or as the sum of Q R-point DFTs. In practice, by zero-padding a sequence into an N-point sequence with N=2v, we can choose the nearest power-of-two FFT algorithm for implementing a DFT. The FFT algorithm of power-of-two is also called the CooleyTukey algorithm since it was first proposed by them.