You are on page 1of 10

MIMO Channel Equalisation MATLAB Programming Conclusions

DSP Applications for Wireless Communications:


Linear Equalisation of MIMO Channels

Dr. Waleed Al-Hanafy


waleed alhanafy@yahoo.com
Faculty of Electronic Engineering, Menoufia Univ., Egypt

Digital Signal Processing (ECE407) Lecture no. 5

August 10, 2011

Dr. Waleed Al-Hanafy Digital Signal Processing (ECE407) Lecture no. 5


Linear Equalisation of MIMO Channels
MIMO Channel Equalisation MATLAB Programming Conclusions

Overview

1 MIMO Channel Equalisation

2 MATLAB Programming

3 Conclusions

Dr. Waleed Al-Hanafy Digital Signal Processing (ECE407) Lecture no. 5


Linear Equalisation of MIMO Channels
MIMO Channel Equalisation MATLAB Programming Conclusions

System Model
v

s y s
H WH

y = Hs + v (1)
y noisy Nr -dimensional received vector
s Nt -dimensional transmit vector S N is assumed to be a
spatially-uncorrelated and uniformly distributed complex random vector process
with zero-mean and variance s2 (i.e. Rss = E ssH = s2 INt 


v noise vector with dimension Nr 1 drawn from CN 0, v2 , or


equivalently Rvv = E vvH = v2 INr
 

H Nr Nt flat-fading channel with entries hij are assumed i.i.d.


 complex
Gaussian random variables with zero-mean and unit-variance E |hij |2 = 1, i.e.,


hij CN (0, 1)
Dr. Waleed Al-Hanafy Digital Signal Processing (ECE407) Lecture no. 5
Linear Equalisation of MIMO Channels
MIMO Channel Equalisation MATLAB Programming Conclusions

Zero-Forcing (ZF) Equaliser


The ZF approach is a very simple linear filter scheme that is accomplished by
computing the Moore-Penrose pseudo-inverse of the channel matrix, H+ . Accordingly,
nulling in the ZF criterion is equivalent to completely cancelling the interference
contributed by streams of other users (transmitting antennas). However, ZF receivers
generally suffer from noise enhancement. The ZF filter is therefore given by
 1
H
WZF = H+ = HH H HH , (2)

and its output as


 1
H
sZF = WZF y = s + HH H HH v (3)

The error covariance matrix is therefore given by


h i  1
ZF = E (sZF s) (sZF s)H = v2 HH H (4)

Noticeably, by referring to (4), it is evident that small eigenvalues of HH H will lead to


significant errors due to noise amplification. This, in fact, represents the main
drawback of the ZF filter design as it disregards the noise term from the overall design
and focuses only on perfectly removing the interference term from signal s
Dr. Waleed Al-Hanafy Digital Signal Processing (ECE407) Lecture no. 5
Linear Equalisation of MIMO Channels
MIMO Channel Equalisation MATLAB Programming Conclusions

Minimum Mean Square Error (MMSE) Equaliser


An improved performance over ZF can be achieved by considering the noise term in
the design of the linear filter WH . This is achieved by the MMSE equaliser, whereby
the filter design accounts for a trade-off between noise amplification and interference
suppression. The MMSE filter is obtained by solving for error minimisation of the error
criterion defined by h i  h i
= E eH e = tr E eeH (5)
d
where the error vector e = s s = s WH y. Minimisation of leads to the
Wiener-Hopf equation
H
WMMSE Ryy = Rsy (6)
This equation can also be obtained directly by invoking the orthogonality principle
which states that the estimate s achieves minimum mean square error if the error
sequence e is orthogonal
 to the observation y, i.e., their cross-correlation matrix has to
be the zero matrix E eyH = 0. After some algebraic manipulation, the linear
MMSE-sense filter is given by
1
v2

H
WMMSE = HH H + IN HH (7)
s2 t

Dr. Waleed Al-Hanafy Digital Signal Processing (ECE407) Lecture no. 5


Linear Equalisation of MIMO Channels
MIMO Channel Equalisation MATLAB Programming Conclusions

MMSE Equaliser (contd)


Similar to (4) the error covariance matrix using the MMSE filter in (7) is given as
1
2

MMSE = v2 HH H + v2 INt (8)
s
Obviously by comparing (8) and (4), the error rate of the MMSE solution MMSE is
less than its ZF counterpart ZF specifically at low SNR defined as
h i
E ksk22 tr (Rss ) 2 Nt
SNR = h i = = s2 = Pbudget/N0 (9)
E kvk 2 tr (Rvv ) v Nr
2

where Pbudget is the total transmit power budget and N0 is the total noise power at
the receiver. At high SNR, the second term in (8) will vanish, which leads to
asymptotic error performance similar to the ZF filter. Compared to the ZF filter in (2),
the MMSE filter in (7) can be viewed as a regularised expression by a diagonal matrix
v2
of entries s2
, which is equal to the reciprocal of the SNR in (9) for equal numbers of
transmit and receive antennas. This regularisation introduces a bias that gives a much
more reliable result than (2) when the matrix is ill-conditioned, A matrix is said to be
ill-conditioned if its condition number (the absolute ratio between the maximum and
minimum eigenvalues) is too large., and/or the estimation of the channel is noisy.
Dr. Waleed Al-Hanafy Digital Signal Processing (ECE407) Lecture no. 5
Linear Equalisation of MIMO Channels
MIMO Channel Equalisation MATLAB Programming Conclusions

MATLAB Programing

clc; clear all;


nt = 4; nr = 4; d = 1000; MinErrs = 100; MaxData = 1e6; chs = 10;
snr dB = 0:3:21; snr = 10.(snr dB/10); Lsnr = length(snr);
berZF = zeros(1,Lsnr); berMMSE = zeros(1,Lsnr);
for e = 1:chs
disp([ch num2str(e) / num2str(chs)]);
H = (randn(nr,nt)+sqrt(-1)*randn(nr,nt))/sqrt(2);
G ZF = inv(H*H)*H;
nErZF = zeros(1,Lsnr); nErMMSE = zeros(1,Lsnr); data = zeros(1,Lsnr);
for z = 1:Lsnr
disp([ step num2str(z) / num2str(Lsnr) : SNR(dB) = num2str(snr dB(z))]);
G MMSE = inv(H*H + (1/snr(z))*eye(nt))*H;
while((nErZF(z)<MinErrs || nErMMSE(z)<MinErrs) && data(z)<MaxData)
data(z) = data(z) + 2*nt*d;
a = randsrc(nt,d,[-1 1]) + sqrt(-1)*randsrc(nt,d,[-1 1]);
v = NoiseGen(nr,d,2/snr(z));
r = H*a + v; r zf = r; r mmse = r;
.

Dr. Waleed Al-Hanafy Digital Signal Processing (ECE407) Lecture no. 5


Linear Equalisation of MIMO Channels
MIMO Channel Equalisation MATLAB Programming Conclusions

MATLAB Programing (contd)

aTempZF = G ZF*r; aTempMMSE = G MMSE*r;


aHatZF = FnDecodeQAM(aTempZF,QPSK,1);
aHatMMSE = FnDecodeQAM(aTempMMSE,QPSK,1);
[dumy dumy nBerZF dumy] = FnSerBerQAM(a,aHatZF,4,gray);
[dumy dumy nBerMMSE dumy] = FnSerBerQAM(a,aHatMMSE,4,gray);
nErZF(z) = nErZF(z) + nBerZF;
nErMMSE(z) = nErMMSE(z) + nBerMMSE;
end
berZF(z) = berZF(z) + nErZF(z)/data(z);
berMMSE(z) = berMMSE(z) + nErMMSE(z)/data(z);
end
end
berZF = berZF/chs; berMMSE = berMMSE/chs;
semilogy(snr dB,berZF,k-s,snr dB,berMMSE,m-o); grid on
legend(ZF,MMSE); grid on; xlabel(SNR (dB)); ylabel(BER);
.

Dr. Waleed Al-Hanafy Digital Signal Processing (ECE407) Lecture no. 5


Linear Equalisation of MIMO Channels
MIMO Channel Equalisation MATLAB Programming Conclusions

Results
A 4 4 MIMO system with QPSK transmission is considered. It is clearly noted that
the MMSE filter outperforms its ZF counterpart and their BER performance converges
at higher SNR where the regularisation factor v2/s2  1

Nt = 4, Nr = 4, NumChan = 300
0
10
ZF
MMSE

1
10

2
10
BER

3
10

4
10

0 5 10 15 20 25 30
SNR [dB]

Dr. Waleed Al-Hanafy Digital Signal Processing (ECE407) Lecture no. 5


Linear Equalisation of MIMO Channels
MIMO Channel Equalisation MATLAB Programming Conclusions

Conclusions

Concluding remarks

Linear equalisation systems for linear MIMO systems is studied


Both ZF and MMSE equalisers are derived and analysed
Simulation results comparisons are shown

Dr. Waleed Al-Hanafy Digital Signal Processing (ECE407) Lecture no. 5


Linear Equalisation of MIMO Channels

You might also like