📄 图1-9.m
字号:
clear;
SNR=sqrt(100000);
for Nr=[1 2];
C=zeros(1,20);
j=1;
for Nt=1:20
rongliang=zeros(1,200);
for n=1:200
H=(randn(Nr,Nt)+j*randn(Nr,Nt))/sqrt(2);
r=rank(H);
S=svd(H);
A=0;
for i=1:r
A=A+log2(1+SNR*max(S(i,1)/r,0));
end
rongliang(1,n)=A;
end
C(1,j)=sum(rongliang)/200;
j=j+1;
end
Nt=1:20;
plot(Nt,C,'-*');
hold on;
grid on;
axis([1,20,6,28]);
end
SNR=sqrt(100000);
C1=zeros(1,20);
k=1;
for Nt=1:20 %发射天线的数
ronglian1=zeros(1,200);
for n=1:200 %重复次数
H=(randn(Nt,1)+j*randn(Nt,1))/sqrt(2); %瑞利信道,零均值复高斯随机变量,方差为0.5
G=H'*H; %最大比合并
ronglian1(1,n)=log2(1+SNR*G/Nt); %求容量
end
C1(1,k)=sum(ronglian1)/200; %求算术平均
k=k+1;
end
Nt=1:20;
plot(Nt,C1,'-.+');
hold on;
grid on;
axis([1,20,6,28]);
SNR=sqrt(100000);
C2=zeros(1,20);
g=2;
Nr=2;
for Nt=2:20 %发射天线的数
ronglian2=zeros(1,200);
m=min(Nt,Nr);
E=eye(m);
for n=1:200 %重复次数
H=(randn(Nt,2)+j*randn(Nt,2))/sqrt(2); %瑞利信道,零均值复高斯随机变量,方差为0.5
G=H'*H; %最大比合并
A=det(E+SNR.*G./Nt);
ronglian2(1,n)=log2(A); %求容量
end
C2(1,g)=sum(ronglian2)/200; %求算术平均
g=g+1;
end
for n=1:200
H=(randn(1,2)+j*randn(1,2))/sqrt(2);
G=H*H';
rongliang2(1,n)=log2(1+SNR*G);
end
C2(1,1)=sum(rongliang2)/200;
Nt=1:20;
plot(Nt,C2,'-.+');
hold on;
grid on;
axis([1,20,6,28]);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -