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

📄 tu1-31-2.m

📁 我自己在学习空时编码一书时编写的第一章的仿真程序
💻 M
字号:
clear
Dr=50;%50m
Dt=Dr;
Rr=Dr;
Rt=Dr;
R=1000e3;%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               %散射体数量
Scatterposition1(1,32)=0;
%=======因为散射体的分布是通过产生均匀分布的随机数的方式来计算的,所以要求统计平均========
for n=1:10
    Scatterposition1=Scatterposition1+rand(1,S).*2*Dt; %散射体位置分布   满足均匀分布
end
Scatterposition=Scatterposition1./10;                 %散射体位置分布   求统计分布
Sita_r=sitafun(Receiantannaposition,lamda,alfa_r);    %接收天线相关矩阵
Sita_t=sitafun(Transantannaposition,lamda,alfa_t);    %传输天线的相关矩阵
Sita_s=sitafun(Scatterposition,lamda,alfa_s);         %散射体相关矩阵
Kr=(llh(Sita_r));                                    %对接收天线的相关矩阵进行复Cholesky分解,自编函数llh(),
                                                      %如果是matlab7.2版本中的chol函数就可以直接完成这个功能
Kt=(llh(Sita_t));
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);
pdf=c./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 + -