一、无线传感器网络DVHop定位算法简介

1 传统DV-hop算法定位算法原理
DV-hop算法中主要将节点分为锚节点与未知节点,锚节点在整个网络中占有一定的比例,因为锚节点本身带有GPS定位系统,而未知节点本身不具有定位系统,所以该算法主要利用待定位节点与锚节点的跳数与跳距来计算两者之间的距离,该算法主要分为3个步骤,分别为确定最小跳数、计算未知节点到锚节点之间的距离、确定未知节点的坐标.

1.1 确定未知节点与锚节点之间的最小跳数
已知自身位置的锚节点通过洪泛协议以其通信半径向外广播带有自身位置和跳数初始化的数据包,当邻居节点接收到锚节点的数据包之后,更新数据包中的跳数信息,也就是跳数加一,然后继续将数据包转发,同时未知节点会忽略来自同一锚节点的较大的跳数数据包,保存到锚节点最小跳数的数据包,通过此种转发方式,每个节点都得到了到网络中每个锚节点的最小跳数与最短路径.

1.2 计算未知节点到锚节点之间的距离

图1 DV-hop算法中节点分布示意图
传统DV-hop算法在计算距离时,主要采用距离待定位节点最近的锚节点的平均跳距作为计算到每个锚节点的平均跳距,如图1所示,离待定位节点B最近的锚节点为L2,L2的平均跳距计算过程为

此时B节点将(1)式计算出来的跳距作为自身的跳距,分别计算到3个锚节点的距离:

1.3 确定未知节点的坐标
利用三边测距法或者是最大似然估计法来计算未知节点的坐标.三边测量法是节点定位中计算未知节点坐标常用的方法,假设未知节点的坐标是(x,y),已知3个锚节点的坐标分别为(x1,y1),(x2,y2),(x3,y3),具体的计算过程为

将上面3个式子展开之后,用第3个式子分别与上述3个式子相减,可以将(3)式转化为如(4)式矩阵相乘的形式,将3个式子中的距离记为d1,d2,d3未知节点的坐标,通过对矩阵运算获得

AX=B; (4)

然后通过计算该坐标矩阵即可获得未知节点的坐标.

在实际的无线传感器网络中,锚节点与未知节点是随机分布的,可能参与到未知节点坐标计算的锚节点个数为n(n≥3)个,此时采用最大似然估计法来计算未知节点的坐标误差更小,最大似然估计法的计算过程与上述过程相同,区别是参与到未知节点定位的锚节点的个数不同导致的方程个数不同,其次在最后使用最小二乘法来计算未知节点的坐标为

X=(ATA)-1ATB. (8)

2 传统DV-hop算法误差分析
DV-hop算法用平均跳距乘以到锚节点最小跳数的乘积来近似表示未知节点到锚节点的距离[12],所以在后续计算过程中计算出来的坐标值也是不准确的.首先在该算法中,跳数不合理是一个重要原因,假设锚节点通信半径为50 m, 在广播阶段,与之相距直线距离为5和40 m的节点都在其通信半径范围内,所以将两者的跳数都记为1跳,这是不合理的,在后续的计算过程中会进一步加大误差;同时,未知节点在计算与相邻锚节点的距离时,通常采用离未知节点最近的锚节点的跳距,没有考虑到全局网络以及锚节点的分布情况,这样就会忽略其他锚节点的跳距,在计算距离时会增大定位的不确定性;最后,在计算节点位置时,通常采用最小二乘法,普通的最小二乘法认为每项误差对总体回归直线的偏离程度全部相同,等价于权值都赋为1,各方程可信度相同.然而由于模型中误差项存在异方差性,每项误差对总体回归直线的偏离程度不同,此时普通最小二乘法无法确定各锚节点参与定位的可信度,得到的估计值不满足最优估计.

二、部分源代码

%% 基于灰狼改进的无线传感器网络DVHop定位算法%BorderLength ----- 正方形区域的边长,单位m
%NodeAmount ----- 网络节点的个数
%BeaconAmount ----- 信标节点数
%UnAmount ----- 未知节点数
%Sxy ----- 用于存储节点的序号,横坐标,纵坐标的矩阵
%Beacon ----- 信标节点坐标矩阵
%UN ----- 未知节点坐标矩阵
%Distance ----- 未知节点到信标节点距离矩阵
%h ----- 节点间初始跳数矩阵
%X ----- 节点估计坐标初始矩阵,X = [x,y]
%R ----- 节点间的通信距离,一般为10-100m
clear;
clear all;
clc;
BorderLength = 200; %区域边界范围,200x200
NodeAmount = 200; %总的节点数200
BeaconAmount = 30; %信标节点数(锚节点)
UnAmount = NodeAmount - BeaconAmount; %未知节点数
R = 30; %通信距离%在区域范围内随机生成节点,即总节点数NodeAmount个坐标
AreaC = BorderLength.*rand(2,NodeAmount);%[x1,...,xn;y1,...,yn;];
%为每个点添加序号,如第1,2,3。放在第1行
data = [(1:NodeAmount);AreaC];
%信标坐标信息
BeaconData = data(2:3,1:BeaconAmount);%提取2,3行存放的坐标
UnKnownData = data(2:3,BeaconAmount+1:end);%提取剩下的坐标为未知节点坐标
%画图
figure
plot(BeaconData(1,:),BeaconData(2,:),'r*','linewidth',1.5);%绘制信标(锚节点)
hold on
plot(UnKnownData(1,:),UnKnownData(2,:),'bo','linewidth',1.5)%绘制未知节点
grid on;
title('* 红色信标节点 蓝色未知节点')%% 初始化节点间距离,跳数
Dall = zeros(NodeAmount,NodeAmount);%距离矩阵
h = zeros(NodeAmount,NodeAmount);%跳数矩阵
for i = 1:NodeAmountfor j = 1:NodeAmountDall(i,j)=norm(data(2:3,i) - data(2:3,j),2); %计算距离if (Dall(i,j)<=R)&&(Dall(i,j)>0)h(i,j) = 1;elseif i == jh(i,j)=0;elseh(i,j)=inf; %无效值endend
end
%% 最短路径算法计算节点跳数
for k = 1:NodeAmountfor i = 1:NodeAmountfor j = 1:NodeAmountif h(i,k)+h(k,j)<h(i,j)h(i,j)=h(i,k)+h(k,j); endendend
end

三、运行结果

四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1] 周凯,周培钊,付文涵,魏胜非.无线传感器网络的改进DV-hop定位算法研究[J].东北师大学报(自然科学版). 2021,53(04)

3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除

【WSN定位】基于matlab灰狼算法优化无线传感器非测距定位【含Matlab源码 2008期】相关推荐

  1. 【LSSVM数据预测】基于matlab灰狼算法优化LSSVM数据预测【含Matlab源码 433期】

    ⛄一.灰狼算法优化LSSVM简介 灰狼优化算法是一种新型的群体智能优化算法,它是通过模拟狼群的种群地位.跟踪猎物.包围猎物和攻击猎物而设计出来的.假设搜索空间是D维,那么第k个个体的位置可以表示为xk ...

  2. 【Matlab身份证识别】身份证号码识别【含GUI源码 014期】

    一.代码运行视频(哔哩哔哩) [Matlab身份证识别]身份证号码识别[含GUI源码 014期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 蔡利梅.MAT ...

  3. 【Matlab车牌识别】停车计费系统【含GUI源码 735期】

    一.代码运行视频(哔哩哔哩) [Matlab车牌识别]停车计费系统[含GUI源码 735期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 蔡利梅.MATLA ...

  4. 【Matlab生物电信号】生物电信号仿真【含GUI源码 684期】

    一.代码运行视频(哔哩哔哩) [Matlab生物电信号]生物电信号仿真[含GUI源码 684期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]董兵,超于毅,李 ...

  5. 【Matlab语音分析】语音信号分析【含GUI源码 1718期】

    一.代码运行视频(哔哩哔哩) [Matlab语音分析]语音信号分析[含GUI源码 1718期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]韩纪庆,张磊,郑铁 ...

  6. 【Matlab水果识别】自助水果超市【含GUI源码 594期】

    一.代码运行视频(哔哩哔哩) [Matlab水果识别]自助水果超市[含GUI源码 594期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]倪云峰,叶健,樊娇娇 ...

  7. 【图像分割】基于matlab灰狼算法二维oust图像分割【含Matlab源码 2574期】

    ⛄一. 灰狼算法简介 1 前言 灰狼优化算法(Grey Wolf Optimizer,GWO)由澳大利亚格里菲斯大学学者 Mirjalili 等人于2014年提出来的一种群智能优化算法.该算法受到了灰 ...

  8. 【WOA三维路径规划】基于matlab灰狼算法无人机三维航迹规划【含Matlab源码 2445期】

    ⛄一.灰狼优化算法的无人机三维航迹规划 1 无人机航迹规划建模 1.1 地形模型 首先, 本研究须对三维地理环境 (规划空间) 进行离散化处理.通过对规划空间进行立方体网格划分, 将空间划分为大小相等 ...

  9. 【LSTM时间序列预测】基于matlab鲸鱼算法优化LSTM时间序列预测【含Matlab源码 105期】

    ⛄一.鲸鱼算法及LSTM简介 1 鲸鱼优化算法(Whale Optimization Algorithm,WOA)简介 鲸鱼优化算法(WOA),该算法模拟了座头鲸的社会行为,并引入了气泡网狩猎策略. ...

最新文章

  1. 蓝牙 socket 建立不了_蓝牙电话之PBAP同步电话簿的安卓实现
  2. 用微软安全工具加固网站安全 (URLScan Tool IIS Lock Tool)
  3. win7-elasticsearch环境搭建
  4. UIPageControl 分页控件-IOS开发
  5. 2021-0409梦笔记2
  6. xlsx文件打开乱码_excel表格文件打开都是乱码怎么解决
  7. 2022电工杯A题利用启发式算法寻优
  8. OpenCV——无法打开“opencv2/opencv.hpp”文件
  9. M八七电影《新·奥特曼》主题曲歌手:米津玄師罗马音注释
  10. 个人购买云服务器的必要性和最常见几个用途?细节考虑
  11. 便宜实惠的移动自动快充:50元仅需48.90元
  12. uni-app引用阿里巴巴官方图标库
  13. vue使用支付宝支付
  14. 字典生成器crunch问题汇总(移植到Windows/字符集)
  15. 如使用清华镜像快速下载
  16. Tobii 眼动仪配置SDK-- 眼动仪开发入门(2)
  17. 操作系统纯净版 下载地址
  18. FairyGUI循环列表
  19. 新高考计算机学业水平考试,解密新高考——学业水平考试
  20. 序列预测中损失函数详解-MAE、MAPE、RMSE、Huber

热门文章

  1. 帝国cms 7.5 utf8集成百度编辑器完美集成版
  2. 过年了,让你的服务器提高警惕!
  3. 避坑指南:Kafka集群快速扩容的方案总结
  4. 语言认知模型--的学习笔记
  5. 拓嘉启远电商:拼多多编写标题怎样才可以避开违规
  6. Metasploitable渗透测试实战:ms17-010
  7. 使用Boostrap制作导航栏和汉堡按钮
  8. python3计算常数e的代码
  9. linux 快速建网站,如何快速建站,新手快速搭建网站教程
  10. java 系统容量预估