📄 cp0602_link_budget.m
字号:
function [dist_PAM,dist_PPM]=cp0602_link_budget(Gt,Gr,MargindB,FdB,f,PSD,Pre)
dist=zeros(3,19);
Rb=linspace(20e6,200e6,19); %bit速率
M=[2 4 8];
F=10^(FdB/10); %接收机噪声指数单位转化
Margin=10^(MargindB/10); %链路余量单位转化
k=1.38e-23; %麦克斯维尔常数
T0=300 %标准温度
N0=F*k*T0; %单边噪声功率谱密度
%计算最大距离
Eb_N0=logspace(0.5,2); %信噪比的取值
for i=1:3
%计算M_PAM、M_PPM 的信噪比计算
%由等式(6.31)和(6.33)
Pr_M_PAM=1;
Pr_M_PPM=1;
j=1;
while Pr_M_PAM > Pre
Pr_M_PAM=(1-1/M(i))*erfc(sqrt(Eb_N0(j)*3*log2(M(i))/(M(i)^2-1)));
Eb_N0_PAM=Eb_N0(j)
j=j+1;
end
j=1;
while Pr_M_PPM > Pre
Pr_M_PPM=exp(-0.5*log2(M(i))*(Eb_N0(j)-2*log(2)));
Eb_N0_PPM=Eb_N0(j)
j=j+1;
end
n1=length(Eb_N0_PAM)
n2=length(Eb_N0_PPM)
for k=1:19
%调用函数0603
dist_PAM(i,k)=cp0602_max_distance(Gt,Gr,f,PSD,Margin,1/Rb(k),N0,Eb_N0_PAM);
%调用函数0603
dist_PPM(i,k)=cp0602_max_distance(Gt,Gr,f,PSD,Margin,1/Rb(k),N0,Eb_N0_PPM);
end
end
%图形输出
%为所有的变量建立一个矩阵
M_ary_Distance=[dist_PAM' dist_PPM']';
F=figure(2);
set(gcf,'DefaultAxesColorOrder',[0 0 1],'DefaultAxesLineStyleOrder','-+|-o|-*|:s|:d|:^');
PT=plot(Rb/1e6,M_ary_Distance);
AX=gca;
set(AX, 'FontSize',12);
X=xlabel('Data Rate [Mb/s]');
set(X, 'FontSize',14);
Y=ylabel('Distance [m]');
set(Y, 'FontSize',14);
axis([20 200 0 25]);
L=legend('2-PAM','4-PAM','8-PAM','2-PPM','4-PPM','8-PPM');
set(L,'FontSize',12);
text(100,15 ,'Pr_e=10^{-3}','BackgroundColor',[1 1 1],'FontSize',12);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -