【Dvhop定位】基于加权双曲线定位的Dvhop算法附matlab代码

✅作者简介:热爱科研的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电子书和数学建模资料

❤️部分理论引用网络文献,若有侵权联系博主删除

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
rssi是接收信号强度指示,可以作为室内定位的一种手段。本算法基于rssi的加权质心定位算法matlab实现,是一种比较常见的室内定位算法。 首先,要对原始信号进行采集和处理,得到一组rssi值。接着,需要建立一个信号传输模型,将rssi值转换成距离值。在建立模型的过程中,涉及到了信号衰减的计算,比如路损、物理障碍影响等。最后,根据一定的公式,将采集到的rssi值进行加权平均得到质心的坐标,从而完成定位。 我们可以通过以下步骤来实现基于rssi的加权质心定位算法: 1.采集原始rssi信号 通过扫描wifi设备的rssi值,采集原始信号。在实现中,我们使用matlab的WiFi硬件接口,通过扫描WiFi设备的rssi值,将其作为采样数据来进行算法实现。 2.建立信号传输模型 将rssi值转换成距离值,建立信号传输模型。由于rssi值与距离并不是线性关系,因此需要经过一定的处理,得到更准确的距离值。其中,路损模型和障碍物影响模型是建立信号传输模型中的关键步骤。 3.加权平均 根据一定的加权公式,将采集的rssi值进行加权平均,得到质心的坐标。常见的加权公式有加权算术平均数、加权调和平均数等。 4.定位算法优化 在实现过程中,可以结合多种算法定位结果进行优化。常见的优化算法包括粒子群算法、遗传算法等。通过优化算法的使用,可以进一步提升定位算法的精度。 总之,基于rssi的加权质心定位算法matlab是一种常见的室内定位算法。在实际应用中,我们需要根据具体需求建立合适的信号传输模型,并对算法进行优化,以提升算法的精度和可靠性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

matlab科研助手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值