DSP Applications for Wireless Communications: 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
Overview 1 MIMO Channel Equalisation 2 MATLAB Programming 3 Conclusions
System Model v s y s H W H y = Hs+v (1) y noisy N r-dimensional received vector s N t-dimensional transmit vector S N is assumed to be a spatially-uncorrelated and uniformly distributed complex random vector process with zero-mean and variance σ 2 s (i.e. R ss = E [ ss H] = σ 2 si Nt v noise vector with dimension N r 1 drawn from CN ( 0,σ 2 v), or equivalently R vv = E [ vv H] = σ 2 vi Nr H N r N t flat-fading channel with entries h ij are assumed i.i.d. complex Gaussian random variables with zero-mean and unit-variance E [ h ij 2] = 1, i.e., h ij CN (0,1)
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 ( 1H WZF H = H+ = H H) H H, (2) and its output as s ZF = W H ZF y = s+ (H H H) 1H H v (3) The error covariance matrix is therefore given by Φ ZF = E [ ( s ZF s)( s ZF s) H] ( 1 = σv 2 H H) H (4) Noticeably, by referring to (4), it is evident that small eigenvalues of H H 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
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 W H. 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 [ ] ( [ ϕ = E e H e = tr E ee H]) (5) where the error vector e d = s s = s W H y. Minimisation of ϕ leads to the Wiener-Hopf equation WMMSE H 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 [ ey H] = 0. After some algebraic manipulation, the linear MMSE-sense filter is given by ( ) 1 WMMSE H = H H H+ σ2 v σs 2 I Nt H H (7)
MMSE Equaliser (cont d) Similar to (4) the error covariance matrix using the MMSE filter in (7) is given as ( ) 1 Φ MMSE = σv 2 H H H+ σ2 v σs 2 I Nt (8) 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 [ ] E s 2 2 SNR = [ ] = tr(rss) E v 2 tr(r = σ2 sn t 2 vv) σvn 2 = P budget/n 0 (9) r where P budget is the total transmit power budget and N 0 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 of entries σ2 v σs 2, 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.
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;.
MATLAB Programing (cont d) 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 );.
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 σ 2 v/σ 2 s 1 10 0 Nt = 4, Nr = 4, NumChan = 300 ZF MMSE 10 1 10 2 BER 10 3 10 4 0 5 10 15 20 25 30 SNR [db]
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.