大尺度衰落的仿镇
源代码在线查看: dcd.m
%dcd.m
% 大尺度损耗模型
% 参数设置
% distance : T-R距离
% frequency : 载波频率
% n : 路径损耗指数
% sigma : (0均值)正态随机变量(即高斯变量)的标准偏差
% d0 : 近地参考距离
% m : 预测样本数目
% gt : 发射天线的增益
% gr : 接收天线的增益
hold off;
clear;
c=3*10^8;
disp('** Please enter para **');
disp('** Attention: d0 must d0=input('d0=');
distance=input('distance=');
frequency=input('frequency=');
n=input('n=');
sigma=input('sigma=');
m=input('m=');
gt=input('gt=');
gr=input('gr=');
%这里按照课本要求仅仅对distance和d0之间的关系作检查,当然我们还可以添加检查程序对其它数据作检查。
while distance disp('错误:近地参考距离必须小于等于T-R距离!');
disp(' d0 must d0=input('d0=');
distance=input('distance=');
end;
%自取附加测试点distancex,步长100m,从d0到distance
%每100米步长内每隔10m取1个测试点distancexx,每点作平均损耗计算(不考虑对数正态阴影),连成线
xstep=100;
xxstep=10;
for distancex=d0:xstep:distance;
%不考虑对数正态阴影
pathlossv = -10*log10(gt*gr*(c/frequency/4/pi)^2/d0^n) + 10*n*log10(distancex/d0);
%产生1×m阶0均值sigma标准偏差的随机正态分布矩阵,m为预测样本数目
R=normrnd(0,sigma,1,m);
for i=1:m;
%考虑对数正态阴影
pathloss = pathlossv + R(i);
%从d0到T-R距离上每100米取为附加测试点,画出其含对数阴影的损耗
plot(distancex,pathloss,'b.');
hold on;
end;
%每100米步长内每隔10m取1个测试点distancexx,每点作平均损耗计算(不考虑对数正态阴影),连线
if distancex for distancexx=distancex:xxstep:100+distancex;
pathlossvv = -10*log10(gt*gr*(c/frequency/4/pi)^2/d0^n) + 10*n*log10(distancexx/d0);
%防止打印文档看不出此线,特设为星形,显示为一条很粗的红线
plot(distancexx,pathlossvv,'r*');
hold on;
end;
end;
end;
title('大尺度路径损耗(对数正态阴影)与T-R距离的关系');
xlabel('T-R距离(m)');
ylabel('路径损耗(dB)');