let x represent the space of signals that can be transmitted ... · web viewlet x represent the...

38
The University of Texas at Arlington Department of Electrical Engineering Project Report Project Report EE 5364 – Information theory and coding Spring 2011 Submitted by:

Upload: others

Post on 26-Jan-2021

3 views

Category:

Documents


0 download

TRANSCRIPT

The University of Texas at Arlington

Department of Electrical Engineering

Project Report

EE 5364 – Information theory and coding

Spring 2011

Submitted by:

CHIRAG PANDYA: 1000722427

VAIBHAV PATANKAR: 1000734804

CONTENTS

1) Introduction

2) Problem Statement

3) Channel Capacity

4) Channel Side Information

5) Antenna Diversity

6) Power Control Schemes

7) MATLAB Simulation Results

8) Conclusion

9) MATLAB Code

10) References

1. INTRODUCTION:

Mobile phone technology has become an integral part of our lives today. We use it for trivial tasks such as making calls, listening to music and web browsing as well as for more significant purposes like video conferencing etc. Mobile phone technology is growing at incredibly faster rate. In 2008 there were 4,100 million mobile cellular subscriptions in the world. IS-95 and CDMA 2000 are well known mobile phone technologies – both use CDMA (Code Division Multiple Access) as an underlying channel access method.

Comparison of IS-95 and CDMA 2000

2. PROBLEM STATEMENT:

Rate versus Power Control in IS-95 and CDMA2000

CDMA2000 1×EV-DO (Enhanced Version Data Optimized) is a cellular data standard operating on the 1.25MHz bandwidth. In this project, you (a team up to 3 graduate students) are requested to evaluate and compare rate versus power control in IS-95 (a CDMA standard for 2G wireless communications) and CDMA2000 1×EV-DO.

Rayleigh fading channel is assumed with Doppler shift 100Hz (the channel gain will be provided). Please evaluate rate versus power control for the following different scheme and write a technical report to compare these approaches.

Using channel inversion power control for IS-95

Using equal power allocation for CDMA 2000

Using waterfilling power control for CDMA2000

For each scheme, please use SISO, SIMO, MISO, and MIMO for IS-95 and CDMA2000. Please choose M=2, and M=4.

Consider two cases:

Full Channel Side Information (CSI)

Channel Side Information at the Receiver (CSIR)

3. CHANNEL CAPACITY:

Let X represent the space of signals that can be transmitted, and Y the space of signals received, during a block of time over the channel. Let

be the conditional distribution function of Y given X. Treating the channel as a known statistic system, pY | X(y | x) is an inherent fixed property of the communications channel (representing the nature of the noise in it). Then the joint distribution

of X and Y is completely determined by the channel and by the choice of

the marginal distribution of signals we choose to send over the channel. The joint distribution can be recovered by using the identity

Under these constraints, next maximize the amount of information, or the message, that one can communicate over the channel. The appropriate measure for this is the mutual information I(X;Y), and this maximum mutual information is called the channel capacity and is given by

AWGN channel:

If the average received power is  [W] and the noise power spectral density is N0 [W/Hz], the AWGN channel capacity is

 [bits/Hz],

4. CHANNEL SIDE INFORMATION:

CSIR is the scheme in which receivers can track the channel but the transmitter does not have access to the channel realizations. All the above cases are with respect to CSIR.

Full CSI is the scheme with tracking of channels of all the users at the receiver and all the transmitters, here we can allocate power dynamically to the users as a function of the channel states, the sum of capacities for such scheme is as follows:

Subject to powers being non-negative and the power constraint on each user:

The optimal Power allocation policy is (where λ is chosen to meet the sum power constraint equation as above):

The resulting sum capacity is:

where k*(h) is the index of the user with the strongest channel at the joint channel state h

5. ANTENNA DIVERSITY:

Antenna diversity, also known as space diversity, is any one of several wireless diversity schemes that use two or more antennas to improve the quality and reliability of a wireless link. Often, especially in urban and indoor environments, there is no clear line-of-sight (LOS) between transmitter and receiver. Instead the signal is reflected along multiple paths before finally being received. Each of these bounces can introduce phase shifts, time delays, attenuations, and distortions that can destructively interfere with one another at the aperture of the receiving antenna. Antenna diversity is especially effective at mitigating these multipath situations. This is because multiple antennas offer a receiver several observations of the same signal. Each antenna will experience a different interference environment. Thus, if one antenna is experiencing a deep fade, it is likely that another has a sufficient signal. Collectively such a system can provide a robust link. While this is primarily seen in receiving systems (diversity reception), the analog has also proven valuable for transmitting systems (transmit diversity) as well.

The antenna system characterization with respect to the number of antennas used at transmitter and receiver can be described as follows:

1. SISO : Single-Input Single-Output

2. SIMO : Single-Input Multiple-Output

3. MISO : Multiple-Input Single-Output

4. MIMO: Multiple-Input Multiple-Output

5.1 SISO: Single-Input Single-Output

In this case transmitter and receiver both have single antenna. The signal is transmitted using single channel. The basic SISO communication system can be described as follows

SISO Communication System

Here are as shown in figure the channel used has the channel gain h1. This model is the very basic simulation model of communication system. Here we used channel with the gain h1 as follows:

Where, g is the channel coefficient.

5.2 SIMO: Single-Input Multiple-Output

In this case transmitter have single antenna and receiver have multiple antennas. In here we consider two and four antennas at receiver side. The signal is transmitted using single channel. Below figure shows the basic SIMO communication system.

SIMO Communication Systems

Here we used channel with the gain as h11, h12, h13, h14.

5.3 MISO: Multiple-Input Single-Output

In this case transmitter has multiple antennas (2 antennas and 4 antennas in our case) and receiver has one antenna. In here we consider two and four antennas at receiver side. The signal is transmitted using single channel. Below figure shows the basic MISO communication system.

MISO Communication Systems

Here are we used channel with the gain as h11, h21, h31, h41.

5.4 MIMO: Multiple-Input Multiple-Output

In this case transmitter and receiver both have multiple antennas (2 antennas and 4 antennas in our case). In here we consider two and four antennas at receiver side. The signal is transmitted using single channel. Below figure shows the basic MIMO communication system.

MIMO Communication Systems

6. POWER CONTROL SCHEMS:

6.1 Equal Power Allocation:

Usually, when transmitter doesn’t know the channel, Equal Power Allocation is used. This was given by Dr. Alamouti. In this scheme if we have ‘n’ number of channels available for communication, the total power will be given by “P/n” where P shows the total power. In this case, transmitter doesn’t know the channel and hence the power allocation is independent from each other irrespective of the individual channel performance.

Let us think of a MISO (as shown in fig) system having 2 transmitter antennas and 1 receiver antenna. We are using the equal power allocation system for assignment of the power to each channel.

For this system,

Total Power = P

Gain of the 1st channel = h1

Gain of the 2nd channel = h2

Power assigned to each of the channel = P/2

Power spectral density for noise for each channel = N0

SNR = P/N0 and

||h||2 = ||h1||2 + ||h2||2

The channel capacity for this system would be,

C = log(1 + ||h||2 P/2N0 ) bits/s/Hz

Therefore,C = log(1 + ||h||2 SNR/2 ) bits/s/Hz

Which shows when the transmitter doesn’t have the channel information; it transmits the power in all directions rather than concentrating on a specific direction.

Now instead of two if we have L number of transmitting antenna, the transmitted power would be P/L. And hence, the above equation will become generalized,

C = log(1 + ||h||2 SNR/L ) bits/s/Hz

So, outage probability would be, Pout(R) = Pr {log(1 + ||h||2 SNR/L ) < R}

The disadvantage of this scheme is that we don’t worry about the behaviour of the channel and just allocate the power equally to all the channels. But for Rayleigh distributed random variables which are i.i.d., h1, h2,......,hL, this scheme is optimum and gives best outage probability. Now, we will discuss another power allocation scheme which is Channel Inversion scheme in the next section.

6.2 Channel Inversion Scheme:

Now, when the transmitter knows the channel, we can control the power which is going to be supplied as per the channel gain. In this case, we keep received SNR as a constant entity and hence vary power to do so. This technique is called channel inversion scheme. Here the transmitted power is an inverse of the channel gain. So, if the channel gain is high, we need to transmit small amount of power and if the channel gain is low, we need to transmit high amount of power making the system moderate.

Let us take the same example as above where,

Total Power = P = sum(Pi)

Gain of the 1st channel = h1

Gain of the 2nd channel = h2

Power assigned to channel 1 = 1/||h1||2

Power assigned to channel 1 = 1/||h2||2

Power spectral density for noise for each channel = N0

SNR for each channel= constant and

||h||2 = ||h1||2 + ||h2||2

The channel capacity for this system would be,

C(i) = log(1 + ||h||2 / ||hi||2 N0 ) bits/s/Hz

Hence, in this case our capacity is constant as the SNR is a constant entity. So, this is the sub optimal scheme by which we can get moderate performance depending upon the channel performance. Now in the very next section, we will focus on optimum power allocation scheme which is called “Waterfiling”.

6.3 Waterfilling Scheme:

We can find the optimum power allocation for the channel using Waterfilling scheme. When the channel is known, we take N0/|hn2| values plotted as the subcarrier indices i.e. n=0,1,.....,N-1. Then we find the graph shown in fig. 2. So, as shown in fig.2 we are supposed to fill the “water” into the empty vessels up to some defined level which is the height of the vessel. Some bars in the graph are higher than the height of the vessel. In this case we pour nothing. Actually speaking, the water poured in the vessel is the assigned power to the channel and the vessel is defined as Noise to Carrier ratio. So, when the noise is maximum, i.e. the channel performance is poor, we transmit minimum amount of the power and when the noise is very less, i.e. the channel performance is very high, we transmit maximum power. And hence, transmitter takes advantage of the better channel conditions.

Waterfilling Schemes

Now if we take the same example we used earlier then,

Total Power = P = sum(Pi)

Gain of the 1st channel = h1

Gain of the 2nd channel = h2

Power assigned to individual channel Pi = ((1/ lambda) – (N0/|hi|2))+

Where, 1/ lambda = height of the vessel

Power spectral density for noise for each channel = N0

The channel capacity for this system would be,

C(i) = log(1 + ||h||2 Pi / N0 ) bits/s/Hz

So, this scheme is precisely opposite to the channel inversion scheme. By doing dynamic power allocation this scheme ensures spending more power when channel is good and hence to boost the received power.

7. MATLAB SIMULATION RESULTS:

7.1 Channel Inversion Power Control in IS-95:

SISO [1x1]:

SIMO [1x2 and 1x4]:

MISO [2x1 and 4x1]:

MIMO [2x2and4x4]:

Comparison between All communication Systems for Channel Inversion:

7.2 Equal Power Allocation in CDMA:

MISO [2x1 and 4x1]:.

MIMO [2x2 and 4x4]:

Comparison of MISO and MIMO Systems for Equal Power Allocation System:

7.3 Water Filling Algorithm for CDMA-2000:

Comparison among Channel Inversion, Equal Power Allocation and Water Filling Algorithm:

8. CONCLUSION:

We have studied Channel Inversion Power Control method used in IS-95, Equal Power Allocation and Water-Filling methods both used for power control in CDMA-2000 considering Full Channel Side Information (CSI) and Channel Side Information at Receiver (CSIR) cases using M=2 and M=4. We conclude from all the MATLAB simulation results that the Water-Filling algorithm gives the maximum channel capacity hence the transmission rate among all power control methods. The Equal Power Allocation method gives the lowest performance and the Channel Inversion gives the moderate channel capacity at given transmission rate.

9. MATLAB CODE:

% Channel Inversion:

clc;

clear all;

close all;

load g11.mat; load g12.mat;

load g21.mat; load g22.mat;

%$$$$$$$$$$$$$$$$$$$$$

% SISO System : 1X1

%$$$$$$$$$$$$$$$$$$$$$

SNR_db = -15:15;

for index = 1:length(SNR_db)

SNR = 10^(SNR_db(index)/10); % Convert in to Watt

h1 = g22(1,1)'*g22(1,1); % h1 = |g|^2

p1 = 1/(h1); % By Channel Inversion

N1 = p1/SNR; % SNR = P/N => N = P/SNR

C_SISO(index) = log(1+(1/N1)); % C = log(1 + h*p/N)

end

%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

% SISO System : for 5000 Iterations

%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

SNR_db = -15:1:15;

C_SISO = 0;

for index = 1:length(SNR_db)

SNR = 10^(SNR_db(index)/10); % Convert in to Watt

C_SISO = 0;

C_TEMP = 0;

for i = 1:5000 % Iteration for 5000 coefficient

h(i) = g11(1,i)'*g11(1,i); % h = |g|^2

p(i) = 1/h(i); % Channel Inversion

N(i) = p(i)/SNR; % SNR = P/N => N = P/SNR

C_TEMP(i) = log(1+(1/N(i))); % C = log(1 + h*p/N)

C_SISO = C_TEMP(i) + C_SISO;

end

C_FINAL_SISO(index)= C_SISO/5000; % Average of all 5000 coefficients of channel

end

%$$$$$$$$$$$$$$$$$$$$$$

% SIMO System : M = 2

%$$$$$$$$$$$$$$$$$$$$$$

SNR_db = -15:15;

C_SIMO_1x2 = 0;

for index = 1:length(SNR_db)

SNR = 10^(SNR_db(index)/10); % Convert in to Watt

% h = |g|^2

h11 = g11(1,2)'*g11(1,2);

h12 = g12(1,1)'*g12(1,1);

% Channel Inversion

p11 = 1/(h11);

p12 = 1/(h12);

% SNR = P/N => N = P/SNR

N11 = p11/SNR;

N12 = p12/SNR;

% C = log(1 + h*p/N) => C = log(1 + 1/N)

C1 = log(1+(1/N11));

C2 = log(1+(1/N12));

% Take the max value as the system capacity

C_SIMO_1x2(index) = max(C1,C2);

end

%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

% SIMO System : for 5000 Iterations

%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

SNR_db = -15:15;

index=0;

C_FINAL_SIMO = 0;

for index = 1:length(SNR_db)

SNR = 10^(SNR_db(index)/10); % Convert in to Watt

C1_SIMO = 0; C2_SIMO = 0; C_TEMP = 0;

% Iteration for 5000 coefficient

for i = 1:5000

h11(i) = g22(1,i)'*g22(1,i); % Channel gain : h = |g|^2

h12(i) = g22(1,i)'*g22(1,i);

p11(i) = 1/(h11(i)); % Channel Inversion

p12(i) = 1/(h12(i));

N1(i) = p11(i)/SNR; % SNR = P/N => N = P/SNR

N2(i) = p12(i)/SNR;

C1_TEMP(i) = log(1+(1/N1(i))); % C = log(1 + h*p/N) => C = log(1 + 1/N)

C2_TEMP(i) = log(1+(1/N2(i)));

C1_SIMO = C1_TEMP(i) + C1_SIMO; % for 5000 values

C2_SIMO = C2_TEMP(i) + C2_SIMO;

end

C1_FINAL = C1_SIMO/5000;

C2_FINAL = C2_SIMO/5000;

% Taking the final channel capacity as the max of both values

C_FINAL_SIMO(index) = max(C1_FINAL,C2_FINAL);

end

%$$$$$$$$$$$$$$$$$$$$$$$

% SIMO System : M = 4

%$$$$$$$$$$$$$$$$$$$$$$$

SNR_db = -15:15;

for index = 1:length(SNR_db)

SNR = 10^(SNR_db(index)/10); % Convert in to Watt

% h = |g|^2

h11 = g11(1,2)'*g11(1,2);

h12 = g12(1,2)'*g12(1,2);

h13 = g21(1,2)'*g21(1,2);

h14 = g21(1,2)'*g22(1,2);

% Channel Inversion

p11 = 1/(h11);

p12 = 1/(h12);

p13 = 1/(h13);

p14 = 1/(h14);

% SNR = P/N => N = P/SNR

N11 = p11/SNR;

N12 = p12/SNR;

N13 = p13/SNR;

N14 = p14/SNR;

% C = log(1 + h*p/N) => C = log(1 + 1/N)

C1 = log(1+(1/N11));

C2 = log(1+(1/N12));

C3 = log(1+(1/N13));

C4 = log(1+(1/N14));

C = [C1 C2 C3 C4];

% Take the max value as the system capacity

C_SIMO_1x4(index) = max(C);

end

%$$$$$$$$$$$$$$$$$$$$$$$$

% MISO System : M = 2

%$$$$$$$$$$$$$$$$$$$$$$$$

SNR_db = -15:15;

C_MISO_2x1 = 0;

for index = 1:length(SNR_db)

SNR = 10^(SNR_db(index)/10); % Convert in to Watt

% h = |g|^2

h_MISO = [g11(1,1); g21(1,1)]' * [g11(1,1); g21(1,1)];

p_MISO = 1/(h_MISO); % Channel Inversion

N_MISO = p_MISO/SNR; % SNR = P/N => N = P/SNR

% C = log(1 + h*p/N) => C = log(1 + 1/N)

C_MISO_2x1(index) = log(1+(1/N_MISO));

end

%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

% MISO System : for 5000 Iterations

%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

SNR_db = -15:15;

C_FINAL_MISO = 0;

for index = 1:length(SNR_db)

SNR = 10^(SNR_db(index)/10); % Convert in to Watt

C_MISO = 0;

% Iteration for 5000 coefficient

for i = 1:5000

% Common coefficient for both channel g = [x y]

g_MISO = [g11(1,i) g12(1,i)];

h_MISO = g_MISO*g_MISO'; % h = |g|^2

p_MISO = 1/(h_MISO); % Channel Inversion

N_MISO = p_MISO/SNR; % SNR = P/N => N = P/SNR

C_TEMP = log(1+(1/N_MISO)); % C = log(1 + h*p/N)

C_MISO = C_TEMP + C_MISO; % Adding all 5000 values

end

% Taking average of 5000 values

C_FINAL_MISO(index) = C_MISO/5000;

end

%$$$$$$$$$$$$$$$$$$$$$$$

% MISO System : M = 4

%$$$$$$$$$$$$$$$$$$$$$$$

SNR_db = -15:15;

C_MISO_4x1 = 0;

for index = 1:length(SNR_db)

SNR = 10^(SNR_db(index)/10); % Convert in to Watt

% h = |g|^2

h_MISO = [g11(1,1); g12(1,1); g21(1,1); g22(1,1)]' * [g11(1,1); g12(1,1); g21(1,1); g22(1,1)];

p_MISO = 1/(h_MISO); % Channel Inversion

N_MISO = p_MISO/SNR; % SNR = P/N => N = P/SNR

% C = log(1 + h*p/N) => C = log(1 + 1/N)

C_MISO_4x1(index) = log(1+(1/N_MISO));

end

%$$$$$$$$$$$$$$$$$$$$$$$

% MIMO System : 2X2

%$$$$$$$$$$$$$$$$$$$$$$$

SNR_db = -15:15;

C_MIMO_2x2 = 0;

for index = 1:length(SNR_db)

SNR = 10^(SNR_db(index)/10); % Convert in to Watt

% Using SVD to convert 2X2 matrix into parallel channels

h_MIMO = [g11(1,1) g12(1,1); g21(1,1) g22(1,1)];

[m n] = eig (h_MIMO);

% h = |g|^2

h11 = n(1,1)'*n(1,1);

h22 = n(2,2)'*n(2,2);

% Channel Inversion

p11 = 1/(h11);

p22 = 1/(h22);

% SNR = P/N => N = P/SNR

N1 = p11/SNR;

N2 = p22/SNR;

% C = log(1 + h*p/N) => C = log(1 + 1/N)

C1 = log(1+(1/N1));

C2 = log(1+(1/N2));

% Adding all two parallel channels capacities

C_MIMO_2x2(index) = C1 + C2;

end

%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

% MIMO System : for 5000 Iterations

%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

SNR_db = -15:15;

C_FINAL_MIMO = 0;

for index = 1:length(SNR_db)

SNR = 10^(SNR_db(index)/10); % Convert in to Watt

C_MIMO=0;

% Iteration for 5000 coefficient

for i = 1:5000;

% Doing SVD to convert MIMO to Parallel

h_MIMO = [g11(1,i) g12(1,i); g21(1,i) g22(1,i)];

[m b] = eig (h_MIMO);

h11 = b(1,1)'*b(1,1); % Parallel Channel gain

h22 = b(2,2)'*b(2,2);

% Channel Inversion

p11 = 1/(h11);

p22 = 1/(h22);

% SNR = P/N => N = P/SNR

N1 = p11/SNR;

N2 = p22/SNR;

% C = log(1 + h*p/N)

C1_TEMP = log(1+(1/N1));

C2_TEMP = log(1+(1/N2));

% Adding all capacities for 5000 iterations

C_MIMO = C1_TEMP + C2_TEMP + C_MIMO;

end

C_FINAL_MIMO(index) = C_MIMO/5000; % Taking average over 5000 values

end

plot([-20:20], C_FINAL_MIMO,'g');

XLABEL('SNR');

YLABEL('Channel Capacity');

LEGEND('Equal Power Allocation','AWGN Capacity','Channel Inversion without constraint','Channel Conversion with contraint','Water Filling');

%$$$$$$$$$$$$$$$$$$$$$$

% MIMO System : 4x4

%$$$$$$$$$$$$$$$$$$$$$$

SNR_db=-15:1:15;

C_MIMO_4x4 = 0;

for index = 1:length(SNR_db)

SNR = 10^(SNR_db(index)/10); % Convert in to Watt

% Using SVD to convert 4X4 into parallel channel

h_MIMO_4X4 = [g11(1,1) g11(1,2) g11(1,3) g11(1,4); g12(1,1) g12(1,2) g12(1,3) g12(1,4); g21(1,1) g21(1,2) g21(1,3) g21(1,4); g22(1,1) g22(1,2) g22(1,3) g22(1,4)];

[m b] = eig(h_MIMO_4X4);

% h = |g|^2

h11 = b(1,1)'*b(1,1);

h22 = b(2,2)'*b(2,2);

h33 = b(3,3)'*b(3,3);

h44 = b(4,4)'*b(4,4);

%Channel Inversion

p11= 1/h11;

p22= 1/h22;

p33= 1/h33;

p44= 1/h44;

% SNR = P/N => N = p/SNR

N1 = p11/SNR;

N2 = p22/SNR;

N3 = p33/SNR;

N4 = p44/SNR;

% C = log(1 + h*p/N) => C = log(1 + 1/N)

C1_TEMP = log(1+(1/N1));

C2_TEMP = log(1+(1/N2));

C3_TEMP = log(1+(1/N3));

C4_TEMP = log(1+(1/N4));

% Adding all four parallel channels capacities

C_MIMO_4x4(index)= C1_TEMP + C2_TEMP + C3_TEMP + C4_TEMP;

end

% Equal Power Allocation:

clc;

clear all;

close all;

load g11.mat; load g12.mat;

load g21.mat; load g22.mat;

%$$$$$$$$$$$$$$$$$$$$$$$$$

% MISO System : M = 2

%$$$$$$$$$$$$$$$$$$$$$$$$$

SNR_db = -15:15;

No_Antenna = 2;

C_MISO_2x1 = 0;

for index = 1:length(SNR_db)

SNR = 10^(SNR_db(index)/10); % Convert in to Watt

% Channel coefficient for 2X1 MISO and h = |g|^2

h1 = ([g11(1,1); g21(1,1)]'*[g11(1,1); g21(1,1)]);

% SNR = P/N => P = N/SNR

pwr = SNR*N1;

% C = log(1 + h*p/N)

C_MISO_2x1(index) = log(1+(h1 * pwr/No_Antenna));

end

%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

% MISO System : for 5000 Iterations

%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

SNR_db = -15:15;

No_Antenna = 2;

C_MISO = 0; C_MISO_FINAL = 0; C_MISO_TOTAL = 0;

for index = 1:length(SNR_db)

SNR = 10^(SNR_db(index)/10); % Convert in to Watt

for i = 1:5000 % Iteration for 5000 values

% Channel coefficient for 2X1 MISO and h = |g|^2

h = ([g11(1,i); g21(1,i)]'*[g11(1,i); g21(1,i)]);

% SNR = P/N => P = N/SNR

pwr = SNR*N1;

% C = log(1 + h*p/N)

C_MISO = log(1+(h * pwr/No_Antenna));

% Adding 5000 values

C_MISO_TOTAL = C_MISO_TOTAL + C_MISO;

end

% Average over 5000 values

C_MISO_FINAL(index) = C_MISO_TOTAL/5000;

end

%$$$$$$$$$$$$$$$$$$$$$$$$$$

% MISO System : M = 4

%$$$$$$$$$$$$$$$$$$$$$$$$$$

SNR_db = -15:15;

N1 = 1;

No_Antenna = 2;

C_MISO_4x1 = 0;

for index = 1:length(SNR_db)

SNR = 10^(SNR_db(index)/10); % Convert in to Watt

% Channel coefficient for 4X1 MISO and h = |g|^2

h1 = ([g11(1,1); g12(1,1); g21(1,1); g22(1,1)]' * [g11(1,1); g12(1,1); g21(1,1); g22(1,1)]);

% SNR = P/N => P = N/SNR

pwr = SNR*N1;

% C = log(1 + h*p/N)

C_MISO_4x1(index) = log(1+(h1 * pwr/No_Antenna));

end

%$$$$$$$$$$$$$$$$$$$$$$$$$$

% MIMO System : M = 2

%$$$$$$$$$$$$$$$$$$$$$$$$$$

SNR_db = -15:15;

C_MIMO_2x2 = 0;

for index = 1:length(SNR_db)

SNR = 10^(SNR_db(index)/10); % Convert in to Watt

% Using SVD to convert 2X2 matrix into parallel channels

h_MIMO = [g11(1,1) g12(1,1); g21(1,1) g22(1,1)];

[m g] = eig (h_MIMO);

% Parallel Channel gain

h11 = g(1,1)'*g(1,1);

h22 = g(2,2)'*g(2,2);

% SNR = P/N => P = N/SNR

pwr11 = SNR / N1;

pwr22 = SNR / N1;

% C = log(1 + h*p/N)

C1 = log(1+(h11 * pwr11/No_Antenna));

C2 = log(1+(h22 * pwr22/No_Antenna));

% Adding both channel capacities

C_MIMO_2x2(index) = C1 + C2;

end

%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

% MIMO System : for 1000 Iterations

%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

SNR_db = -15:15;

C_MIMO_TOTAL = 0; C_MIMO_AVG = 0;

for index = 1:length(SNR_db)

SNR = 10^(SNR_db(index)/10); % Convert in to Watt

% Iteration for 5000 coefficient

for i = 1:5000

% Channel coefficient for 2X2 MIMO

h_MIMO = [g11(1,i) g12(1,i); g21(1,i) g22(1,i)];

% Doing SVD to convert MIMO to Parallel

[m b] = eig (h_MIMO);

h11 = b(1,1)'*b(1,1); % Parallel Channel gain

h22 = b(2,2)'*b(2,2);

% SNR = P/N => P = N/SNR

pwr11 = SNR * N1;

pwr22 = SNR * N1;

% C = log(1 + h*p/N)

C1 = log(1+(h11 * pwr11/No_Antenna));

C2 = log(1+(h22 * pwr22/No_Antenna));

% Adding 5000 values

C_MIMO_TOTAL = C1 + C2 + C_MIMO_TOTAL;

end

% Average over 5000 values

C_MIMO_AVG(index) = C_MIMO_TOTAL/1000;

end

%$$$$$$$$$$$$$$$$$$$$$$$$$$

% MIMO System : M = 4

%$$$$$$$$$$$$$$$$$$$$$$$$$$

SNR_db = -15:15;

C_MIMO_4x4 = 0;

for index = 1:length(SNR_db)

SNR = 10^(SNR_db(index)/10); % Convert in to Watt

% Using SVD to convert 4X4 matrix into parallel channels

h_MIMO_4X4 = [g11(1,1) g11(1,2) g11(1,3) g11(1,4); g12(1,1) g12(1,2) g12(1,3) g12(1,4); g21(1,1) g21(1,2) g21(1,3) g21(1,4); g22(1,1) g22(1,2) g22(1,3) g22(1,4)];

[m b] = eig (h_MIMO_4X4);

% h = |g|^2

h11 = b(1,1)'*b(1,1);

h12 = b(2,2)'*b(2,2);

h21 = b(3,3)'*b(3,3);

h22 = b(4,4)'*b(4,4);

% SNR = P/N => P = N/SNR

pwr11 = SNR * N1;

pwr12 = SNR * N1;

pwr21 = SNR * N1;

pwr22 = SNR * N1;

% C = log(1 + h*p/N)

C11 = log(1+(h11 * pwr11/No_Antenna));

C12 = log(1+(h12 * pwr12/No_Antenna));

C21 = log(1+(h21 * pwr21/No_Antenna));

C22 = log(1+(h22 * pwr22/No_Antenna));

% Adding all four channel capacties

C_MIMO_4x4(index) = C11 + C12 + C21 + C22;

end

% Water Filling Algorithm:

%$$$$$$$$$$$$$$$$$$$$$$$$$$

% MIMO System : 2X2

%$$$$$$$$$$$$$$$$$$$$$$$$$$

SNR_db = -15:1:15;

Sigma_n = 1; % assume

B = 1; % assume

for index = 1:length(SNR_db)

SNR = 10^(SNR_db(index)/10); % Convert in to Watt

% Using SVD to convert 2X2 matrix into parallel channels

h_MIMO = [g11(1,5) g12(1,2); g21(1,5) g22(1,1)];

[m b] = eig (h_MIMO);

% Parallel Channel gain

h11 = b(1,1)'*b(1,1);

h22 = b(2,2)'*b(2,2);

% Sigma^2 = h => Channel coefficient

Sigma1_Square = h11;

Sigma2_Square = h22;

% SNR = P / Sigma_n^2 => P = SNR * Sigma_n^2

pwr = SNR * Sigma_n * Sigma_n;

% Lamda_i = (Sigma_i^2 * P) / Sigma_n^2

Lamda_1 = (Sigma1_Square * pwr) / (Sigma_n*Sigma_n);

Lamda_2 = (Sigma2_Square * pwr) / (Sigma_n*Sigma_n);

Lamda_0 = (2*Lamda_1*Lamda_2)/(Lamda_1+Lamda_2+(Lamda_1*Lamda_2));

% Capacity for Water-filling case:

C = [B * log(Lamda_i/Lamda_0)]

% Here : n = 2 and B = 1

C_MIMO_2X2_WF(index) = log(Lamda_1/Lamda_0) + log(Lamda_2/Lamda_0);

end

%$$$$$$$$$$$$$$$$$$$$$$$$$$

% MIMO System : 4X4

%$$$$$$$$$$$$$$$$$$$$$$$$$$

SNR_db= -15:1:15;

Sigma_n = 1; % assume

B = 1; % assume

for index = 1:length(SNR_db)

SNR = 10^(SNR_db(index)/10); % Convert in to Watt

% Using SVD to convert 2X2 matrix into parallel channels

h_MIMO = [g11(1,1) g11(1,3) g11(1,4) g11(1,5); g11(1,7) g11(1,8) g11(1,9) g11(1,10); g11(1,11) g11(1,12) g11(1,13) g11(1,14); g11(1,6) g11(1,15) g11(1,16) g11(1,17)];

[m b] = eig(h_MIMO);

% Parallel Channel gain

h11 = b(1,1)'*b(1,1);

h22 = b(2,2)'*b(2,2);

h33 = b(3,3)'*b(3,3);

h44 = b(4,4)'*b(4,4);

% Sigma^2 = h => Channel coefficient

Sigma1_Square = h11;

Sigma2_Square = h22;

Sigma3_Square = h33;

Sigma4_Square = h44;

% SNR = P / Sigma_n^2 => P = SNR * Sigma_n^2

pwr = SNR*Sigma_n*Sigma_n;

% Lamda_i = (Sigma_i^2 * P) / Sigma_n^2

Lamda_1 = (Sigma1_Square * pwr)/(Sigma_n*Sigma_n);

Lamda_2 = (Sigma2_Square * pwr)/(Sigma_n*Sigma_n);

Lamda_3 = (Sigma3_Square * pwr)/(Sigma_n*Sigma_n);

Lamda_4 = (Sigma4_Square * pwr)/(Sigma_n*Sigma_n);

% Here n = 4

Lamda_0= 4/[1+(1/Lamda_1)+(1/Lamda_2)+(1/Lamda_3)+(1/Lamda_4)];

% Capacity for Water-filling case:

C = [B * log(Lamda_i/Lamda_0)]

C_MIMO_4X4_WF(index) = log(Lamda_1/Lamda_0) + log(Lamda_2/Lamda_0) + log(Lamda_3/Lamda_0) + log(Lamda_4/Lamda_0);

end

10. REFERENCES:

[1] Class Notes by Lie Xu

[2] Thomas Cover and Joy Thomas, Elements of Information Theory, 2nd Edition, John Wiley & Sons, Inc, 2006

[3] David Tse and Pramod Viswanath, Fundamentals of Wireless Communication, Cambridge University Press, 2005.

[4] CDMA Development Group: http://www.cdg.org/technology/3g.asp

[5] http://www.articlesbase.com/communication-articles/modern-mobile-phone-technology-213572.html

[6] http://www.buzzle.com/articles/todays-mobile-phones-modern-technology-changed-lives.html

[7] http://users.ece.utexas.edu/~mkountouris/publications/conferences/VTC_Spring_2006.pdf

[8] http://paros.stanford.edu/Publications/Chris/NgSubmitted.pdf

[9] http://www.cl.cam.ac.uk/research/dtg/publications/public/ja316/PowerAlloc_ver8.pdf

[10] http://persons.unik.no/arehj/publications/vtc08_Behrouz.pdf

[11] http://www.stanford.edu/class/ee360/Ahmad/Lin_f.pdf

[12] http://ns01.net.i.kyoto-u.ac.jp/~kazunori/paper/wpmc2006_2.pdf

-15-10-5051015

0

1

2

3

4

5

6

7

8

9

10

Channel Inversion : SISO

SNR(in dB) --->

Capacity [C] --->

-15-10-5051015

0

1

2

3

4

5

6

SNR(in dB) --->

Capacity [C] --->

Channel Inversion for SIMO : M=2 & M=4)

SIMO:1x2

SIMO:1x4

-15-10-5051015

0

0.5

1

1.5

2

2.5

3

3.5

4

4.5

5

SNR(in dB) --->

Capacity [C] --->

Channel Inversion for MISO : M=2 & M=4)

MISO:2x1

MISO:4x1

-15-10-5051015

0

5

10

15

SNR(in dB) --->

Capacity [C] --->

Channel Inversion for MIMO : M=2 & M=4

MIMO: 2x2

MIMO: 4x4

-15-10-5051015

0

1

2

3

4

5

6

SNR(in dB) --->

Capacity [C] --->

Channel Inversion for SISO, SIMO, MISO and MIMO for M=2)

SISO

SIMO:1x2

MISO:2x1

MIMO:2x2

-15-10-5051015

0

2

4

6

8

10

12

14

SNR(in dB) --->

Capacity [C] --->

Equal Power Allocation for MIMO: M=2 & M=4

MIMO: 2x2

MIMO: 4x4

-15-10-5051015

0

2

4

6

8

10

12

14

SNR(in dB) --->

Capacity [C] --->

Equal Power Allocation for MIMO: M=2 & M=4

MIMO: 2x2

MIMO: 4x4

-15-10-5051015

0

2

4

6

8

10

12

14

SNR(in dB) --->

Capacity [C] --->

Equal Power Allocation for MISO and MIMO : M=2 & M=4)

MISO:2x1

MISO:4x1

MIMO:4x4

MIMO:2x2

-15-10-5051015

0

2

4

6

8

10

12

14

16

18

20

SNR(in dB) --->

Capacity [C] --->

Water Filling Algorithm for MIMO: M=2 & M=4

MIMO: 2x2

MIMO: 4x4

-15-10-5051015

0

1

2

3

4

5

6

7

8

SNR(in dB) --->

Capacity [C] --->

Comparision of all techniques for MIMO: M=2

Equal Power Allocation

Channel Inversion

Water Filling Algorithm