Recall the definition of the DFT: x[k]=sum_(n=0)^(N-1) x[n]e^(-j2pi k(n)/(N));k=
0,1,dots,N-1. In practice, using the above definition to determine
the DFT is quite inefficient. This problem will introduce you to a
practical and more efficient way to compute the DFT using matrices.
This approach will allow you to determine all the entries of the DFT
x[k] in 'one-step'. Such a procedure will be easier to implement in
software/ hardware.
Let us define W_(N):=e^(-j2(pi )/(N)). Then, we can write:
x[k]=sum_(n=0)^(N-1) x[n]W_(N)^(kn), where W_(N)^(kn)=(e^(-j2(pi )/(N)))^(kn)=e^(-j2pi k(n)/(N)).
Now, define an N imes N matrix (i.e., a matrix with N rows and N
columns), W. Denote the entry in the i^(th ) row and j^(th ) column as
(W)_(ij). The value of (W)_(ij) is given by W_(N)^((i-1) imes (j-1)).
For example, if N=3, then W will be a 3 imes 3 matrix, given by:
(W)_(11)=W_(3)^(0 imes 0)=W_(3)^(0)=1;(W)_(12)=W_(3)^(0 imes 1)=W_(3)^(0)=1;(W)_(13)=
W_(3)^(0 imes 2)=W_(3)^(0)=1;[W]_(21)=W_(3)^(1 imes 0)=W_(3)^(0)=1;(W)_(22)=W_(3)^(1 imes 1)=
W_(3)^(1)=e^(-j2(pi )/(3));(W)_(23)=W_(3)^(1 imes 2)=W_(3)^(2)=(e^(-j2(pi )/(3)))^(2)=e^(-j4(pi )/(3));(W)_(31)=
W_(3)^(2 imes 0)=W_(3)^(0)=1;(W)_(32)=W_(3)^(2 imes 1)=W_(3)^(2)=(e^(-j2(pi )/(3)))^(2)=e^(-j4(pi )/(3))
(W)_(33)=W_(3)^(2 imes 2)=W_(3)^(4)=(e^(-j2(pi )/(3)))^(4)=e^(-j8(pi )/(3)).
We can write this succinctly as:
W=[[(W)_(11),(W)_(12),(W)_(13)],[(W)_(21),(W)_(22),(W)_(23)],[(W)_(31),(W)_(32),(W)_(33)]]=[[1,1,1],[1,W_(3),W_(3)^(2)],[1,W_(3)^(2),W_(3)^(4)]]
(a) Now, let N=4. Write down the W matrix of dimension 4 imes 4.
(b) When N=4, we know that W_(N)=e^(-j2(pi )/(N))=e^(-j(pi )/(2))=-j. Use
this fact to write down the values of entries in W from part (a).
(c) Let g=[[1],[2],[2],[1]]. Determine G, where G=W*g. Notice that W is
a 4 imes 4 matrix and g is a 4 imes 1 vector. Compare your result with
your answer to Problem 1.
(d) The inverse of W, denoted W^(-1), is defined as (1)/(N)W^(**), where W^(**) is
obtained by taking the complex conjugate of entries in W. Write
down W^(-1) for the W matrix in part (b).
(e) Determine W^(-1)*G=(1)/(N)W^(**)*G, where G is from part (c).
0,1,...,N 1. In practice, using the above definition to determine the DFT is quite inefficient. This problem will introduce you to a practical and more efficient way to compute the DFT using matrices. This approach will allow you to determine all the entries of the DFT X[k] in one-step'. Such a procedure will be easier to implement in software/ hardware. Let us define Wv := e-j2r/N. Then, we can write: X[k]=Lh=3x[n]Wn,where Wkn=(e-j2/N)kn=e-j2nkn/N Now, define an N N matrix (i.e., a matrix with N rows and N columns), W. Denote the entry in the ith row and jth column as
For example, if N = 3, then W will be a 3 3 matrix, given by:
We can write this succinctly as:
W11W12 = M W21(W22 M) (W)31(W)32
[1 1 11 1 W3 W3 1 W3 W1]
(a) Now, let N = 4. Write down the W matrix of dimension 4 4 . (b) When N = 4,we know that Wv = e-j2/N = e-jr/2 = -j. Use this fact to write down the values of entries in W from part (a)
1]
cLet g=
Determine G. where G = Wg. Notice that W is
1
a 4 4 matrix and g is a 4 1 vector. Compare your result with your answer to Problem 1. (d) The inverse of W, denoted W1, is defined as W*, where W* is obtained by taking the complex conjugate of entries in W. Write down W-1 for the W matrix in part (b). (e) Determine W-1 . G = W* . G, where G is from part (c).