Você está na página 1de 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

Você também pode gostar