0% found this document useful (0 votes)
33 views

Digital Signal Processing: Dr. Muayad

The document discusses the Fast Fourier Transform (FFT) algorithm. It describes two approaches to decomposing the Discrete Fourier Transform (DFT) - conventional decomposition and index mapping decomposition. Index mapping decomposition factors the sequence length N into N1 and N2, mapping the sequence into a two-dimensional array. The FFT computation involves: 1) computing N1-point DFTs across each row, 2) multiplying by phase factors, 3) computing N2-point DFTs across each column. This decomposition reduces computational complexity from O(N2) to O(NlogN). An example computes the complex multiplications for an N=12 FFT versus a direct DFT.

Uploaded by

Wisam Qqq
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)
33 views

Digital Signal Processing: Dr. Muayad

The document discusses the Fast Fourier Transform (FFT) algorithm. It describes two approaches to decomposing the Discrete Fourier Transform (DFT) - conventional decomposition and index mapping decomposition. Index mapping decomposition factors the sequence length N into N1 and N2, mapping the sequence into a two-dimensional array. The FFT computation involves: 1) computing N1-point DFTs across each row, 2) multiplying by phase factors, 3) computing N2-point DFTs across each column. This decomposition reduces computational complexity from O(N2) to O(NlogN). An example computes the complex multiplications for an N=12 FFT versus a direct DFT.

Uploaded by

Wisam Qqq
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/ 9

Digital Signal Processing

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)

Or the sequence x(n) may be expressed as a two dimension array indexed by


𝑛1 , 𝑛2 as shown below
Where 𝑛1 = 0,1,2, … . . 𝑁1 − 1
𝑛2 = 0,1,2, … . . 𝑁2 − 1

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 . . . .
. . . .

𝑁2 − 1 x(N2-1,0) x(N2-1,1) ………. x(N2-1, N1-1)

By defining the index map for both n,k as

The sequence x(n)is mapped into the rectangular array x(n1,n2),consequently


X(k) is mapped into a corresponding rectangular array X(k1,k2)

3
The N-point DFT is expressed as

The computation of FFT of index mapping decomposition is done by three


steps
Step1: compute the N1- point DFT for each of the row n2=0, 1,….,N2 -1 (i.e.
for N2 sequences)
𝑁1 −1
𝑛 𝑘1
𝐹(𝑛2 , 𝑘1 ) = ∑ 𝑥( 𝑛1 , 𝑛2 )𝑊𝑁11
𝑛1 =0

Step 2: compute new rectangular array 𝐺(𝑛2 , 𝑘1 )


𝑛 𝑘
Where 𝐺(𝑛2 , 𝑘1 ) = 𝑊𝑁 2 1 . 𝐹(𝑛2 , 𝑘1 )
Step 3: compute the N2-point DFT for each column n1=0, 1…... N1-1 of the
array 𝐺(𝑛2 , 𝑘1 ) as
𝑁2 −1
𝑛 𝑘2
𝑋(𝑘1 , 𝑘2 ) = ∑ 𝐺(𝑛2 , 𝑘1 ) 𝑊𝑁22
𝑛2 =0

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)

For example, the DFT of the first row is

𝑁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)

b. Complex multiplication of this FFT algorithm =𝑁(𝑁1 + 𝑁2 + 1) =


12(3 + 4 + 1) = 96
Complex multiplication of DFT= (12)2 = 144

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)

Fig. 10-1 FFT algorithm for N = 12.

d. For the first 3-point DFT


𝑘 2𝑘1
F(0, 𝑘1 )= 𝑥(0)𝑊30 + 𝑥(4)𝑊3 1 + 𝑥(8)𝑊3
𝐹(0,0) = 𝑥(0)𝑊30 + 𝑥(4)𝑊30 + 𝑥(8)𝑊30
𝐹(0,1) = 𝑥(0)𝑊30 + 𝑥(4)𝑊31 + 𝑥(8)𝑊32
𝐹(0,2) = 𝑥(0)𝑊30 + 𝑥(4)𝑊32 + 𝑥(8)𝑊34
The signal flow graph of 3-point DFT will be
F(0,0)
X(0)

F(0,1)
X(1)

F(0,2)
X(2)

You might also like