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