FFT: An Efficient Computation of DFT: Rakesh Sharma
FFT: An Efficient Computation of DFT: Rakesh Sharma
FFT: An Efficient Computation of DFT: Rakesh Sharma
Efficient
Computation
of DFT
Rakesh
Sharma
Outline
FFT : An Efficient Computation of DFT
Introduction
Why FFT ?
Computational
complexity
Rakesh
Sharma
1 Introduction
Why FFT ?
Outline
Computational complexity
Introduction
Why FFT ?
Computational
complexity
2 Radix-2 FFT Algorithm
Radix-2 FFT
Algorithm DIT Radix-2 FFT algorithm
DIT Radix-2
FFT algorithm
DIF Radix-2
DIF Radix-2 FFT algorithm
FFT algorithm
About
3 About
Why FFT?
FFT : An
Efficient
Computation
of DFT The direct computation of the DFT is basically inefficient
Rakesh because it does not exploit the symmetry and periodicity
Sharma
properties of the phase factor WN . These two properties are :
k+N/2
Outline Symmetry property : WN = −WNk
Introduction
Why FFT ?
Periodicity Property : WNk+N = WNk
Computational
complexity Direct Computation of the DFT :
Radix-2 FFT
Algorithm X
N−1 kn
DIT Radix-2
FFT algorithm
X (k) = n=0 x(n)WN 0≤k ≤N −1
DIF Radix-2
FFT algorithm
where
About
WN = e −j2π/N
The DFT requires N 2 complex multiplications and N(N − 1)
complex additions.
Computation complexity
FFT : An
Efficient
Computation
of DFT Let x(n) a complex valued sequence of N points, DFT can
Rakesh
Sharma expressed as
Outline X
N−1 2πkn 2πkn
Introduction
XR (k) = n=0 [xR (n)cos + xI (n)sin ]
Why FFT ?
N N
Computational
complexity X
N−1 2πkn 2πkn
Radix-2 FFT XI (k) = − n=0 [xR (n)sin − xI (n)cos
]
Algorithm N N
DIT Radix-2
FFT algorithm
DIF Radix-2
The Direct computation of the above equations require :
FFT algorithm
About
1 2N 2 trigonometric functions evaluations.
2 4N 2 real multiplications.
3 A number of indexing and addressing operations.
Radix-2 FFT Algorithm
FFT : An
Efficient
Computation
of DFT
Rakesh
It is basically a Divide and Conquer approach with a special
Sharma
case that N can be represented as N = 2v . That is why it is
Outline called as radix 2.
Introduction The approach is based on the decomposition of an N-point
Why FFT ?
Computational DFT into successively smaller DFTs. This approach leads to a
complexity
Radix-2 FFT
family of computationally efficient algorithms known as FFT
Algorithm
DIT Radix-2
algorithms.We have two different Radix-2 FFT algorithms
FFT algorithm
DIF Radix-2
namely :
FFT algorithm
FFT : An
Efficient Let us consider x(n) a N point time domain sequence. The
Computation
of DFT first step of the approach is to split x(n) into two N/2 point
Rakesh data sequences f1 (n) and f2 (n). f1 (n) and f2 (n) can be
Sharma
obtained by decimating x(n) by a factor of 2, hence is called as
Outline Decimation in Time FFT algorithm.
Introduction
Why FFT ?
Computational
complexity
f1 (n) = x(2n)
Radix-2 FFT
Algorithm f2 (n) = x(2n + 1)
DIT Radix-2
FFT algorithm
DIF Radix-2 where n = 0, 1, ...., N/2 − 1
FFT algorithm
About
Then X (k) can be given as
F1 (k) and F2 (k) are N/2 point DFT’s of the sequence f1 (n)
and f2 (n) respectively.
DIT Radix-2 FFT algorithm contd..
FFT : An
Efficient
Computation Using the periodicity property
of DFT
Rakesh
Sharma
F1 (k + N/2) = F1 (k)& F2 (k + N/2) = F2 (k)
Outline and
k+N/2
Introduction
Why FFT ?
WN = −WNk
Computational
complexity
Hence, DFT can be expressed as
Radix-2 FFT
Algorithm
DIT Radix-2 N
FFT algorithm X (K ) = F1 (k) + WNk F2 (k) k = 0, 1, ....., −1
DIF Radix-2
FFT algorithm 2
About
N N
X (K + ) = F1 (k) − WNk F2 (k) k = 0, 1, ....., − 1
2 2
We can see here N point DFT is decomposed into two N/2
point DFT’s.
DIT Radix-2 FFT algorithm contd..
FFT : An
Efficient
Computation
of DFT
Rakesh
Sharma
Introduction
F2 (k) requires (N/2)2 complex multiplications each. Additional
Why FFT ? N/2 complex multiplications are required to compute
Computational
complexity
WNk F2 (k). Hence total complex multiplications required are
Radix-2 FFT
Algorithm 2(N/2)2 + N/2. So this first step results in reduction of the
DIT Radix-2
FFT algorithm number of multiplications from N 2 to N 2 /2 + N/2, which is
DIF Radix-2
FFT algorithm about a factor of 2 for large N.
About
DIT Radix-2 FFT algorithm contd..
FFT : An
Efficient
Let us repeat the same decimation process for each of the
Computation
of DFT
sequences f1 (n) andf2 (n). Thus the f1 (n) sequence will result
Rakesh
in two N/4 point sequences.
Sharma
N
Outline v11 (n) = f1 (2n), n = 0, 1, ......, −1
4
Introduction
Why FFT ? N
Computational v12 (n) = f1 (2n + 1), n = 0, 1, ......, − 1
complexity 4
Radix-2 FFT
Algorithm and f2 (n) would yield
DIT Radix-2
FFT algorithm N
DIF Radix-2
FFT algorithm
v21 (n) = f2 (2n), n = 0, 1, ......, −1
4
About
N
v22 (n) = f2 (2n + 1), n = 0, 1, ......, − 1
4
By computing N/4 point DFTs, we can obtain N/2 point
DFT’s F1 (k) and F2 (k) from the above relations we get the
following equations :
DIT Radix-2 FFT algorithm contd..
FFT : An
Efficient
Computation k
of DFT
F1 (k) = V11 (k) + WN/2 V12 (k)
Rakesh
Sharma N k
F1 (k + ) = V11 (k) − WN/2 V12 (k)
Outline
4
k
Introduction F2 (k) = V21 (k) + WN/2 V22 (k)
Why FFT ?
Computational
complexity N k
Radix-2 FFT F1 (k + ) = V21 (k) − WN/2 V22 (k)
Algorithm 4
DIT Radix-2
FFT algorithm
DIF Radix-2
where k = 0, 1, ......, N4 − 1 and {Vij } are the N/4 point
FFT algorithm
sequences. {Vij } requires 4(N/4)2 multiplications and hence
About
the computation of F1 (k) and F2 (k) can be accomplished with
N 2 /4 + N/2. An additional N/2 complex multiplications are
required to compute X (k) from F1 (k) and F2 (k). The total
number of multiplications is reduced approximately by a factor
of 4, i.e. N 2 /4 + N for large N.
DIT Radix-2 FFT algorithm contd..
FFT : An
Efficient
The decimation of the data sequence can be repeated again
Computation
of DFT
and again until the resulting sequences reduced to one point
Rakesh sequences. For N = 2v , this decimation can be performed
Sharma
v = log2 N times. Thus the total number of complex
Outline multiplications is reduced to (N/2)log2 N. The total number of
Introduction complex additions is Nlog2 N
Why FFT ?
Computational
complexity
FFT : An
Efficient
Computation
of DFT
Rakesh
Sharma
Outline
Introduction
Why FFT ?
Computational
complexity
Radix-2 FFT
Algorithm
DIT Radix-2
FFT algorithm
DIF Radix-2
FFT algorithm
About
FFT : An
Efficient
Computation
of DFT
Rakesh
Sharma
Outline
Introduction
Why FFT ?
Computational
complexity
Radix-2 FFT
Algorithm
DIT Radix-2
FFT algorithm
DIF Radix-2
FFT algorithm
About
FFT : An
Efficient
Computation
of DFT
1 Once the butterfly operation is performed on a pair of
Rakesh
Sharma complex numbers (a, b) to produce (A, B), there is no
need to save input pair (a, b). Hence we can store the
Outline
Introduction
result (A, B) in the same location as (a, b). So namely 2N
Why FFT ? registers are used in each stage and same number of
Computational
complexity
location registers are used throughout the computation of
Radix-2 FFT
Algorithm N point DFT.
DIT Radix-2
FFT algorithm
DIF Radix-2
2 Second observation is the order of the input data after
FFT algorithm
decimation at the input level. The decimated data has a
About
well defined order and can be formed by bit reversal.
Example x(3) i.e. x(011) should be placed x(110) i.e. 6th
position in the decimated array.
Decimation in frequency Radix-2 FFT algorithm
FFT : An
Efficient To derive the algorithm, we begin by splitting the DFT formula
Computation
of DFT into two summations. Thus we obtain
Rakesh X (N/2)−1 X
N−1
Sharma
X (k) = n=0 x(n)WNkn + n=N/2 x(n)WN
kn
Outline
Introduction
X (N/2)−1 N
Why FFT ? X (k) = n=0 )]WNkn
[x(n) + (−1)k x(n +
Computational
complexity
2
Radix-2 FFT Decimate X (k) into even and odd numbered samples, we
Algorithm
DIT Radix-2 obtain
FFT algorithm
DIF Radix-2
FFT algorithm X (N/2)−1 N kn
About X (2k) = n=0 [x(n) + x(n + )]WN/2
2
X (N/2)−1 N
X (2k + 1) = n=0 [[x(n) − x(n + )]WNn ]WN/2
kn
2
where k = 0, 1, ......, N2 − 1
Decimation in frequency Radix-2 FFT algorithm
contd...
FFT : An
Efficient
If we define the N/2 point sequences g1 (n) and g2 (n) as
Computation
of DFT
N
Rakesh g1 (n) = x(n) + x(n + )
Sharma 2
Outline N
Introduction g2 (n) = [x(n) − x(n + )]WNn
Why FFT ?
2
Computational
complexity where n = 0, 1, ......, N2 − 1
Radix-2 FFT
Algorithm then X (N/2)−1
kn
DIT Radix-2
FFT algorithm X (2k) = n=0 g1 (n)WN/2
DIF Radix-2
FFT algorithm X (N/2)−1
kn
About X (2k + 1) = n=0 g2 (n)WN/2
This computational procedure can be repeated through
decimation of the N/2 point DFT’s X (2k) and X (2k + 1).
The computational efficiency of DIF FFT algorithm is same as
for DIT FFT algorithm.
Decimation in frequency Radix-2 FFT algorithm
contd...
FFT : An
Efficient
Computation
of DFT
Rakesh
Sharma
Outline
Introduction
Why FFT ?
Computational
complexity
Radix-2 FFT
Algorithm
DIT Radix-2
FFT algorithm
DIF Radix-2
FFT algorithm
About
Rakesh
Sharma
Outline
Introduction
Why FFT ?
Computational
complexity
Radix-2 FFT
Algorithm
DIT Radix-2
FFT algorithm
DIF Radix-2
FFT algorithm
About
Rakesh
Sharma We observe that the input data x(n) occurs in natural order,
but the output data DFT occurs in bit reversed order. Let us
Outline
solve a problem : Compute the 8-point DFT of the sequence
Introduction
Why FFT ?
Computational 1 1 1 1
complexity
x(n) = { , , , , 0, 0, 0, 0}
Radix-2 FFT 2 2 2 2
Algorithm
DIT Radix-2
FFT algorithm Solution of the above problem is :
DIF Radix-2
FFT algorithm
About X (k) = ?
About the author of this slideshow
FFT : An
Efficient
Computation
of DFT
Rakesh
Sharma
Outline
Introduction
Why FFT ?
Rakesh Sharma is Assistant Professor at the Departement of
Computational
complexity
Electronics and Communication Engineering, National Institute
Radix-2 FFT of Technology Hamirpur, Hamirpur (H.P.) India.
Algorithm
DIT Radix-2
FFT algorithm
DIF Radix-2
FFT algorithm
About