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

📄 tu1-31-1.m

📁 我自己在学习空时编码一书时编写的第一章的仿真程序
💻 M
字号:
clear
Dr=100;%50m
Dt=Dr;
Rr=Dr;
Rt=Dr;
R=5e3;%1000km
SNRdB=20;
SNR=10.^(SNRdB./10);
alfa_r=2*atan(Dr./Rr);       %接收端角度扩展
alfa_t=2*atan(Dt./Rt);       %发射端角度扩展
alfa_s=2*atan(Dt./R);        %接收散射体的角度扩展
f=900e6;%900MHz
lamda=3e8/f;%wave length
Transantannaposition=0:3*lamda:9*lamda;   %传输天线位置分布(0   3λ   6λ   9λ)
Receiantannaposition=0:3*lamda:9*lamda;   %接收天线位置
S=32;%Scatter bodies number               %散射体数量
Sita_r=sitafun(Receiantannaposition,lamda,alfa_r);    %接收天线相关矩阵
Sita_t=sitafun(Transantannaposition,lamda,alfa_t);    %传输天线的相关矩阵
Kr=(llh(Sita_r));                                    %对接收天线的相关矩阵进行复Cholesky分解,自编函数llh(),
                                                      %如果是matlab7.2版本中的chol函数就可以直接完成这个功能
Kt=(llh(Sita_t));
Cmean=zeros(1,3001);
%=======因为散射体的位置分布是通过产生均匀分布的随机数的方式计算出来的,所以要求统计平均,===========
%=======下面的第一个循环就是用于求统计平均的==================
for n=1:10     
    Scatterposition=rand(1,S).*2*Dt;          %散射体位置分布   满足均匀分布
    Sita_s=sitafun(Scatterposition,lamda,alfa_s);         %散射体相关矩阵
    Ks=(llh(Sita_s));
    simutimes=10000
    for sim=1:simutimes
        Gr=(randn(4,S)+j*randn(4,S))./sqrt(2);           %独立的复高斯随机变量
        Gt=(randn(S,4)+j*randn(S,4))./sqrt(2);
        H=1./sqrt(S).*(Kr*Gr*Ks*Gt*Kt);%eq1-141
        C(sim)=log2(det(eye(4,4)+SNR./4.*H'*H));%1-30
    end
    dx=0.01;
    [c,xout]=hist(real(C),0:dx:30);
    Cmean=Cmean+c;
end
Cmean=Cmean./n;          %求统计平均
pdf=Cmean./simutimes./dx; %pdf fun
plot(xout,1-cumsum(pdf).*dx);
axis([0 30 0 1]);grid on;hold on;

⌨️ 快捷键说明

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