You are on page 1of 18

# Fast Fourier Transform

V. R. Gupta
Department of Electronics and Telecommunication, YCCE, Nagpur

## Direct Computation of DFT

DFT pairs:
kn X [k ] x[n]WN , n 0 N 1

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

requires 4N2 real multiplications and N(4N2) real additions.

## Fast Fourier Transform

In 1965, Cooley and Tukey developed very efficient algorithm to implement the DFT. This algorithm is called as Fast Fourier Transform i.e. FFT.

computations.

## By using these algorithms numbers of arithmetic

operations involved in the computations of DFT are greatly reduced

## Fast Fourier Transform

The direct computations of DFT is primarily inefficient as it does not exploit the Symmetry and Periodicity properties of the twiddle factor WN . Symmetry property:

W
Periodicity property:

kN 2 N
kN N

W
W
k N

k N

We always compute N- point DFT. The number N can be factored as

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

## Where, r is radix (base) of the FFT algorithm

algorithm

If , r =2 then it is called as radix-2 FFT algorithm. Thus when r=2 equation (c) becomes

N 2v
If you want to compute 8-point DFT then

8 2 v3
algorithm.

## Decimation-in-time FFT algorithm

Let x(n) represents a N-point sequence; where, N is an integer power of 2 . i.e. N = 2v

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

## That is, WN2 is the root of the equation WN/2=1 Consequently,

( N / 2 ) 1 r 0 2 rk k x [ 2 r ]( W ) W N N ( N / 2 ) 1 r 0 2 rk x [ 2 r 1 ]( W N)

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.

## Flow graph of complete decimation-in-time decomposition of an 8-point DFT.

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

## W81 W83 W84

-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.