FFT: An Efficient Computation of DFT: Rakesh Sharma

Download as pdf or txt
Download as pdf or txt
You are on page 1of 20

FFT : An

Efficient
Computation
of DFT

Rakesh
Sharma

Outline
FFT : An Efficient Computation of DFT
Introduction
Why FFT ?
Computational
complexity

Radix-2 FFT Rakesh Sharma


Algorithm
DIT Radix-2
FFT algorithm
DIF Radix-2
FFT algorithm

About March 27, 2020


FFT : An
Efficient
Computation
of DFT

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

About 1 Decimation in Time FFT algorithm.


2 Decimation in Frequency FFT algorithm.
DIT Radix-2 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

X (K ) = F1 (k) + WNk F2 (k) k = 0, 1, ....., N − 1

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

We observe that the direct computation of both F1 (k) and


Outline

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

Radix-2 FFT Number of points N Direct Computation FFT algorithm


Algorithm
DIT Radix-2 4 16 4
FFT algorithm
DIF Radix-2
FFT algorithm
128 16,384 448
About 1024 1,048,576 5,120

Table: Comparison of Computational complexity (Number of


Complex Multiplications) for the Direct Computation of DFT versus
the FFT algorithm
DIT 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

Figure: The three stages in the computation of an N = 8 Point DFT.


DIT 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

Figure: The three stages in the computation of an N = 8 Point DFT.


Some Important points..

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

Figure: First stage of the decimation in frequency 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

Figure: N=8 point decimation frequency FFT algorithm.


Decimation in frequency Radix-2 FFT algorithm
contd...
FFT : An
Efficient
Computation
of DFT

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

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy