✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。
🍎个人主页:Matlab科研工作室
🍊个人信条:格物致知。
更多Matlab仿真内容点击👇
针对基于双曲线定位的 DV-Hop 算法中误差项的异方差性引起的定位误差大的问题,提出了一种基于加权双曲线定位的 DV-Hop 改进算法。算法分析了基于双曲线定位的 DV-Hop 算法模型中误差项的异方差性,用加权最小二乘法对异方差性进行纠正,对加权最小二乘法中的权值矩阵进行了理论推导并得到与跳数相关的最佳权值矩阵,使得误差项满足同方差性,所得估计值接近最佳线性无偏估计。仿真结果表明,所提算法在定位精度上较目前常见的基于双曲线定位的 DV-Hop 算法都有一定提高。
%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 基于加权双曲线的DV-Hop算法 ~~~~~~~~~~~~~~~~~~~~~~~~
%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
% BorderLength-----正方形区域的边长,单位:m
% NodeAmount-------网络节点的个数
% BeaconAmount-----信标节点数
% Sxy--------------用于存储节点的序号,横坐标,纵坐标的矩阵
% Beacon-----------信标节点坐标矩阵;BeaconAmount*BeaconAmount
% UN---------------未知节点坐标矩阵;2*UNAmount
% Distance---------未知节点到信标节点距离矩阵;2*BeaconAmount
% h----------------节点间初始跳数矩阵
% X----------------节点估计坐标初始矩阵,X=[x,y]'
% R----------------节点的通信距离,一般为10-100m
clear,close all;
BorderLength=100;
NodeAmount=100;
BeaconAmount=20;
UNAmount=NodeAmount-BeaconAmount;
R=25;
shortest_Path=zeros(NodeAmount,NodeAmount);%初始跳数为0;NodeAmount行NodeAmount列
UN_Coordinates_Estimate=zeros(2,UNAmount);%节点估计坐标初始矩阵
times=100;
for num=1:times
%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~在正方形区域内产生均匀分布的随机拓扑~~~~~~~~~~~~~~~~~~~~
C=BorderLength.*rand(2,NodeAmount);
% %带逻辑号的节点坐标
Sxy=[[1:NodeAmount];C];
Anchor_Coordinates=[Sxy(2,1:BeaconAmount);Sxy(3,1:BeaconAmount)];%信标节点坐标矩阵,2*BeaconAmount
UN_Coordinates_True=[Sxy(2,(BeaconAmount+1):NodeAmount);Sxy(3,(BeaconAmount+1):NodeAmount)];%未知节点坐标
%画出节点分布图
% figure(1)
% plot(Sxy(2,1:BeaconAmount),Sxy(3,1:BeaconAmount),'r+',Sxy(2,(BeaconAmount+1):NodeAmount),Sxy(3,(BeaconAmount+1):NodeAmount),'k.')
% xlim([0,BorderLength]);
% ylim([0,BorderLength]);
% title('+ 红色信标节点 . 黑色未知节点','FontSize',14)
%%
%~~~~~~~~~~~~~~~~~~~~~~~~~~~~初始化节点间距离、跳数矩阵~~~~~~~~~~~~~~~~~~~~~~
for i=1:NodeAmount
for j=1:NodeAmount
Distance(i,j)=((Sxy(2,i)-Sxy(2,j))^2+(Sxy(3,i)-Sxy(3,j))^2)^0.5;%所有节点间相互距离
if (Distance(i,j)<=R)&(Distance(i,j)>0)
shortest_Path(i,j)=1;%跳数矩阵,仅仅根据节点之间的实际距离判断跳数:假如实际距离小于通信半径,则认为节点之间能够直接通信,跳数为1
% shortest_Path(i,j)=Distance(i,j)/R;
elseif i==j
shortest_Path(i,j)=0;
else shortest_Path(i,j)=inf;
end
end
end
[1]史跃飞. 无线传感器网络加权定位算法的改进[D]. 太原理工大学, 2014.
[2]沈静静, 辛元芳, 唐燕. 基于DV-Hop的加权改进定位算法[J]. 西昌学院学报:自然科学版, 2017, 31(4):5.
❤️ 关注我领取海量matlab电子书和数学建模资料
❤️部分理论引用网络文献,若有侵权联系博主删除