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

Digital Signal Processing: Dr. Muayad

The document discusses the Fast Fourier Transform (FFT) algorithm. The FFT is used to efficiently compute the Discrete Fourier Transform (DFT) by taking advantage of symmetry and periodicity in the DFT calculation. The FFT reduces the computation time from O(N^2) to O(NlogN). Specifically, it describes the decimation-in-time FFT algorithm, which decomposes an N-point DFT into smaller DFTs by splitting the input sequence. At each stage, it uses a "butterfly" operation involving complex multiplication and addition to compute the smaller DFTs until it reaches 2-point DFTs. This divide and conquer approach significantly speeds up the computation compared to directly calculating the

Uploaded by

Wisam Qqq
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
28 views

Digital Signal Processing: Dr. Muayad

The document discusses the Fast Fourier Transform (FFT) algorithm. The FFT is used to efficiently compute the Discrete Fourier Transform (DFT) by taking advantage of symmetry and periodicity in the DFT calculation. The FFT reduces the computation time from O(N^2) to O(NlogN). Specifically, it describes the decimation-in-time FFT algorithm, which decomposes an N-point DFT into smaller DFTs by splitting the input sequence. At each stage, it uses a "butterfly" operation involving complex multiplication and addition to compute the smaller DFTs until it reaches 2-point DFTs. This divide and conquer approach significantly speeds up the computation compared to directly calculating the

Uploaded by

Wisam Qqq
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 8

Digital Signal Processing

Lecture 9

Dr. Muayad

3rd year

1
The Fast Fourier transforms (FFT)
9.1 Introduction
The time taken to evaluate a DFT on a digital computer depends
principally on the number of multiplications involved, since these are the
slowest operations. With the DFT, this number is directly related to 𝑁 2 ,
where N is the length of the transform. Therefore for lengthy N the
computational speed becomes a major consideration. Derive some fast
algorithms for computing the DFT. These algorithms are known, as fast
Fourier transforms (FFTs). These algorithms rely on the fact that the
standard DFT involves a lot of redundant calculations. , FFT often reducing
the computation time by hundreds.
The basic strategy that is used in the FFT algorithm is one of "divide
and conquer." which involves decomposing an N-point DFT into
successively smaller DFTs.
9.2 Decimation-in-time algorithm
The decimation-in-time FFT algorithm is based on splitting
(decimating) x(n) into smaller sequences and finding X ( k ) from the DFTs
of these decimated sequences. This decimation leads to an efficient
algorithm when the sequence length is a power of 2. Since the time samples
which are divided up, this algorithm is known as the decimation in-time
(DIT) algorithm.
Let x(n) be a sequence of length 𝑁 = 2𝑣 , and suppose that x(n) is
split (decimated) into two subsequences, each of length N/2. As illustrated in
Fig. 7-1, the first sequence 𝑔(𝑛) is formed from the even-index terms,
𝑁
𝑔(𝑛) = 𝑥(2𝑟) 𝑟 = 0,1,2 … … , −1
2
and the second, h(n), is formed from the odd-index terms,

2
𝑁
ℎ(𝑛) = 𝑥(2𝑟 + 1) 𝑟 = 0,1,2 … … , −1
2
where n=2r when n is even
n=2r+1 when n is odd

Fig 9-1 Decimation sequences of length N=8 by a factor of 2

The N -point DFT of x(n) is


𝑁−1

𝑋(𝑘) = ∑ 𝑥(𝑛)𝑊𝑁𝑘𝑛
𝑛=0
𝑁 𝑁
−1 −1
2 2
𝑘(2𝑟+1)
𝑋(𝑘) = ∑ 𝑥(2𝑟) 𝑊𝑁2𝑘𝑟 + ∑ 𝑥(2𝑟 + 1) 𝑊𝑁
𝑟=0 𝑟=0

3
𝑁 𝑁
−1 −1
2 2

𝑋(𝑘) = ∑ 𝑥(2𝑟) 𝑊𝑁𝑘𝑟 + ∑ 𝑥(2𝑟 + 1) 𝑊𝑁𝑘 𝑊𝑁2𝑘𝑟


𝑟=0 2 𝑟=0

Where 𝑊𝑁2 = 𝑊𝑁/2


𝑁 𝑁
−1 −1
2 2

𝑋(𝑘) = ∑ 𝑥(2𝑟) 𝑊𝑁𝑘𝑟 + 𝑊𝑁𝑘 ∑ 𝑥(2𝑟 + 1) 𝑊𝑁𝑘𝑟


𝑟=0 2 𝑟=0 2

Note that the first term is the N/2-point DFT of g(n), and the second is the
N/2-point DFT of h(n)
𝑋(𝑘) = 𝐺(𝑘) + 𝑊𝑁𝑘 𝐻(𝑘) 𝑘 = 0,1, … 𝑁 − 1
Where G(k) referred to the transform of the even numbered point in x(n),
H(k) referred to the transform of the odd numbered point in x(n)
The N- point DFT X(k) can be obtained from two 𝑁/2-point transforms.
Although the frequency index k ranges over N values, only 𝑁/2 values of
G(k) and H(k) need to be computed since G(k),H(k) are periodic in k with
period 𝑁/2. A block diagram showing the computations that are necessary
for the first stage of eight-point decimation-in-time FFT is shown in Fig. 9-
2.

4
Fig. 9-2. An eight-point decimation-in-time FFT algorithm after the first decimation.

Assuming that N is a power of 2, we can repeat the above process on


the two 𝑁/2 -point transforms, breaking them down to 𝑁/4 point
transforms, etc…, until we come down to 2-point transforms.
Then decimating the sequence to reach to 2-point signal, G( k ) may be
evaluated as follows:
𝑁 𝑁
−1 −1
4 4
𝑘(2𝑟+1)
𝐺(𝑘) = ∑ 𝑔(2𝑟) 𝑊𝑁2𝑘𝑟 + ∑ 𝑔(2𝑟 + 1) 𝑊𝑁
𝑟=0 2 𝑟=0 2

𝑁 𝑁
−1 −1
2 2

𝐺(𝑘) = ∑ 𝑔(2𝑟) 𝑊𝑁𝑘𝑟 + 𝑊𝑁𝑘 ∑ 𝑔(2𝑟 + 1) 𝑊𝑁𝑘𝑟


𝑟=0 4 2 𝑟=0 4

5
Where the first term is the N /4-point DFT of the even samples of g(n) and
the second is the N/4-point DFT of the odd samples of g(n). A block diagram
illustrating this decomposition is shown in Fig. 9-3

Fig 9-3 Decimation of the four-point DFT into two two-point DFTs in the decimation-in-
time FFT.

The basic computation at the heart of the FFT is known as the


butterfly because of its crises-cross appearance. For the DIT FFT algorithm,
the butterfly computation is of the form as below in fig 9-4

Fig. 9-4. (a) The butterfly, which is the basic computational element of the FFT
algorithm
(b) A simplified butterfly with only one complex multiplication.

6
The butterfly operation in FFT where A and B are complex numbers. Thus a
butterfly computation requires one complex multiplication and 2 complex
additions.
A complete eight-point radix-2 decimation-in-time FFT is shown in Fig. 9-5.

Fig. 9.5 A complete eight-point radix -2, decimation-in-lime FFT.

Example of the time domain decomposition used in the FFT. In this


example, a 16 point signal is decomposed through four stages.

7
9.3 Computational speed of FFT
Computing an N-point DFT using radix-2 decimation-in-time FFT is much
more efficient than calculating the DFT directly. For example, if 𝑁 = 2𝑣 ,
there are 𝑙𝑜𝑔2 𝑁 = v stages of computation. Because each stage requires 𝑁/2
𝑝
complex multiplies by the twiddle factors 𝑊𝑁 and N complex additions. The
number of complex multiplications required to evaluate an 𝑁-point is 𝑁/
2𝑙𝑜𝑔2 𝑁 and 𝑁𝑙𝑜𝑔2 𝑁 complex additions.

You might also like