无线传感实验3_第1页
无线传感实验3_第2页
无线传感实验3_第3页
无线传感实验3_第4页
无线传感实验3_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、HUNAN UNIVERSITY课程实习报告题 目: DV-hop定位算法 学生姓名 黄明乐学生学号20110808222专业班级物联2班指导老师刘采苹 完 成 日 期 2014.5.17Ø 实验目的l 掌握matlab工具的使用方法l 了解DV-hop算法原理,熟悉DV-hop算法代码,分析DV-hop算法实验结果Ø 实验原理-DV-hop算法概述l 首先:计算位置节点与信标节点的最小跳数l 然后:估计平均每跳的距离,利用最小跳数乘以平均每跳距离,得到未知节点与信标节之间的估计距离。l 最后:利用三边测量法或极大似然估计法计算未知节点的坐标Ø DV-Hop算法的

2、定位过程l 计算未知节点与每个信标节点的最小跳数n 信标节点向邻居节点广播自身位置信息的分组,其中包括跳数字段,初始化为0.n 接受节点记录具有到每个信标节点的最小跳数,忽略来自同一个信标节点的较大跳数的分组。然后讲跳数值加一,并转发给邻居节点。n 网络中所有节点能够记录到每个信标节点最小跳数。l 计算未知节点与信标节点的实际段距离n 每个信标节点根据记录的其他信标节点的位置信息和相距跳数,估计平均每跳的实际距离。n 然后,信标节点将计算的每跳平均距离用带有生存期字段的分组广播至网络中,位置节点仅记录接受到的第一个每跳平均距离,并转发给邻居节点。n 未知节点接收到平均每跳距离后,根据记录的跳数

3、,计算到每个信标节点的跳段距离。l 利用三边测量法或极大似然估计法计算自身位置n 未知节点利用第二阶段中记录的到各个信标节点的跳段距离,利用三边测量法或极大似然估计法计算自身坐标。Ø 实验代码% DV-Hop算法 % BorderLength-正方形区域的边长,单位:m% NodeAmount-网络节点的个数% BeaconAmount-信标节点数% Sxy-用于存储节点的序号,横坐标,纵坐标的矩阵%Beacon-信标节点坐标矩阵;BeaconAmount*BeaconAmount%UN-未知节点坐标矩阵;2*UNAmount% Distance-未知节点到信标节点距离矩阵;2*Be

4、aconAmount%h-节点间初始跳数矩阵%X-节点估计坐标初始矩阵,X=x,y'% R-节点的通信距离,一般为10-100mclear,close all;BorderLength=100;NodeAmount=100;BeaconAmount=8;UNAmount=NodeAmount-BeaconAmount;R=50;% D=zeros(NodeAmount,NodeAmount);%未知节电到信标节点距离初始矩阵;BeaconAmount行NodeAmount列h=zeros(NodeAmount,NodeAmount);%初始跳数为0;BeaconAmount行NodeA

5、mount列X=zeros(2,UNAmount);%节点估计坐标初始矩阵%在正方形区域内产生均匀分布的随机拓扑C=BorderLength.*rand(2,NodeAmount);%带逻辑号的节点坐标Sxy=1:NodeAmount;C;Beacon=Sxy(2,1:BeaconAmount);Sxy(3,1:BeaconAmount);%信标节点坐标UN=Sxy(2,(BeaconAmount+1):NodeAmount);Sxy(3,(BeaconAmount+1):NodeAmount);%未知节点坐标%画出节点分布图plot(Sxy(2,1:BeaconAmount),Sxy(3,1

6、:BeaconAmount),'r*',Sxy(2,(BeaconAmount+1):NodeAmount),Sxy(3,(BeaconAmount+1):NodeAmount),'k.')xlim(0,BorderLength);ylim(0,BorderLength);title('* 红色信标节点 . 黑色未知节点')%初始化节点间距离、跳数矩阵for i=1:NodeAmount for j=1:NodeAmount Dall(i,j)=(Sxy(2,i)-Sxy(2,j)2+(Sxy(3,i)-Sxy(3,j)2)0.5;%所有节点间相

7、互距离 if (Dall(i,j)<=R)&(Dall(i,j)>0) h(i,j)=1;%初始跳数矩阵 elseif i=j h(i,j)=0; else h(i,j)=inf; end endend%最短路经算法计算节点间跳数for k=1:NodeAmount for i=1:NodeAmount for j=1:NodeAmount if h(i,k)+h(k,j)<h(i,j)%min(h(i,j),h(i,k)+h(k,j) h(i,j)=h(i,k)+h(k,j); end end endendh%求每个信标节点的校正值h1=h(1:BeaconAmou

8、nt,1:BeaconAmount);D1=Dall(1:BeaconAmount,1:BeaconAmount);for i=1:BeaconAmount dhop(i,1)=sum(D1(i,:)/sum(h1(i,:);%每个信标节点的平均每跳距离endD2=Dall(1:BeaconAmount,(BeaconAmount+1):NodeAmount);%BeaconAmount行UNAmount列for i=1:BeaconAmount for j=1:UNAmount if min(D2(:,j)=D2(i,j) Dhop(1,j)=D2(i,j);%未知节点从最近的信标获得校正值

9、 end endendDhop%用跳数估计距离hop1=h(1:BeaconAmount,(BeaconAmount+1):NodeAmount)%未知节点到信标跳数,BeaconAmount行UNAmount列for i=1:UNAmount hop=Dhop(1,i);%hop为从最近信标获得的校正值 Distance(:,i)=hop*hop1(:,i);%Beacon行UN列;end% %最小二乘法求未知点坐标d=Distance;for i=1:2 for j=1:(BeaconAmount-1) a(i,j)=Beacon(i,j)-Beacon(i,BeaconAmount); endendA=-2*(a');% d=d1' for m=1:UNAmount for i=1:(BeaconAmount-1) B(i,1)=d(i,m)2-d(BeaconAmount,m)2-Beacon(1,i)2+Beacon(1,BeaconAmount)2-Beacon(2,i)2+Beacon(2,BeaconAmount)2; end X1=inv(A'*A)*A'*B; X(1,m)=X1(1,1); X(2,m)=X1(2,1); end UN X for i=1:UNAmount error(1,i)=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论