题 目: 传播模型校正
姓 名
学 院 信息与通信工程学院
专 业
班 级
学 号
任课教师
年月
最小二乘法可以用来拟合系数矩阵,减小模型误差:
B
LS
=
arg
min
B
∥
AB−Y
∥
2
推导可得:
B
LS
=
(
A
T
A
)
−1
A
T
Y
——式3
二、最小二乘法校正Okumura-Hata模型
2.1 Okumura-Hata模型
Okumura-Hata模型城市路径损耗模型公式为:
𝐿
50
(
urban
2
)
(𝑑𝐵)
=
69.55
+
26.16
log
𝑓
𝑐
−13.82
log
ℎ
𝑡𝑒
−𝑎
(
ℎ
𝑟𝑒
)
+
(
44.9−6.55
log
ℎ
𝑡𝑒
)
log
𝑑
其中
𝑎
(
ℎ
𝑟𝑒
)
为有效移动台天线高度修正因子。
对于中小城市:
dBfhfha
crecre
)8.0log56.1()7.0log11.1()( ����
对于大城市:
�
�
�
�
�
����
�����
�
MHzfcdBh
MHzfcdBh
ha
re
re
re
30097.4)75.11(log2.3
3001.1)54.1(log29.8
)(
2
2
2.2 仿真代码
%主函数,用最小二乘法拟合残差最小的传播模型
file_t=fopen('移动台坐标及接收功率.txt','r');
%以十进制读取,等价于将源数据矩阵转置,[3,630742]控制矩阵的size
[XY,count1]=fscanf(file_t,'%f',[3,630742]);
%关闭文件
fclose(file_t);
%基站信息1中包含着基站坐标,基站天线高度,基站下倾角,接收天线高度置为
1m,仿真载频设为900MHz
fid=fopen('基站信息.txt','r');
[Center,count2]=fscanf(fid,'%f',[1,7]);
fclose(fid);
fc=900;%单位为MHz
H_re=1.7 ;%接收天线高度单位为m
%提取出具体接收功率数值,用矩阵y表示
Y=XY(3, :)';
stand_l=std(Y, 0) ;
%40倍波长距离
lamda_40= 3e8/ 9e8*40;
%每个观测点离基站距离,单位米
d=sqrt(XY(1,:).^2+XY(2,:).^2);
figure;
scatter(d',(10*log10(Center(5))-10*log10(Center(3)))*ones(l
ength(Y),1)-Y);
xlabel('distance' );
ylabel('pathloss(dB)');
%找出观测点最远和最近的点
d_min=min(d);
d_max=max(d);
num_k=ceil((d_max-d_min)/lamda_40);
%将路径损耗按对应距离升序排列
D_Y=sortrows([d' , Y], 1);
index=1;
%将40个波长距离的实测数据计算平均值
for i=1:num_k
low=d_min+(i-1)*lamda_40;
up=low+lamda_40;
res=0;
len=0;
while(index<=length(XY))
if((D_Y(index,1)>=low)&&(D_Y(index,1)<up))
res=res+D_Y(index,2);
index=index+1;
len=len+1;
else
res=res/len;
for j=(index-len):(index-1)
D_Y(j,2)=res;
end
break;
end
end
end
%利用实测接收功率和基站功率,以及馈线损耗计算路径损耗注意dbm转化db
Y_L=(10*log10(Center(5))-10*log10(Center(3)))*ones(length(Y)
,1)-D_Y(:,2);
figure;
scatter(D_Y(:,1),Y_L);