Application to Digital Signal Processing 713
12.2 Application to Digital Signal Processing 713
where I N/2 is a unit matrix and N/2 is a diagonal matrix with entries
N ,k = 0, . . . , N/2 − 1}; both matrices have dimension N/2 × N/2. The vectors X N ,Y N/2 , and Z N/2 contain the coefficients of x[n],
{W k
y[n], and z[n]. Repeating the above computation for Y[k] and Z[k] we can express it in a similar matrix form until
we reduce the process to 2 × 2 matrices. While performing these computations, the ordering of x[n] is changed. This scrambling of x[n] is obtained by a permutation matrix P N (with 1 and 0 entries indicating the resulting ordering of the x[n] samples). If N
=2 γ , the X N vector, containing the DFT terms X[k], is obtained as the product of γ matrices A i and the permutation matrix. That is,
x = [x[0], . . . , x[N − 1]]
i =1
where T stands for transpose. Given the large number of 1s and 0s in the {A i } and the P N matrices, the number of additions and multiplications is much lower than those in the original formulas.
The number of operations is found to be of the order of Nlog 2 N = γ N, which is much smaller
than the original number of order N 2 . For instance, if N
=2 10 = 1024, the number of additions and multiplications for the computation of the DFT from its original formula is N 2 =2 20 = 1,048,576,
while the FFT computation requires Nlog 2 N = 1024 × 10 = 10,240—that is, the FFT requires about 1% of the number of operations required by the original formula for the DFT.
■ Example 12.1
Consider the decimation-in-time FFT algorithm for N = 4. Give the equations to compute the four DFT values X[k], k = 0, . . . , 3 in matrix form.
Solution
If we compute the DFT of x[n] directly we have that
X[k] =
x[n]W nk 4 k = 0, . . . , 3
n =0
which can be rewritten in the matrix form as
X[0] 1 1 1 1 x[0]
1 W 4 1 W 4 x[2]
X[3]
1 W 3 W 2 4 W 4 1 4 x[3]
where we used
4 =W +0 4 =e −j2π0/4 =W 4 =1
W 6 4 4 =W 4 +2 =e −j2π2/4
=W 2
W 9 4 4 =W +4+1
4 =e −j2π1/4 =W 4
C H A P T E R 12: Applications of Discrete-Time Signals and Systems
which requires 16 multiplications (8 if multiplications by 1 are not counted) and 12 additions. Thus, either 28 or 20, if multiplications by 1 are not counted, multiplications and additions are required. Since the entries are complex, these are complex additions and multiplications. A complex addition requires 2 real additions, and a complex multiplication requires 4 real multiplications and 3 real additions. Indeed, for two complex numbers z = a + jb and v = c + jd, z + v = (a + c) + j(b + c) and zv = (ac − bd + j(bc + ad)). Thus, the total number of real multiplications is 16 × 4 and real additions is 12 × 2 + 16 × 3 for a total of 136 operations.
Separating the even- and the odd-numbered entries of x[n], we have
k X X[k] kn = x[2n]W
X kn
2 +W 4 x[2n + 1]W 2
n =0
n =0
= Y[k] + W k
4 Z[k]
k = 0, . . . , 3
which can be written as
X[k]
= Y[k] + W k
4 Z[k]
X[k k + 2] = Y[k] − W
4 Z[k]
k = 0, 1
In matrix form the above equations can be written as
which is in the form indicated by Equation (12.6). Now we have that
1 Y[k] X x[2n]W kn
2 = x[0]W 2 + x[2]W 2
n =0 1
Z[k] X
0 = k x[2n + 1]W
kn
2 = x[1]W 2 + x[3]W 2 k = 0, 1
n =0