You are on page 1of 7

MATLAB CODE:

1. CAPACITY WITH AND WITHOUT CSIT FOR 5x10 MIMO SYSTEM



clc;
clear all;
close all;

Nt=5; %---------No. of transmitter antennas
Nr=10; %---------No. of receiver antennas

snrdB=0:1:10; %-----------snr values in dB, for which capacity will
be computed
snr=10.^(snrdB/10);

Cut=zeros(1,length(snr)); %---------capacity of a uninformed
transmitter i.e., without CSIT
Cit=zeros(1,length(snr)); %---------capacity of an informed
transmitter i.e., with CSIT

Cut_tot=zeros(1,length(snr));
Cit_tot=zeros(1,length(snr));

count=100;
for k=1:count
H=randn(Nr,Nt)+i*randn(Nr,Nt); %---------channel matrix H
[U,S,V]=svd(H); %----------singular value decomposition of H
sv=diag(S); %--------------non-zero singular values of H
ev=sv.*sv; %--------------eigen values of H
r=rank(H); %--------------computing rank of H

for i=1:length(snr)

%CAPACITY CALCULATION FOR EQUAL POWER ALLOCATION WITHOUR CSIT
for j=1:r
Cut(i)=Cut(i)+log2(1+((snr(i)/Nt)*ev(j)));
end

%WATER POURING ALGORITHM FOR CALCULATION OF CAPACITY WITH CSIT
p=1;
Pi=zeros(1,r);
while(Pi(r-p+1)<=0)
x=0;
for j=1:r-p+1
x=x+(1/ev(j));
end

Mu=(Nt/(r-p+1))*(1+(1/snr(i))*x);

for j=1:r-p+1
Pi(j)=Mu-(Nt/((snr(i))*ev(j)));
end

if Pi(r-p+1)<=0
Pi(r-p+1)=0;
end
p=p+1;
end

for j=1:r
Cit(i)=Cit(i)+log2(1+((snr(i)/Nt)*Pi(j)*ev(j)));
end
end
Cut_tot=Cut_tot+Cut;
Cit_tot=Cit_tot+Cit;
end
Cut_avg=Cut_tot/count;
Cit_avg=Cit_tot/count;

for i=1:length(snr)
diff(i)=Cit_avg(i)-Cut_avg(i);
end

%----------------PLOTS----------------------%
figure
plot(snrdB,Cut_avg,'-*r')
hold on
plot(snrdB,Cit_avg,'-o')
hold on
plot(snrdB,diff,'->g')
xlabel('SNR in dB')
ylabel('Capacity')
legend('without CSIT','with CSIT','difference in capacity')


2. CAPACITY WITH AND WITHOUT CSIT FOR 10X5 MIMO SYSTEM

clc;
clear all;
close all;

Nt=10; %---------No. of transmitter antennas
Nr=5; %---------No. of receiver antennas

snrdB=0:1:10; %-----------snr values in dB, for which capacity will
be computed
snr=10.^(snrdB/10);

Cut=zeros(1,length(snr)); %---------capacity of a uninformed
transmitter i.e., without CSIT
Cit=zeros(1,length(snr)); %---------capacity of an informed
transmitter i.e., with CSIT

Cut_tot=zeros(1,length(snr));
Cit_tot=zeros(1,length(snr));

count=100;
for k=1:count
H=randn(Nr,Nt)+i*randn(Nr,Nt); %---------channel matrix H
[U,S,V]=svd(H); %----------singular value decomposition of H
sv=diag(S); %--------------non-zero singular values of H
ev=sv.*sv; %--------------eigen values of H
r=rank(H); %--------------computing rank of H

for i=1:length(snr)

%CAPACITY CALCULATION FOR EQUAL POWER ALLOCATION WITHOUR CSIT
for j=1:r
Cut(i)=Cut(i)+log2(1+((snr(i)/Nt)*ev(j)));
end

%WATER POURING ALGORITHM FOR CALCULATION OF CAPACITY WITH CSIT
p=1;
Pi=zeros(1,r);
while(Pi(r-p+1)<=0)
x=0;
for j=1:r-p+1
x=x+(1/ev(j));
end

Mu=(Nt/(r-p+1))*(1+(1/snr(i))*x);

for j=1:r-p+1
Pi(j)=Mu-(Nt/((snr(i))*ev(j)));
end

if Pi(r-p+1)<=0
Pi(r-p+1)=0;
end
p=p+1;
end

for j=1:r
Cit(i)=Cit(i)+log2(1+((snr(i)/Nt)*Pi(j)*ev(j)));
end
end
Cut_tot=Cut_tot+Cut;
Cit_tot=Cit_tot+Cit;
end
Cut_avg=Cut_tot/count;
Cit_avg=Cit_tot/count;

for i=1:length(snr)
diff(i)=Cit_avg(i)-Cut_avg(i);
end

%----------------PLOTS----------------------%
figure
plot(snrdB,Cut_avg,'-*r')
hold on
plot(snrdB,Cit_avg,'-o')
hold on
plot(snrdB,diff,'->g')
xlabel('SNR in dB')
ylabel('Capacity')
legend('without CSIT','with CSIT','difference in capacity')



















PLOTS:
1. N
t
<N
r


2. N
t
>N
r





EC6325
MIMO COMMUNICATION
SYSTEMS
ASSIGNMENT






SUBMITTED BY:
NAMITHA R
S2 TELECOMMUNICATION
M110253EC
OBSERVATION:
1.Nt>Nr
diff =

3.3068 3.4490 3.5999 3.7543 3.9072 4.0539 4.1909
4.3157 4.4270 4.5244 4.6082

2.Nt<Nr
diff =

0.1053 0.0755 0.0532 0.0368 0.0251 0.0169 0.0112
0.0074 0.0048 0.0031 0.0020

You might also like