1. 01 November 2016
1
SIMULATION AND PERFORMANCE ANALYSIS OF A
MIMO SYSTEM WITH SPATIAL MULTIPLEXING IN THE
PRESENCE OF POLARIZATION DIVERSITY
Naveen Bhimappa Kori
Dept. of Electrical Engineering
University of Texas, Arlington, TX 76019
Abstract—In practice the antennas in a MIMO system
need to be spaced sufficiently apart for a reliable
performance measured in terms of symbol error rate.
However, dual polarized antennas can be used in cases
where spacing constraints are too rigid. These dual
polarized antennas operate with orthogonally polarized
waves. Here, we will see how to simulate the MIMO system
with dual polarized antennas using MATLAB and analyze
the performance of the system.
I. INTRODUCTION
Recent studies have shown that the usage of multiple
antennas both at the transmitting and receiving end
improves the capacity of the system.
The MIMO is one such system that utilizes the
diversity of the channel to enhance the performance of
the system, which is known as spatial multiplexing. Since
the system’s underlying principle depends on the
diversity of the channel, it would be required that the
antennas at either the transmitting or receiving end are
placed wide enough so that the fading channels are not
correlated, but practically the channels are not completely
independent of each other and exhibit certain fading
correlation. Hence a correlation threshold of 0.5 to 0.7 is
defined in Engineering practice. In cases where the
minimum antenna spacing cannot be achieved, dual
polarized antennas with orthogonal polarization can be
made use of. Here we define a simple model for the
channel considering the spatial correlation fading and the
cross-polarization discrimination (XPD). The channel is
assumed to be Rayleigh fading channel and the symbols
under consideration are QPSK modulated. We then
perform a joint detection on the transmitted symbols
under the influence of the channel perturbations and
Additive White Gaussian Noise (AWGN). We repeat the
procedure for different SNR values and evaluate the
performance by calculating the symbol error rate.
II. MOTIVATION
The fundamental concept underlying MIMO system is
the idea of splitting a data stream into several streams
transmitted in parallel over individual subchannels.
The capacity of a system where the data stream is
divided into r parallel streams is simply the sum of the
individual subchannel capacities and, therefore, reads
as
where PT is the transmitted power and σn
2
is the variance
of noise each subchannel perturbs the signal with.
Asymptotically, the capacity becomes a linear function of
the transmit power. If all the subchannels are
independent, then such a MIMO channel is usually
referred to as being diagonal. However, in practice
MIMO channels rarely are diagonal, nor is the number of
data streams equal to the number of transmit or receive
antennas, as the algebraic rank of the MIMO channel
dictates the number of data streams which are supported
for simultaneous transmission. Now, let us define the
channel model we will be using for the simulation
purpose.
III. THE CHANNEL MODEL
We consider a system with one dual polarized
transmitter and one dual polarized receiver. The relation
between the received signal vector and the transmitted
symbols is given as
where x = [x0 x1]T
is the transmitted symbol vector,
2. 01 November 2016
2
r = [r0 r1]T
is the received symbol vector, E being the
energy of the transmitted symbols and n being the
complex valued Gaussian noise vector.
H is the channel matrix with the elements indicating
the co and cross polarized components, cross correlation
and cross coupling of energy from one polarization to
another polarization state. Since the channel is Rayleigh
fading the channel matrix elements are Gaussian random
variables with zero mean. The correlation between the
elements of H and variances depend on the channel
condition and choice of polarizations, respectively.
We assume that E[|h00|]2
= E[|h11||]2
= 1 and E[|h01|]2
=
E[|h10||]2
= α, where 0 < α ≤ 1 depends on the XPD.
Furthermore, the correlation coefficients are defined as
E[h00 h01] = E[h10 h11] = √α t and E[h00 h10] = E[h101h11] =
√α r. For the simulation purpose we have considered the
following values of α = 0.4, r = 0.3 and t = 0.5 and the
noise expectation E[n nH
] = σ2
In ,where In is the 2x2
identity matrix.
IV. SIMULATION
Now we will have a look at the steps followed to
simulate such a MIMO system. First, we generate the
matrix coefficients along with symbol vectors and then
add AWGN noise to the symbols after which we perform
optimal detection on the noise corrupted symbols. We run
these trials for a very large number of (around 2×10^4
)
different channel matrices and 11 different SNR values
from 0 to 20 in steps of 2 to get acceptable results for the
performance.
We start by creating a channel matrix with
coefficients that are complex random variables with
Gaussian distribution and then transform it into a
correlated matrix by using singular value decomposition
of the autocorrelation matrix and we have already seen
how the elements of the correlation matrix are obtained.
We create all possible symbol combinations of the QPSK
symbols which could be transmit using the two antennas,
this serves as our constellation point reference which we
will see later being used in the detection procedure to
identify which of the symbols was transmitted. Since two
symbols are transmitted simultaneously, we generate two
random symbols from the above defined constellation
and normalize them to have unit energy. In a similar
fashion, we create the noise vector which are again
Gaussian distributed and have zero mean. The amplitude
of the noise is calculated depending on the SNR value
using the below equation.
where σn is the noise amplitude and SNR is measured
in dB. The symbol vectors created above will then be
multiplied with the channel matrix and added to them is
the complex valued white Gaussian noise. These symbols
are then captured as received signal vectors. Another set
of vectors are created by multiplying all the symbols
from the constellation points with the channel matrix
which forms the reference point against which the
distance of the received symbol can be measured. The
differences between both the transmitted symbols and
their respective constellation points is evaluated. Based
on the maximum likelihood detection rule the symbol in
the constellation with the minimum distance from the
received vector is decided as the received symbol. One
thing to note here is that we are performing a joint
detection, i.e., we are considering the minimum distance
of both the symbols from their respective constellations
and the decision is made in favor of that pair which has a
minimum value of distance from the received vector.
We then check if the decision made was correct by
comparing it with the transmitted symbol and the symbol
error count is recorded. This procedure is repeated for all
the different channel coefficients under each SNR value.
Finally, we plot a graph of the symbol error count
versus the SNR values on the semi logarithmic scale,
which gives us the performance of the system as a
measure of the probability of symbol error.
3. 01 November 2016
3
Below is the MATLAB code used for the simulation along with the plot of the SNR Vs Symbol error count.
clear all;
clc;
N = 20000;
M = 4;
% Creation of H Matrix
H = zeros(N,M);
H_correlated = zeros(N,M);
H = (rand(N,M)+j*rand(N,M))/sqrt(2);
a = 0.4
t = 0.5;
r = 0.3;
R = [1 sqrt(a)*t sqrt(a)*r 0;
sqrt(a)*t a 0 sqrt(a)*r;
sqrt(a)*r 0 a sqrt(a)*t;
0 sqrt(a)*r sqrt(a)*t 1];
[U,D] = eig(R);
H_transform = sqrt(D)*(U).';
H_correlated = H * H_transform;
%Symbol combinations
aa = (1+j)/sqrt(2);
bb = (1-j)/sqrt(2);
cc = (-1+j)/sqrt(2);
dd = (-1-j)/sqrt(2);
Symbol_matrix = [aa aa;aa bb;aa cc;aa dd;
bb aa;bb bb;bb cc;bb dd;
cc aa;cc bb;cc cc;cc dd;
dd aa;dd bb;dd cc;dd dd];
SNR = [0:2:20];
for i = 1:11
noise_amp = (10^-(SNR(i)/20))*sqrt(2);
for k = 1:N
symbol_tx = (sign(randn(2,1))+j*sign(randn(2,1)))/sqrt(2);
noise = noise_amp*(sign(randn(2,1))+j*sign(randn(2,1)))/sqrt(2);
h_matrix = reshape(H_correlated(k,:).',2,2).';
symbol_rx = h_matrix * symbol_tx + noise;
r_ref = symbol_rx * ones(1,16);
diff_r = r_ref - (h_matrix * Symbol_matrix.');
dist_r = sum((diff_r).*conj(diff_r));
[min_r,ind_r] = min(dist_r);
sym_est(1,k) = sign(abs(Symbol_matrix(ind_r,1) - symbol_tx(1,1)));
sym_est(2,k) = sign(abs(Symbol_matrix(ind_r,2) - symbol_tx(2,1)));
end
sym_err_cnt(i) = sum(sum(sym_est))/(2*N);
end
semilogy(SNR,sym_err_cnt);
grid on;
xlabel('SNR in dB');
ylabel('Symbol error count');
title('Performance of the MIMO system');