⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 图1-9.m

📁 我自己在学习空时编码一书时编写的第一章的仿真程序
💻 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 + -