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

📄 图1-8.m

📁 我自己在学习空时编码一书时编写的第一章的仿真程序
💻 M
字号:
clear all;clc;
DWZ=eye(2);
i=1;
C=zeros(1,5);
SNR1=zeros(1,5);
for SNR=[1 sqrt(10) 10 sqrt(1000) 10^1.8]
    rongliang=zeros(1,200);
    for K=1:200
        H=(randn(2)+j*randn(2))/sqrt(2);
        G=H'*H;
        rongliang(1,K)=log2(det(DWZ+SNR*G/2));
    end
    C(1,i)=sum(rongliang)/200/2;
    SNR1(1,i)=10*log10(SNR);
    i=i+1;
end
plot(SNR1,C,'-+');
hold on;
grid on;
axis([0,18,-2,6]);
DWZ1=eye(8);
i=1;
C=zeros(1,5);
SNR1=zeros(1,5);
for SNR=[1 sqrt(10) 10 sqrt(1000) 10^1.8]
    rongliang1=zeros(1,200);
    for K=1:200
        H=(randn(8)+j*randn(8))/sqrt(2);
        G=H'*H;
        rongliang1(1,K)=log2(det(DWZ1+SNR*G/8));
    end
    C(1,i)=sum(rongliang1)/200/8;
    SNR1(1,i)=10*log10(SNR);
    i=i+1;
end
plot(SNR1,C,'-*');
hold on;
grid on;
axis([0,18,-2,6]);
DWZ2=eye(16);
i=1;
C=zeros(1,5);
SNR1=zeros(1,5);
for SNR=[1 sqrt(10) 10 sqrt(1000) 10^1.8]
    rongliang2=zeros(1,200);
    for K=1:200
        H=(randn(16)+j*randn(16))/sqrt(2);
        G=H'*H;
        rongliang2(1,K)=log2(det(DWZ2+SNR*G/16));
    end
    C(1,i)=sum(rongliang2)/200/16;
    SNR1(1,i)=10*log10(SNR);
    i=i+1;
end
plot(SNR1,C,'-s');
hold on;
grid on;
axis([0,18,-2,6]);
C2=zeros(1,5);
SNR1=zeros(1,5);
i=1;
for SNR=[1 sqrt(10) 10 sqrt(1000) 10^1.8]
    C2(1,i)=log2(SNR)-1;
    SNR1(1,i)=10*log10(SNR);
    i=i+1;
end
plot(SNR1,C2,'-.');
hold on;
grid on;
axis([0,18,-2,6]);
C3=zeros(1,5);
SNR1=zeros(1,5);
i=1;
for SNR=[1 sqrt(10) 10 sqrt(1000) 10^1.8]
    C3(1,i)=log2(SNR)-1+(sqrt(1+4*SNR)-1)/(2*SNR)+2*atanh(1/sqrt(1+4*SNR));
    SNR1(1,i)=10*log10(SNR);
    i=i+1;
end
plot(SNR1,C3,'--.');
hold on;
axis([0,18,-2,6]);
xlabel('信噪比 dB');
ylabel('容量n/(bit/s/hz)');
legend('n=2 tx/rx antennas','n=8 tx/rx antennas','n=16 tx/rx antennas','bound limit','Asymptotic value');

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -