Digital Signal Processing: Dr. Muayad
Digital Signal Processing: Dr. Muayad
Lecture 4
Dr. Muayad
3rd year
1
Fast Fourier transform
10.1 Introduction
The FFT algorithms depend on the decomposition of the DFT into a number
of successively shorter and simpler DFTs. The decomposition of DFTs done
through two approaches:
1. Conventional decomposition :- In this method the signal is broken
down into shorter ,interleaved and subsequences .this process is
referred as decimation in time
2. Index mapping decomposition: this approach based on the
decomposition of an N-point DFT into successively smaller DFTs.
10.2 Index mapping decomposition
In this approach, the sequence length N can be factored as a product
of two integers
𝑁 = 𝑁1 . 𝑁2
That’s mean the sequence x(n) is decomposed into 𝑁2 sequences each of
length 𝑁1 . The sequence x(n) can be expressed as a one-dimensional array
indexed by n as
n 0 1 N-1
Sequence x(0) x(1) ……….. x(N-1)
x(n)
2
Column index
𝑛1
0 1 𝑁1 − 1
𝑛2
0 x(0,0) x(0,1) ………. x(0,N1-1)
1 x(1,0) x(1,1)
. . . .
Row index . . . .
. . . .
3
The N-point DFT is expressed as
4
10.3 Computational speed of index mapping FFT algorithm
We can see that the first step involve the computation of N2 DFT each of N1-
point. Hence this step required,
𝑐𝑜𝑚𝑝𝑙𝑒𝑥 𝑚𝑢𝑙𝑡𝑖𝑝𝑙𝑖𝑐𝑎𝑡𝑖𝑜𝑛 = 𝑁2 . (𝑁1 )2
Complex addition =𝑁2 (𝑁1 (𝑁1 − 1))
The second step required 𝑁2 . 𝑁1 complex multiplication. Finally the third
step required to find 𝑁1 DFT each of length 𝑁2
Complex multiplication =𝑁1 . (𝑁2 )2
Complex addition =𝑁1 (𝑁2 (𝑁2 − 1)) therefore, the total complex
multiplication for all the steps and complex addition will be
Complex multiplication total =𝑁2 . (𝑁1 )2 +𝑁2 . 𝑁1 +𝑁1 . (𝑁2 )2
=𝑁2 . 𝑁1 (𝑁1 + 𝑁2 + 1)
Complex addition total =𝑁2 (𝑁1 (𝑁1 − 1)) +𝑁1 (𝑁2 (𝑁2 − 1))
=N(𝑁1 + 𝑁2 − 2)
Note that: if 𝑁 = 𝑅𝑖 and N can be factored into equal factors, then the FFT
algorithm is called radix R, but if the factors are not equal, the FFT
algorithm is called mixed radix.
Example 10-1: Consider the sequence of the length N=1000, find the
complex multiplication and addition of both direct DFT and FFT algorithm
Solution:- direct DFT required
Complex multiplication=𝑁 2 = 106
Complex addition=N(N-1) =999,000
While by FFT algorithm 𝑁 = 𝑁1 . 𝑁2 =2*500
Complex multiplication =𝑁2 . 𝑁1 (𝑁1 + 𝑁2 + 1) =1000(2+500+1) =503,000
Complex addition =N(𝑁1 + 𝑁2 − 2)=1000(2+500-2) =500,000
5
Example 10-2: for the sequence x(n) with length 12
a. Derive the mixed radix FFT algorithm
b. Compute the complex multiplication involved by this algorithm
c. Draw the signal flow graph of this algorithm
d. Draw the first stage of signal flow graph with respect to the phase
factor
Solution:
a. 𝑁 = 𝑁1 . 𝑁2
𝑁 = 3 ∗ 4 Then the sequence x(n) is decimated into 4 sequences
each of length 3,The index map for n ,k
𝑛 =4n1+n2
K=k1+3k1
Where n1=0, 1, 2
n2=0, 1, 2, 3
Step 1: With N1 = 3 and N2 = 4, the first step is to form a two-dimensional
array consisting of N1 = 3 columns and N2 = 4 rows,
6
and compute the N1- point DFT for each of the row of the array to produce
another array 𝐹(𝑛2 , 𝑘1 )
K1
0 1 2
n2
0 F(0,0) F(0,1) F(0,2)
1 F(1,0) F(1,1) F(1,2)
2 F(2,0) F(2,1) F(2,2)
3 F(3,0) F(3,1) F(3,2)
𝑁1 −1
𝑛 𝑘1
𝐹(𝑛2 , 𝑘1 ) = ∑ 𝑥( 𝑛1 , 𝑛2 )𝑊𝑁11
𝑛1 =0
𝑘 2𝑘1
𝐹(𝑛2 , 𝑘1 ) = 𝑥(0, 𝑛2 )𝑊30 + 𝑥(1, 𝑛2 )𝑊3 1 + 𝑥(2, 𝑛2 )𝑊3
So to find the DFT of the first row
𝑘 2𝑘1
𝐹(0, 𝑘1 ) = 𝑥(0, 0)𝑊30 + 𝑥(1,0)𝑊3 1 + 𝑥(2,0)𝑊3
𝑘 2𝑘1
𝐹(0, 𝑘1 ) = 𝑥(0)𝑊30 + 𝑥(4)𝑊3 1 + 𝑥(8)𝑊3 , where 𝑘1 =0, 1, 2
The next step is to multiply each term of 𝐹(𝑛2 , 𝑘1 ) by the phase factor
𝑛 𝑘1
𝑊𝑁 2 to produce 𝐺(𝑛2 , 𝑘1 )
0 0 0
𝑊12 𝑊12 𝑊12
0 1 2
𝑛 𝑘1 𝑊12 𝑊12 𝑊12
𝑊𝑁 2 = 0 2 4
𝑊12 𝑊12 𝑊12
0 3 6
[𝑊12 𝑊12 𝑊12 ]
7
K1
0 1 2
n2
0 G(0,0) G(0,1) G(0,2)
1 G(1,0) G(1,1) G(0,2)
2 G(2,0) G(2,1) G(2,2)
3 G(3,0) G(3,1) G(3,2)
0 1
Where G(0,0)=F(0,0). 𝑊12 , G(1,1) =F(1,1). 𝑊12 and so on
The final step is to compute the DFT of each column of 𝐺(𝑛2 , 𝑘1 )
K1
0 1 2
K2
0 X(0) X(1) X(2)
1 X(3) X(4) X(5)
2 X(6) X(7) X(8)
3
X(9) X(10) X(11)
8
c. The signal flow graph is
F(0,0) G(0,0)
F(0,1) G(1,0)
F(0,2) G(2,0)
F(1,0) G(3,0)
F(1,1) G(0,1)
F(1,2) G(1,1)
F(2,0) G(2,1)
G(3,1)
F(3,0)
F(0,1)
X(1)
F(0,2)
X(2)