Digital Signal Processing: Dr. Muayad
Digital Signal Processing: Dr. Muayad
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
𝑋(𝑘) = ∑ 𝑥(𝑛)𝑊𝑁𝑘𝑛
𝑛=0
𝑁 𝑁
−1 −1
2 2
𝑘(2𝑟+1)
𝑋(𝑘) = ∑ 𝑥(2𝑟) 𝑊𝑁2𝑘𝑟 + ∑ 𝑥(2𝑟 + 1) 𝑊𝑁
𝑟=0 𝑟=0
3
𝑁 𝑁
−1 −1
2 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.
𝑁 𝑁
−1 −1
2 2
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.
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.
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.