Download as pdf or txt
Download as pdf or txt
You are on page 1of 7

MIMO Receive Antenna Subset Selection for MIMO System

2 2+2
Green Team

Matlab Simulation
May 3, 2005

Abstract
Matlab simulation results with dierent parameters both in baseband and passband are given out. After comparison of dierent methods, we choose a Digital Phase Locked Loop (DPLL) for the frequency oset estimator, Joint Maximum Likelihood Detector with soft decision, Prediction Combined Maximum Likelihood Channel Estimator, and the Minimum Bit Error Rate (MBER) criteria for antenna subset selection. Only analogy C language descriptions of the Matlab implementation will be outlined below. For theoretical descriptions of these algorithms, please turn to the report System Algorithm Description [1].

Simulation Model and Algorithms

There are several dierent algorithms applied to detection, antenna subset selection and synchronization. These algorithms description of the model together with Matlab implementation tricks are described below.

1.1

Channel Model

Rayleigh block fading with Additive White Gaussian Noise (AWGN) are exploited in the system model for channel simulation. As the indoor environment does not change much, we just change the channel quite slowly.

Figure 1: Constellation of 16-QAM with Gray mapping

Page 1

MIMO 2 (2+2)

Matlab Simulation

1.2

Modulator and Demodulator

We use a 16-QAM modulator with Gray mapping for the data and BPSK for guard symbols and training sequences. For the inverse mapping from symbols to bits, we use soft decision based on Euclidean distance. The constellation of 16-QAM with Gray mapping is shown in Figure 1.

1.3

Detector

There are three dierent joint detectors exploited in the Matlab simulation system: Joint ML, Joint MMSE and Joint Zero-Forcing. 1.3.1 Joint Maximum Likelihood Detector

Exhaustive search through all combinations of s to nd the one which minimizes the value of Yr Hr s , described as follows: for the number k received symbol in Yr for all combinations of s = [s1 s2] newnorm = norm(Yr-Hr*s) if newnorm < normmin normmin = newnorm S_out(k) = s end if end for end for 1.3.2 Joint Minimum Mean Square Error Detector

We need the estimated signal to noise ratio (SNR) in JMMSE detector. Data in one frame could be detected at the same time. G_JMMSE = inv(Hr*Hr+10^(-SNR/10.0)*eye(2))*Hr; S_out = G_JMMSE * Yr; 1.3.3 Joint Zero Forcing Detector

Zero Forcing is much easier even without estimation of the SNR. G_ZF = inv(Hr*Hr)*Hr; S_out = G_ZF * Yr;

1.4

Antenna Subset Selection

Three dierent antenna subset selection algorithms have been implemented. There are two pairs of receive antennas and only one antenna can be used from each pair. Thus, there are totally four choices with the antenna subset selection. The optimal selection method, an exhaustive search, becomes practical. Two exhaustive search methods based on dierent criteria and one Lazy method are exploited. 1.4.1 Exhaustive Search with Minimum Bit Error Rate Criteria

At high SNR, the error probability of the ML detector can be upper bounded by the union bound, which is dominated by the minimum Euclidean distance d2 of the received constellation. Minimin mizing the union bound of error probability is equivalent to maximizing d2 . Hence the selection min which maximizes this d2 will be the best choice. min Page 2

MIMO 2 (2+2)

Matlab Simulation

for i th choice of the four antenna subset combinations for all the combinations of (s1-s2) new_d = norm(Hr(i)*(s1-s2)) if new_d < d_min d_min = new_d end if end for if d_min > d_max d_max = d_min H_out = Hr(i) end if i++ end for While the exhaustive search over all possible combinations of (s1-s2) would be quite time consuming since there are (74 1) candidates [1]. Note that s, s and js, where = 0 is a real scalar and j = 1, will give out the same selection result. Hence, the computational complexity could be reduced further. The searching set Sout of s could be formed as below: count=1 S_out(count)=delta_S(1) for i th choice in all combinations of delta_S = (s1-s2) keep_this = 1 for (j=1;j<=count;j++) Div = delta_S(i)/S_out(j) //vector division, treat 0/0 smartly if Div(1) == Div(2) // Div is a 2X1 vector if abs(Div)< 1 S_out(j) = delta_S(i) end if keep_this = 0 break end if end for if keep_this == 1 S_out(++count) = delta_S(i++) end if end for The resulting searching set Sout only contains 404 elements instead of (74 1). 1.4.2 Exhaustive Search with Maximum Mutual Information Criteria

We need estimation of SNR while only search on four choices. for i th choice of the four antenna subset combinations new_r = norm(eye(2) + SNR*Hr(i)*Hr(i)) if new_r > max_r max_r = new_r r = i++ end if end for

Page 3

MIMO 2 (2+2)

Matlab Simulation

1.4.3

Lazy Switcher

Switch stays still until the estimation of SNR is lower than a threshold.

1.5

Channel Estimation

Since we switch twice in every frame [1], we have to estimate the channel by training sequences two times. The estimation will be carried out based on Maximum Likelihood criteria with prediction as optional choice. 1.5.1 Maximum Likelihood Estimator

Hr = Yr*S*inv(SS) 1.5.2 Prediction Combined ML Estimator

Using some kind of iteration to modify the output of ML estimator. lambda = 0.95 // real number between 0 and 1. for i th frame Hr(i) = Yr*S*inv(SS) Hr(i) = lambda*Hr(i-1) + lambda*Hr(i) end for

1.6

Frequency Oset Estimation

Two methods can be used to estimate the exact frequency of the received signal on the intermediate frequency. 1.6.1 Digital Phase Lock Loop

When the frequency of the local oscillator at the receiver is not identical with the frequency of received signal, there will be a frequency oset on the intermediate frequency at the receiver. The inphase part of the received signal could be represented as rI (n) = sI (n) cos(n ), where n = 2nf . The frequency oset f could be easily found in this way. Please turn to [2] for details. 1.6.2 Zero Crossing Counter

By counting the number of zero-crossing points of a sinusoid signal in a certain period, one can roughly estimate the frequency of the input signal. // find the sign of the sequence s_sign = sign(pilot_seq) // subtract the previous value from the next, non-zero means zero-crossing zero_cross = ((s_sign(2:end)-s_sign(1:end-1))~=0) // count the number of zero-crossing points N_cross = sum(zero_cross) // time duration of the selected sinusoid sequence T_sin = length(zero_cross)/Fs; // there are two zero-crossing points in each period. thus divided by 2 Fc_hat = (N_cross-1)/(2*T_sin);

Page 4

MIMO 2 (2+2)

Matlab Simulation

Baseband Simulation

The baseband simulation based on complex signals could evaluate almost all of the properties of the whole system at a quite low computational complexity. The simulation results with dierent detectors and antenna subset selections are shown in Figure 2.

Figure 2: BER vs. EbN0 with dierent detectors The ML detector is always the best one in our simulation. Since the frequency oset is not implemented in the baseband simulation model, the dierence of dierent antenna selection methods have not been shown. This will be done in the passband simulation.

Passband Simulation

Passband simulation provide a good blue print of the system for the DSP implementation. It is much more complicated and time consuming while it could give a quite good simulation of the channel. When the channel varies slowly, the dierence of the channel does not appear. The simulation results with dierent detectors and antenna subset selections when the channel varies slowly are shown in Figure 3. When the channel changes fast, the MBER method performs better than MMI, while the whole system gives out randomized performance, as shown in Figure 4. Since this has not observed in the real channel simulation, probably it is the improper parameter setup in the model that cause this trouble. We will not examine it until we met in the real channel.

Page 5

MIMO 2 (2+2)

Matlab Simulation

Figure 3: BER vs. EbN0 when channel varies slowly

Figure 4: BER vs. EbN0 when channel varies fast

Page 6

MIMO 2 (2+2)

Matlab Simulation

Real Channel Simulation

The simulation results through real channel have shown that the Zero-Forcing detector works quite well. But the ML detector, optimal in the sense of Minimum Bit Error Rate, which always performs best in the Matlab simulation, performs a little worse than Zero-Forcing detector in the simulation through the real channel. The reason why it did so has not been found yet. Maybe the channel estimation is misadjusted by a scalar factor. This misadjustment wont bother the Zero-Forcing detector, but aect the ML detector much. We decide to implement the Zero-Forcing detector on the DSP board rst to make the whole system work and then modify it when the problem with ML detector is solved.

References
[1] Receive Antenna Subset Selection for MIMO System: System Algorithm Description, Jinfeng Du, Adrian Schumacher, Anders Lindgren, Loghman Andimeh, Maxime Maury, 2005.4.19, Department of Signals, Sensors and Systems, KTH. [2] Multiple Input Multiple Output (MIMO):Smart Antenna Over Radio, Kim Thanh Tung, Deep Prakash, Erik Bragnell, Per Kjellander, Amer Nezirovic, June 2,2003, Department of Signals, Sensors and Systems, KTH

Page 7

You might also like