0% found this document useful (0 votes)
108 views12 pages

Chapter 8 A Handout

This document discusses the efficient computation of the Discrete Fourier Transform (DFT) using the Fast Fourier Transform (FFT) algorithm. It explains that the FFT exploits symmetry and periodicity properties to reduce the computational complexity of the DFT from O(N^2) to O(NlogN). The FFT uses a divide-and-conquer approach to decompose a large DFT into smaller DFTs until the size N can no longer be factored. This results in much more efficient computation of the DFT compared to direct computation. Pseudocode for the FFT algorithm is presented.

Uploaded by

Sojol Kumar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
108 views12 pages

Chapter 8 A Handout

This document discusses the efficient computation of the Discrete Fourier Transform (DFT) using the Fast Fourier Transform (FFT) algorithm. It explains that the FFT exploits symmetry and periodicity properties to reduce the computational complexity of the DFT from O(N^2) to O(NlogN). The FFT uses a divide-and-conquer approach to decompose a large DFT into smaller DFTs until the size N can no longer be factored. This results in much more efficient computation of the DFT compared to direct computation. Pseudocode for the FFT algorithm is presented.

Uploaded by

Sojol Kumar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 12

EELE 4310: Digital Signal Processing (DSP)

Chapter # 8 : Efficient Computation of the DFT: Fast Fourier

Transform Algorithms
(Part One)

Spring, 2012/2013

EELE 4310: Digital Signal Processing (DSP) - Ch.8 Dr. Musbah Shaat 1 / 12
Outline

1 Efficient Computation of the DFT: FFT Algorithms

EELE 4310: Digital Signal Processing (DSP) - Ch.8 Dr. Musbah Shaat 2 / 12
Efficient Computation of the DFT: FFT Algorithms
Introduction

The computational problem for the DFT is to compute the sequence


X (k) of N complex-valued numbers given another sequence of data
x(n) of length N.
The used formula is:
PN−1
X (k) = n=0 x(n)WNkn , 0 ≤ k ≤ N − 1
where WN = e −j2π/N .
In general, the data sequence x(n) is also assumed to be complex
valued.
Similarly, the IDFT becomes:
x(n) = N1 N−1 −kn
P
k=0 X (k)WN , 0 ≤ n ≤ N − 1.
The DFT and the IDFT involve basically the same type of
computations
⇒ efficient computational algorithms for the DFT applies as well to
the IDFT.

EELE 4310: Digital Signal Processing (DSP) - Ch.8 Dr. Musbah Shaat 3 / 12
Efficient Computation of the DFT: FFT Algorithms
Direct Computation of the DFT

For each value of k, direct computation of X (k) involves:


N complex multiplications.
N − 1 complex additions.
To compute all N values of the DFT we require:
N 2 complex multiplications.
N 2 − N complex additions.
Direct computation of the DFT is inefficient, because it does not
exploit the symmetry and periodicity properties of the phase factor
WN .

k+N/2
Symmetry property: WN = −WNk
Periodicity property: WNk+N = WNk

The FFT algorithms exploit these two basic properties of the phase
factor.
EELE 4310: Digital Signal Processing (DSP) - Ch.8 Dr. Musbah Shaat 4 / 12
Efficient Computation of the DFT: FFT Algorithms
Divide-and-Conquer Approach to Computation of the DFT ... 1

This approach is based on the decomposition of an N-point DFT


into successively smaller DFTs.
Consider the computation of an N-point DFT, where N can be
factored as a product of two integers, that is
N = LM
What if N is a prime number?
The sequence x(n) can be written as a one or two-dimensional array.

EELE 4310: Digital Signal Processing (DSP) - Ch.8 Dr. Musbah Shaat 5 / 12
Efficient Computation of the DFT: FFT Algorithms
Divide-and-Conquer Approach to Computation of the DFT ... 2

The sequence x(n) can be stored in a rectangular array in a varity of


ways depending on the mapping
Ex. Assume we select the mapping
n = Ml + m
This leads to the arrangement of the 1st M elements in the first
row, the next M elements in the second row, and so on (Row-wise).

EELE 4310: Digital Signal Processing (DSP) - Ch.8 Dr. Musbah Shaat 6 / 12
Efficient Computation of the DFT: FFT Algorithms
Divide-and-Conquer Approach to Computation of the DFT ... 3

Ex. Assume we select another mapping


n = l + mL
This leads to the arrangement of the 1st L elements in the first
column, the next L elements in the second column, and so on
(Column-wise).

EELE 4310: Digital Signal Processing (DSP) - Ch.8 Dr. Musbah Shaat 7 / 12
Efficient Computation of the DFT: FFT Algorithms
Divide-and-Conquer Approach to Computation of the DFT ... 4

A Similar arrangement can be used to store the computed DFT


values.
With N = LM, we can write by mapping the index k to a pair of
indices (p, q)
k = Mp + q (row-wise) or k = qL + p (column-wise)
Assume that x(n) is mapped into the rectangular array x(l, m) and
X (k) is mapped into a corresponding rectangular array X (p, q).
Assume a column-wise mapping for x(n) and the a row-wise
mapping for X (k).
The DFT can be expressed as a double sum over the elements of the
rectangular array multiplied by the corresponding phase factors.
(Mp+q)(mL+l)
X (p, q) = M−1
P PL−1
m=0 l=0 x(l, m)WN
But
(Mp+q)(mL+l)
WN = WNMLmp WNmLq WNMpl WNlq
EELE 4310: Digital Signal Processing (DSP) - Ch.8 Dr. Musbah Shaat 8 / 12
Efficient Computation of the DFT: FFT Algorithms
Divide-and-Conquer Approach to Computation of the DFT ... 5

However, WNMLmp = WNNmp = 1, WNmLq = WN/L


mq mq
= WM , and
WNMpl = WN/M
pl
= WLpl .
The DFT can be expressed as
n h io
lq PM−1 mq
X (p, q) = L−1 WLlp
P
l=0 WN m=0 x(l, m)WM
We can subdivide the computation into three steps:
First, we compute the M-point DFTS
PM−1
F (l, q) ≡ m=0 x(l, m)WMmq
for each of the rows l = 0, 1, · · · , L − 1.
Second, compute the new rectangular array G (l, q) = WNlq F (l, q).
Finally, compute the L-point DFTs
PL−1
X (p, q) ≡ l=0 G (l, q)WLlp
for each of the column q = 0, 1, · · · , M − 1.

Is this more complex than the direct computation of the DFT?


EELE 4310: Digital Signal Processing (DSP) - Ch.8 Dr. Musbah Shaat 9 / 12
Efficient Computation of the DFT: FFT Algorithms
Divide-and-Conquer Approach to Computation of the DFT ... 6

The first step involves the computation of L DFTs, each of M


points ⇒
LM 2 complex multiplications.
LM(M − 1) complex additions.
The second step requires ML2 complex multiplications.
The third step requires the computation of M DFTs, each of L
points ⇒
ML2 complex multiplications.
ML(L − 1) complex additions.
The computational complexity is
Complex multiplications: N(M + L + 1)
Complex additions: N(M + L − 2)
The number of multiplications is reduced from N 2 to N(M + L + 1).
The number of additions is reduced from N(N − 1) to N(M + L − 2).
Ex. N = 1000 and L = 2 and M = 500
Direct: 106 complex multiplications while Divide-approach: 503, 000.
EELE 4310: Digital Signal Processing (DSP) - Ch.8 Dr. Musbah Shaat 10 / 12
Efficient Computation of the DFT: FFT Algorithms
Divide-and-Conquer Approach to Computation of the DFT ... 7

Repeating of this decomposition until we arrive


to the prime factors of N leads to a more efficient computational algorithm.

EELE 4310: Digital Signal Processing (DSP) - Ch.8 Dr. Musbah Shaat 11 / 12
Efficient Computation of the DFT: FFT Algorithms
Divide-and-Conquer Approach to Computation of the DFT ... 8

To summarize, the algorithm involves the following computations:


Algorithm 1
1. Store the signal column-wise.
2. Compute the M-point DFT of each row.
3. Multiply the resulting array by the phase factors WNlq .
4. Compute the L-point DFT of each column.
5. Read the resulting array row-wise.

Algorithm 2
1. Store the signal row-wise.
2. Compute the L-point DFT of each column.
3. Multiply the resulting array by the phase factors WNpm .
4. Compute the M-point DFT of each row.
5. Read the resulting array column-wise.

EELE 4310: Digital Signal Processing (DSP) - Ch.8 Dr. Musbah Shaat 12 / 12

You might also like