MMSE Detection for Spatial Multiplexing MIMO (SM-MIMO)
MMSE Detection for Spatial Multiplexing MIMO (SM-MIMO)
MMSE Detection for Spatial Multiplexing MIMO (SM-MIMO)
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
KEEE494: 2nd Semester 2009 Week 12<br />
<strong>MMSE</strong> <strong>Detection</strong> <strong>for</strong> <strong>Spatial</strong> <strong>Multiplexing</strong> <strong>MIMO</strong> (<strong>SM</strong>-<strong>MIMO</strong>)<br />
• In the spatial multiplexing <strong>MIMO</strong>, the transmit data from N T number of antennas can be written in vector <strong>for</strong>m<br />
as<br />
x = [x 1 , x 2 , · · · , c NT ] T .<br />
The channel matrix, G, <strong>for</strong> N T transmit and N R receive antennas is N R × N T matrix. The received signal at<br />
the lth receive antenna can be written as<br />
r l = g l1 x 1 + g l2 x 2 + · · · + g lNT x NT<br />
+ n l<br />
where n l is the AWGN with variance σ 2 . We can construct the receive signal vector as<br />
r = [r 1 , r 2 , · · · , r NR ] T .<br />
Now we want to detect the transmit signal vector x by observing r assuming that the channel gain, i.e., G, is<br />
perfectly known. In this class we consider the minimum mean square error (<strong>MMSE</strong>) criterion <strong>for</strong> the detection<br />
of x.<br />
Figure 1: Minimum mean square error (<strong>MMSE</strong>) detection <strong>for</strong> spatial multiplexing <strong>MIMO</strong> where the element of the<br />
channel vector g l consists of the channel from the N T number of antennas to the lth receive antenna.<br />
• Find the matrix W to have<br />
where W is N R × N T matrix.<br />
The solution is shown to be given by<br />
W H =<br />
min E { (x − W H r) 2}<br />
[<br />
G H G + I ] −1<br />
N T<br />
G H<br />
SNR<br />
which is known as ”Wiener Solution”. In above equation, I NT is N T × N T identity matrix and SNR is the<br />
signal-to-noise ratio of each data stream.<br />
1
• General solution of minimum-mean square error detection (<strong>MMSE</strong>)<br />
– Problem description: Let us assume we have desired signal d[n] and d[n] is corrupted somehow into u[n].<br />
Then observing u[n] and using the linear filter W we want to detect d[n]. The problem description is<br />
illustrated in Fig. 2.<br />
d[n] ; desired signal<br />
u[n] ; input signal to <strong>MMSE</strong> (or Wiener) filter which contains ”desired signal d[n]”<br />
y[n] ; estimated d[n], i.e., ˆd[n]<br />
As an example, u[n] = d[n] + z[n] <strong>for</strong> AWGN and u[n] = h[n]d[n] + z[n] <strong>for</strong> fading channel.<br />
Figure 2: Problem description of Wiener filter.<br />
Now we want to find the optimum weight vector W = [w 0 , w 1 , · · · , w K−1 ] T such that the mean-squared<br />
error is minimized. Denote the error is defined as<br />
where<br />
e[n] = d[n] − y[n]<br />
y[n] =<br />
K−1<br />
∑<br />
k=0<br />
w ∗ ku[n − k]<br />
with w k = a k + jb k . Now let us define the cost function J as<br />
J = E[e[n]e ∗ [n]] = E[|e[n]| 2 ].<br />
The <strong>MMSE</strong> solution <strong>for</strong> W is given as<br />
W ∗ = min<br />
W [J]<br />
– Solution:<br />
e[n] = d[n] − y[n]<br />
=<br />
K−1<br />
∑<br />
d[n] − (a k − jb k )u[n − k]<br />
k=0<br />
Let us define a gradient operator ∆ k with respect to the real input a k and the imaginary part b k such as<br />
∆ k =<br />
Apply the operator ∆ k to the cost function J yielding<br />
Now the <strong>MMSE</strong> solution is obtained when<br />
∂ + j ∂ , k = 0, 1, · · · , K − 1<br />
∂a k ∂b k<br />
∆ k J = ∂J<br />
∂a k<br />
+ j ∂J<br />
∂b k<br />
, k = 0, 1, · · · , K − 1<br />
∆ k J = 0 <strong>for</strong> all k = 0, 1, · · · , K − 1<br />
2
or equivalently<br />
[ ∂e[n]<br />
∆ k J = E<br />
∂a k<br />
e ∗ [n] + ∂e∗ [n]<br />
∂a k<br />
e[n] + j ∂e[n]<br />
∂b k<br />
]<br />
e ∗ [n] + j ∂e∗ [n]<br />
e[n]<br />
∂b k<br />
Note that<br />
Using the above, we have<br />
or equivalently<br />
We can rewrite it as<br />
∂e[n]<br />
∂a k<br />
= −u[n − k]<br />
∂e[n]<br />
∂b k<br />
= ju[n − k]<br />
∂e ∗ [n]<br />
∂a k<br />
= −u ∗ [n − k]<br />
∂e ∗ [n]<br />
∂a k<br />
= −ju ∗ [n − k].<br />
∆ k J = E [ −u[n − k]e ∗ [n] − u ∗ [n − k]e[n] − u[n − k]e ∗ [n] + u ast [n − k]e[n] ]<br />
= −2E [u[n − k]e ∗ [n]]<br />
= 0<br />
E[u[n − k]e ∗ [n]] = 0, k = 0, 1, · · · , K − 1<br />
[ (<br />
⇒<br />
E<br />
u[n − k]<br />
⇒ E [u[n − k]d ∗ [n]] =<br />
K−1<br />
∑<br />
l=0<br />
d ∗ [n] −<br />
K−1<br />
∑<br />
l=0<br />
w l u ∗ [n − l]<br />
w l E [u[n − k]u ∗ [n − l]] ,<br />
which is called ”Wiener-Hopf equation”. Note that in the Wiener-Hope equation, the left-hand side term is<br />
cross-correlation between u[n−k] and d[n] <strong>for</strong> a lag of −k and the right-hand side term is auto-correlation<br />
function of the filter output <strong>for</strong> a lag of l − k. Let us express these as<br />
φ uu (l − k) = E [u[n − k]u ∗ [n − l]]<br />
φ ud (−k) = E [u[n − k]d ∗ [n]]<br />
Hence, the Wiener-Hopf equation can be rewritten as<br />
Let us define<br />
K−1<br />
∑<br />
l=0<br />
w k φ uu (l − k) = φ ud (−k), k = 0, 1, · · · , K − 1<br />
u[n] = [u[n], u[n − 1], · · · , u[n − K + 1]] T ,<br />
and define the correlation matrix R as<br />
⎡<br />
⎤<br />
φ uu (0) φ uu (1) · · · φ uu (K − 1)<br />
φ ∗ uu(1) φ uu (0) · · · φ uu (K − 2)<br />
R = ⎢<br />
.<br />
⎥<br />
⎣<br />
.<br />
⎦<br />
φ ∗ uu(K − 1) φ ∗ uu(K − 2) · · · φ uu (0)<br />
)]<br />
= 0.<br />
3
and<br />
T = E[u[n]d ∗ [n]]<br />
= [φ ud (0), φ ud (−1), · · · , φ ud (1 − K)] T .<br />
Then, Wiener-Hopf equation can be rewritten as<br />
RW = T<br />
Finally, the Wiener solution is given as<br />
W = R −1 T<br />
Figure 3: Transversal linear Wiener filter.<br />
• Now in our <strong>MIMO</strong> case which is of our interest, when we apply the Wiener solution, we have<br />
where<br />
ˆx 1 =<br />
ˆx 2 =<br />
.<br />
x NT ˆ =<br />
Then, from the Wiener solution, w l is given as<br />
∑N R<br />
wk 1∗ r k = w 1H · r<br />
k=1<br />
∑N R<br />
wk 2∗ r k = w 2H · r<br />
k=1<br />
∑N R<br />
w N R∗<br />
k<br />
r k = w N RH · r<br />
k=1<br />
w l = [w l 1, w l 2, · · · , w l N R<br />
] T .<br />
w l = R −1 T l .<br />
Now let us find R and T . Note that R = [rr H ] which is N R × N R matrix given as<br />
⎡<br />
E[r 1 r1] ∗ E[r 1 r2] ∗ · · · E[r 1 r ∗ ⎤<br />
N R<br />
]<br />
⎢<br />
⎥<br />
R = ⎣<br />
.<br />
⎦<br />
E[r NR r1] ∗ E[r NR r2] ∗ · · · E[r NR rN ∗ R<br />
]<br />
where<br />
r k = g k1 x 1 + g k2 x 2 + · · · + g kNT x NT + n k<br />
= g T k x + n k<br />
4
Hence,<br />
E[r k r ∗ l ] = E[(g k1 x 1 + · · · + g k x NT + n k ) · (g ∗ l1x ∗ 1 + · · · + g ∗ lN T<br />
x ∗ N T<br />
+ n ∗ l )]<br />
= E[g k1 g ∗ l1|x 1 | 2 + g k2 g ∗ l2|x 2 | 2 + · · · + g kNT g ∗ lN T<br />
|x NT | 2 + g k1 g ∗ l2x 1 x ∗ 2 + · · · + g kNT g lNT −1x ∗ N T −1 + n k n ∗ l ]<br />
Since E[x 1 x ∗ 2] = 0 and g k and g l are known, it can be rewritten as<br />
E[r k r ∗ l ] = g k1 g ∗ l1E[|x 1 | 2 ] + g k2 g ∗ l2E[|x 2 | 2 ] + · · · + g kNT g ∗ lN T<br />
E[|x NT | 2 ] + σ 2 δ(k − l)<br />
Note that E[|x l | 2 ] = P is the signal power <strong>for</strong> all k. Then,<br />
E[r k r ∗ l ] = P ( g k1 g ∗ l1 + · · · + g kNT g ∗ lN T<br />
)<br />
On the other hand,<br />
⎡<br />
= P [ gl1, ∗ gl2, ∗ · · · , glN ∗ ] T · ⎢<br />
⎣<br />
= P (g H l · g k ) + σ 2 δ(k − l).<br />
g k1<br />
g k2<br />
.<br />
.<br />
g kNT<br />
T l = E[r · x ∗ l ]<br />
⎡ ⎤<br />
r 1 · x ∗ l<br />
⎢<br />
= E ⎣<br />
r 2 · x ∗ ⎥<br />
l ⎦<br />
.<br />
.r NR · x ∗ l<br />
⎡ ⎤<br />
g l1 P<br />
g l2 P<br />
= E ⎢<br />
⎣<br />
⎥<br />
. ⎦<br />
g lNT P<br />
= P g l ,<br />
⎤<br />
⎥<br />
⎦ + σ2 δ(k − l)<br />
where we note that r k = g k1 x 1 + g k2 x 2 + · · · + g kNT x NT . Now the <strong>MMSE</strong> solution is<br />
w l = R −1 T l<br />
⎛ ⎡<br />
g H 1 · g 1 g H 2 · g 1 · · · g H ⎤ ⎞<br />
N R · g 1<br />
1<br />
g H 1 · g 2 g H 2 · g 2 · · · g H N R · g 2<br />
= ⎜ ⎢<br />
⎝P<br />
⎣<br />
⎥<br />
.<br />
⎦ + σ2 ⎟<br />
⎠<br />
g H 1 · g N R<br />
g H 2 · g 2 · · · g H N R · g NR<br />
⎛⎡<br />
g H 1 · g 1 g H 2 · g 1 · · · g H ⎤ ⎞−1<br />
N R · g 1<br />
g H 1 · g 2 g H 2 · g 2 · · · g H N R · g 2<br />
= ⎜⎢<br />
⎝⎣<br />
⎥<br />
.<br />
⎦ + σ2<br />
⎟<br />
P ⎠<br />
g H 1 · g NR<br />
g H 2 · g 2 · · · g H N R · g NR<br />
We can rewrite the optimal weight vector in matrix <strong>for</strong>m denoted as W as<br />
⎡<br />
⎤<br />
∣ ∣ ∣<br />
W =<br />
⎢ w 1 w 2 · · · w NR<br />
⎥<br />
⎣<br />
⎦<br />
∣ ∣ ∣<br />
(<br />
= G G · G H + 1 ) −1<br />
SNR I N T<br />
,<br />
5<br />
−1<br />
g l<br />
P g l
or<br />
W H =<br />
(<br />
G H G + 1<br />
SNR I N T<br />
) −1<br />
G H<br />
6