Chuong - 6 - Efficient Computation of The DFT Fast Fourier Transform Algorithms
Chuong - 6 - Efficient Computation of The DFT Fast Fourier Transform Algorithms
CuuDuongThanCong.com https://fb.com/tailieudientucntt
©2013, CE Department
6.1 Effcient Computation of the DFT: FFT Algorithms
Periodicity property :
CuuDuongThanCong.com https://fb.com/tailieudientucntt
©2013, CE Department
6.1.1 Direct computation of the DFT.
For a complex-and-valued sequence x(n) of N
points, the DFT may be expressed as.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
©2013, CE Department
6.1.1 Direct computation of the DFT.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
©2013, CE Department
6.1.2 Divide-and-conquer approach to computation
of the DFT.
This approach is based on the decomposition of an
N-point DFT into successively smaller DFTs.
Let us consider the computation of an N-point DFT,
where N can be factored as a product of two
integers.
N = LM (6.1.8)
The sequence x(n), 0 ≤ n ≤ N – 1, can be stored in
either in a two-dimensional array indexed by l and m,
Where 0 ≤ l ≤ L – 1 (row index) and 0 ≤ m ≤ M – 1
(column index) as illustrated in Fig 6.1. We select
mapping : n = Ml + m (6.1.9) n = l + mL (6.1.10)
CuuDuongThanCong.com https://fb.com/tailieudientucntt
©2013, CE Department
6.1.2 Divide-and-conquer approach to computation
of the DFT.
Figure 6.1 Two dimensional data array for storing the
sequence x(n), 0 ≤ n ≤ N – 1.
n 0 1 N-1
L–1
(b)
CuuDuongThanCong.com https://fb.com/tailieudientucntt
©2013, CE Department
6.1.2 Divide-and-conquer approach to computation
of the DFT.
A similar arrangement can be used to store
the computed DFT values.
Where 0 ≤ p ≤ L – 1 and 0 ≤ p ≤ M – 1
If we select the mapping
k = Mp + q (6.1.11)
The DFT stored on a row-wise basis.
The mapping
k = qL + p (6.1.12)
results in a column-wise storage of X(k).
CuuDuongThanCong.com https://fb.com/tailieudientucntt
©2013, CE Department
6.1.2 Divide-and-conquer approach to computation
of the DFT.
Let us adopt a column-wise mapping for x(n) and the
row-wise mapping for the DFT, then
CuuDuongThanCong.com https://fb.com/tailieudientucntt
©2013, CE Department
6.1.2 Divide-and-conquer approach to computation
of the DFT.
3. Finally, we compute L-point DFTs
CuuDuongThanCong.com https://fb.com/tailieudientucntt
©2013, CE Department
6.1.3 Radix-2 FFT Algorithm.
Since F1(k) and F2(k) are periodic (N/2), thus
CuuDuongThanCong.com https://fb.com/tailieudientucntt
©2013, CE Department
6.1.3 Radix-2 FFT Algorithm.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
©2013, CE Department
6.1.3 Radix-2 FFT Algorithm.
Figure 6.4 First step in the decimation-in-time algorithm.
x(N – 2 )
x(4)
x(2) N/2 – Point G1 (k )
x(0)
DFT F1(2 )
x(3 )
x(1 ) F1(0 )F1(1 )
F2 (1 )
F2 (0 ) 2– Point X(1)
X(0)
X(N-1 )
DFT
Phase
factors
G2 (k )
CuuDuongThanCong.com https://fb.com/tailieudientucntt
©2013, CE Department
6.1.3 Radix-2 FFT Algorithm.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
©2013, CE Department
6.1.3 Radix-2 FFT Algorithm.
Figure 6.6 Eight-point decimation-in-time FFT algorithm.
x (4) X (1)
-1
x (2) X (1)
-1
x (6) X (3)
-1 -1
x (1) X (4)
-1
x (5) X (5)
-1 -1
x (3) X (6)
-1
x (7) X (7)
-1 -1
CuuDuongThanCong.com https://fb.com/tailieudientucntt
©2013, CE Department
6.1.3 Radix-2 FFT Algorithm.
Figure 6.7 Basic butterfly computation in the
decimation-in-time FFT algorithm.
a
b
-1
(b)
CuuDuongThanCong.com https://fb.com/tailieudientucntt
©2013, CE Department
6.1.3 Radix-2 FFT Algorithm.
Since
then
CuuDuongThanCong.com https://fb.com/tailieudientucntt
©2013, CE Department
6.1.3 Radix-2 FFT Algorithm.
let us split X(k)
and
CuuDuongThanCong.com https://fb.com/tailieudientucntt
©2013, CE Department
6.1.3 Radix-2 FFT Algorithm.
If we define:
then
CuuDuongThanCong.com https://fb.com/tailieudientucntt
©2013, CE Department
6.1.3 Radix-2 FFT Algorithm.
Figure 6.9 First stage of the decimation-in-frequency FFT
algorithm.
x(0) X(0)
x(1) X(2)
4-point
DFT
x(2) X(4)
x(3) X(6)
x(4) X(1)
-1
x(5) X(3)
-1 4-point
DFT
x(6) X(5)
-1
x(7) X(7)
-1
CuuDuongThanCong.com https://fb.com/tailieudientucntt
©2013, CE Department
6.1.3 Radix-2 FFT Algorithm.
Figure 6.10 Basic butterfly computation in the
decimation-in-frequency FFT
algorithm.
a A =a+b
b
-1
x(1) X(4)
-1
x(2) X(2)
-1
x(3) X(6)
-1 -1
x(4) X(1)
-1
x(5) X(5)
-1 -1
x(6) X(3)
-1 -1
x(7) X(7)
-1 -1 -1
CuuDuongThanCong.com https://fb.com/tailieudientucntt
©2013, CE Department
6.1.4. Radix-4 FFT algorithms
When the number data point N in the DFT is power
of 4, we can employ a radix-4 FFT algorithm.
Selecting L = 4 and M = N/4,
we have
n = 4m + l; m, q = 0, 1, …, N/4;
k = ( N/4) p + q; l, p = 0, 1, 2, 3;
Thus, we split the N-point input sequence into four
subsequences :
x(4n), x(4n+1), x(4n+2), x(4n+3)
n = 0, 1, …, N/4 -1.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
©2013, CE Department
6.1.4. Radix-4 FFT algorithms
We obtain
CuuDuongThanCong.com https://fb.com/tailieudientucntt
©2013, CE Department
6.1.4. Radix-4 FFT algorithms
from (6.1.39) we have a radix-4 decimation-in-
time butterfly.
0
-‐j
-‐1 q
j
-‐1 2q
1
-‐1 3q
j
-‐1
-‐j
CuuDuongThanCong.com https://fb.com/tailieudientucntt
©2013, CE Department
6.1.4. Radix-4 FFT algorithms
This decimation-in-time procedure can be
repeated recursively v times.
The resulting FFT algorithm consists of v stages,
where each stage contains N/4 butterflies.
The computations burden for the algorithm is
3vN/4 = (3N/8) log2N complex additions.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
©2013, CE Department
6.1.4. Radix-4 FFT algorithms
where
and
CuuDuongThanCong.com https://fb.com/tailieudientucntt
©2013, CE Department
6.1.5 Split-Radix FFT Algorithm
CuuDuongThanCong.com https://fb.com/tailieudientucntt
©2013, CE Department
6.1.5 Split-Radix FFT Algorithm.
The odd-numbered samples of the N-point DFT :
x (n)
Use for
x (n+ N/2)
-1 -j X(4k + 1)
Use for
x (n+ 3N/2)
-1 j X(4k + 3)
CuuDuongThanCong.com https://fb.com/tailieudientucntt
©2013, CE Department
6.1.5 Split-Radix FFT Algorithm.
Table 6.2 Number of Nontrivial Real multiplication
and addition to compute an N-point complex DFT.
Real multiplications Real additions
Radix Radix Radix Split Radix Radix Radix Split
N 2 4 8 Radix 2 4 8 Radix
CuuDuongThanCong.com https://fb.com/tailieudientucntt
©2013, CE Department
6.1.6 Implementation of FFT Algorithms.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
©2013, CE Department
6.2.1 Efficient computation of the DFT of two real
sequences.
Suppose that: x1(n) and x2(n) are two real-valued
sequences of length N, and let x(n) be a complex-
valued sequence defined as
x(n) = x1(n) + jx2(n) 0≤n≤N–1 (6.2.1)
CuuDuongThanCong.com https://fb.com/tailieudientucntt
©2013, CE Department
6.2.1 Efficient computation of the DFT of two real
sequences.
Therefore,
CuuDuongThanCong.com https://fb.com/tailieudientucntt
©2013, CE Department
6.2.2 Efficient computation of the DFT of a
2N- point two real sequences
Finally
Consequently
CuuDuongThanCong.com https://fb.com/tailieudientucntt
©2013, CE Department
6.2.3 Use of the FFT Algorithm in Linear
Filtering and Correlation
Let h(n), 0 ≤ n ≤ M – 1, be the unit sample response of
the FIR filter.
x(n) denotes the input data sequence
The block size of the FFT algorithm is N
where N=L+M–1
L – the number of new data samples being processed
by the filter.
M – any giver value so that N is a power of 2.
The N-point DFT of h(n), which is padded by L – 1 zero,
is denoted as H(k), and use the
decimation-in-frequency FFT algorithm to compute H(k)
CuuDuongThanCong.com https://fb.com/tailieudientucntt
©2013, CE Department
6.2.3 Use of the FFT algorithm in linear
filtering and correlation.
In the overlap-save method, the first M – 1 data
point of each data block are the last M – 1 data
points of the previous data block.
The N-point DFT of each data block is performed
by the FFT algorithm.
Since this is exactly the order of H(k), we can
multiply the DFT of the data, say Xm(k), with H(k)
and thus the result
Ym(k) = H(k) Xm(k)
is also in bit-reversed order.
CuuDuongThanCong.com https://fb.com/tailieudientucntt
©2013, CE Department
6.2.3 Use of the FFT algorithm in linear
filtering and correlation
CuuDuongThanCong.com https://fb.com/tailieudientucntt
©2013, CE Department
6.2.3 Use of the FFT algorithm in linear
filtering and correlation
Table 6.3 Computational complexity
Size of FFT c (v) number of complex
v = log2N multiplication per output point
9 13.3
10 12.6
11 12.8
12 13.4
14 15.1
CuuDuongThanCong.com https://fb.com/tailieudientucntt
©2013, CE Department
6.3 A Linear Filtering Approach To Computation of
The DFT.