Dv-hop定位算法原理与仿真实验
一、Dv-hop定位算法基本原理
未知节点获取自身坐标的方式与网络中最小跳数和平均跳距有关,定位的具体步骤如下:
(1)获取最小跳数
网络中的锚节点向周围的其他节点广播信息,消息是采用逐跳的方式进行传播,每个节点都维护一个信息表,并统计离开锚节点的最小跳数。广播完之后,网络中的所有节点都保存了到每个锚节点的最小跳数信息。
(2)估算距离
未知节点可以通过第一步中获得的最小跳数以及网络中已知的锚节点坐标来估计一个跳的平均距离,如式(2-10)所示。
式中: (x_i,y_i ),(x_j,y_j ) 代表锚节点 i 和 j 的坐标, h_i 为锚节点 i 与 j 之间的最小跳数, 平均跳距用 HopSize表示。再通过式(2-11)就可以估算出末知节点 o 与锚节点 i之间的距离。
(3)计算末知节点的自身位置
采用极大似然法计算未知节点的坐标。
如图2.6所示,经过第1和第2阶段,能够计算出信标节点L1 与L2、L3 之间的距离和跳数。信标节点L2 计算得到校正值(即每跳平均距离)为(40+75)/ (2+5)=16.42.假设未知节点A 从L2 获得校正值,则它与3 个信标节点之间的距离分别为L1: 3 ×16. 42, L2: 2 ×16. 42, L3: 3×16. 42, 最后可利用三边测量法确定节点A 的位置。
二、Dv-hop定位算法仿真
2.1固定参数的一次实验结果:
设定节点覆盖范围为100x100,总节点数为:200,信标节点数40,通信半径为20,未知节点数为160。采用归一化平均定位误差作为评价指标:
式中, m 为末知节点的数目;k为实验次数;r 为节点的通信半径;(x_i,y_i ) 为末知节点的估计坐标:(x_i*,y_i* ) 为该末知节点的真实坐标。
得到实验结果:基础DV-hop的归一化平均定位误差为:0.3011
2.2观察锚节点数量对于定位误差的影响:
用DV-Hop算法定位未知节点的时候,其最少使用3个锚节点来定位,仿真实验设定锚节点由3到42个,计算对应锚节点的定位误差值。
由实验结果可以得知随着锚节点数量的增多,DV-Hop算法的定位误差不断减小。
如果需要仿真代码,Dv-hop定位算法原理与仿真实的代码和word文档链接: link