无线传感器网络实验指导书

上传人:i**** 文档编号:64872652 上传时间:2022-03-22 格式:DOC 页数:12 大小:264.50KB
收藏 版权申诉 举报 下载
无线传感器网络实验指导书_第1页
第1页 / 共12页
无线传感器网络实验指导书_第2页
第2页 / 共12页
无线传感器网络实验指导书_第3页
第3页 / 共12页
资源描述:

《无线传感器网络实验指导书》由会员分享,可在线阅读,更多相关《无线传感器网络实验指导书(12页珍藏版)》请在装配图网上搜索。

1、.无线传感器网络实验指导书信息工程学院w.实验一质心算法一、实验目的掌握合并质心算法的基本思想;学会利用 MATLAB 实现质心算法;学会利用数学计算软件解决实际问题。二、实验内容和原理无需测距的定位技术不需要直接测量距离和角度信息。定位精度相对较低,不过可以满足某些应用的需要。在计算几何学里多边形的几何中心称为质心,多边形顶点坐标的平均值就是质心节点的坐标。假设多边形定点位置的 坐 标 向 量 表 示 为pi =(xi , yi )T,则这个多边形的质心坐标为:例如,如果四边形ABCD 的顶点坐标分别为(x1, y1) ,(x2 , y2 ), ( x3 , y3 ) 和 (x4 ,y4 )

2、,则它的质心坐标计算如下:x, yx1 x2 x3 x4 ,y1 y2 y3 y444这种方法的计算与实现都非常简单, 根据网络的连通性确定出目标节点周围的信标参考节点,直接求解信标参考节点构成的多边形的质心。锚点周期性地向临近节点广播分组信息,该信息包含了锚点的标识和位置。当未知结点接收到来自不同锚点的分组信息数量超过某一门限或在一定接收时间之后, 就可以计算这些锚点所组成的多边形的质心, 作为确定出自身位置。 由于质心算法完全基于网络连通性, 无需锚点和未知结点之间的协作和交互式通信协调,因而易于实现。三、实验内容及步骤该程序在 Matlab环境下完成无线传感器中的质心算法的实现。在长为

3、100 米的正方形区域,信标节点(锚点)为90 个,随机生成50 个网络节点。节点的通信距离为30 米。需完成:分别画出不同通信半径,不同未知节点数目下的误差图,并讨论得到的结果所用到的函数:1. M = min(A)返回 A 最小的元素 .如果 A 是一个向量,然后min(A) 返回 A 的最小元素 .如果 A 是一个矩阵,然后min(A) 是一个包含每一列的最小值的行向量。2. randw.X = rand 返回一个单一均匀分布随机数在区间(0 , 1)。X = rand(n) 返回 n-n 矩阵的随机数字。3. S = sum(A) 返回A 沿其大小不等于1 的第一个数组维度的元素的总和

4、。如果 A 是一个向量,sum(A) 可返回元素的总和。如果 A 是一个矩阵,然后sum(A) 返回一个行向量包含每个列的总和。4. inf 无穷大此 MATLAB 函数 返回正无穷大的 IEEE 算术表示。除以零和溢出等操作会生成无穷值,从而导致结果因太大而无法表示为传统的浮点值5. zeros -创建全零数组X = zeros返回标量0.X = zeros(n) -由-n 矩阵的零返回n.6. plot(X,Y) 画出 Y 随 X 变化的 2D 曲线。plot(X,Y , o) 用 o 描述( X,Y )这一点。7.n= norm(v)返回的2- 范数或欧氏范数的向量v.n = norm

5、(v,p)返回向量范数定义的sum(abs(v)p)(1/p),这里 p 是任何正值,Inf或-Inf.8.s = num2str(A) 数值数组转换为字符数组输出,它表示的数字。输出格式取决于原始值的大小。 num2str 是用于标签和标题情节与数字值。所用到的变量:xy: 均匀分布的信标节点位置矩阵n:未知节点数量SS: 未知节点位置矩阵dm :通信半径cent :质心MM: 未知节点估计坐标矩阵e:估计位置和实际位置距离矩阵(误差)四、源程序clearclc% 锚节点节点设置for i=1:1:10%1到 10,步长是1;画出锚点,前一个括号是标号。for j=1:1:10w.x(j+(

6、i-1)*10)=(i-1)*10;y(j+(i-1)*10)=(j-1)*10;endendfigure% 出现图形界面plot(x,y,k.); %黑点hold on % 继续画图axis(0 100 0 100);xy=x;y;把 X,Y 的坐标付给矩阵XYxy;hold onxm=90;ym=90;n=50; %未知节点for i=1:1:nSx(i)=rand(1,1)*xm;%产生一个一行一列的矩阵;依然是0-1 中任意一个值。Sy(i)=rand(1,1)*ym;plot(Sx(i),Sy(i),r*);%红星xlabel(x轴 );ylabel(y轴 );hold onendd

7、m=30 ;%通信半径m=100;一共 100 个点;for j=1:1:n%未知节点循环;每一个未知节点都与在通讯范围内所有的锚点算一遍距离,放到一个矩阵中,通讯距离以外的点为零。SS=Sx(j);Sy(j);k=0;%表示通信半径内的信标节点数for i=1:1:md=norm(xy(:,i)-SS),2);%2范数就是求直线距离;不管行,第i 列;if d=dm是否在范围内,取出信标节点,放到XX , yy 中xx(j,i)=xy(1,i);第 1 行第 i 列; %X 坐标都给了XXyy(j,i)=xy(2,i);第 2 行第 i 列;k=k+1;elsexx(j,i)=0;yy(j,

8、i)=0;endw.endif k=0%k不等于零cent(:,j)=sum(xx(j,:);sum(yy(j,:)/k;%第 j 行的所有列elsecent(:,j)=0;令第 j 列的所有元素为零。endplot(cent(1,j),cent(2,j),o) ;hold onplot(cent(1,j) Sx(j),cent(2,j) Sy(j),R-) ;%估计位置和真实位置连接title(Centroid);hold onMM=cent(1,j);cent(2,j);e(j)=norm(MM-SS),2);% 定位误差end% figure/dm% axis(0 n 0 1)% j=1

9、:1:n% plot(j,e(j) ,-r.)% hold on% title(Centroid)% E=sum(e)/nE=sum(e)/(n*dm);disp( 定位误差 =,num2str(E);% 将结果转换成字符串输出w.w.实验二DV-hop 算法一、 实验目的掌握 DV-hop 算法的基本思想;学会利用 MATLAB 实现 DV-hop 算法;学会利用数学计算软件解决实际问题。二、实验内容和原理DV-Hop算法解决了低锚点密度引发的问题,它根据距离矢量路由协议的原理在全网范围内广播跳数和位置。已知锚点L1 与 L2 、 L3 之间的距离和跳数。L2 计算得到校正值(即平均每跳距离

10、)为(40+75 ) /( 2+5 )=16.42m 。假设传感器网络中的待定位节点A 从 L2 获得校正值,则它与 3 个锚点之间的距离分别是 L1=3 16.42 ,L2 =2 16.42 ,L3 =3 16.42 ,然后使用多边测量法确定节点的位置。图 1 DV hop算法示意图三、实验内容及步骤该程序在 Matlab环境下完成无线传感器中的DV-Hop算法的实现。 在长为 100 米的正方形区域,随机生成100 个网络节点,其中信标节点(锚点)为8 个,未知坐标节点为92个。节点的通信距离为50 米。可算出最短路经算法计算节点间跳数、每个信标节点的校正值并可用用跳数估计距离。(1000

11、-1000, 300个节点, 60 个信标节点)所用到的函数:参见上节:质心算法;需完成 :1) 运行程序,生成随机分布的节点;2) 更正程序中的错误,求每个信标节点的校正值;3) 继续运行程序,利用跳数估计待求节点的距离。四、源程序%DV-Hop算 法w.% BorderLength- 正方形区域的边长,单位: m% NodeAmount- 网络节点的个数% BeaconAmount- 信标节点数% Sxy- 用于存储节点的序号,横坐标,纵坐标的矩阵%Beacon- 信标节点坐标矩阵;BeaconAmount*BeaconAmount%UN- 未知节点坐标矩阵;2*UNAmount% Dis

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

13、);%初始跳数为0 ;NodeAmount行 NodeAmount列X=zeros(2,UNAmount);%节点估计坐标初始矩阵%在正方形区域内产生均匀分布的随机拓扑C=BorderLength.*rand(2,NodeAmount);% 带逻辑号的节点坐标Sxy=1:NodeAmount;C;%将 1-NodeAmount与 C 上下合到一起,产生一个总矩阵。Beacon=Sxy(2,1:BeaconAmount);Sxy(3,1:BeaconAmount);%信标节点坐标UN=Sxy(2,(BeaconAmount+1):NodeAmount);Sxy(3,(BeaconAmount+1

14、):NodeAmount);% 未知节点坐标% 画出节点分布图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(*红色信标节点. 黑色未知节点 )%初始化节点间距离、跳数矩阵for i=1:NodeAmountfor j=1:NodeAmountw.Dall(i,j)=(Sxy(2,i)-Sxy(2,j

15、)2+(Sxy(3,i)-Sxy(3,j)2)0.5;%所有节点间相互距离if (Dall(i,j)0)h(i,j)=1;%初始跳数矩阵elseif i=jh(i,j)=0;%自己到自己的距离else h(i,j)=inf;endendend%最短路经算法计算节点间跳数for k=1:NodeAmountfor i=1:NodeAmountfor j=1:NodeAmountif 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);endendendendh%求每个信标节点的校正值h1=h(1:BeaconAmoun

16、t,1:BeaconAmount);%从大矩阵中取出信标节点的跳数D1=Dall(1:BeaconAmount,1:BeaconAmount); %从大矩阵中取出信标节点的距离for i=1:BeaconAmountdhop(i,1)=sum(D1(i,:)/sum(h1(i,:);%每个信标节点的平均每跳距离endD2=Dall(1:BeaconAmount,(BeaconAmount+1):NodeAmount);%新标节点与未知节点的距离,逗号前面是行的范围,后面是列的范围。for i=1:BeaconAmountfor j=1:UNAmountif min(D2(:,j)=D2(i,j

17、)Dhop(1,j)= dhop (i,j);%未知节点从最近的信标获得校正值endendendw.Dhop%用跳数估计距离hop1=h(1:BeaconAmount,(BeaconAmount+1):NodeAmount)%未知节点到信标跳数,BeaconAmount行 UNAmount列for i=1:UNAmounthop=Dhop(1,i);%hop为从最近信标获得的校正值Distance(:,i)=hop*hop1(:,i);%Beacon行UN列;end%最小二乘法求未知点坐标d=Distance;for i=1:2for j=1:(BeaconAmount-1)a(i,j)=Be

18、acon(i,j)-Beacon(i,BeaconAmount);endend%a 为第一个信标节点和最后一个信号节点的坐标差值,保留最后一个信标节点% aA=-2*(a);% d=d1;for m=1:UNAmountfor 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;% 前九个信标节点到未知节点的距离平方%最后信标节点到未知节点的距离平方%前九个信标节点横坐标平方%最后信标节点到未

19、知节点的横坐标平方%前九个信标节点纵坐标平方%最后信标节点纵坐标平方endX1=inv(A*A)*A*B;%inv是求逆矩阵X(1,m)=X1(1,1);X(2,m)=X1(2,1);end%X 为估计的未知节点位置w.for i=1:UNAmounterror(Z,i)=(X(1,i)-UN(1,i)2+(X(2,i)-UN(2,i)2)0.5);% 估计出的信号位置到实际位置间的距离endavgerror(Z)=sum(error(Z,:)/UNAmount;% 平均错误Accuracy(Z)=avgerror(Z)/R;% 节点精确度R=R+10;end%画出节点精确度图% Accuracyfigure;plot(20:10:90, Accuracy,-o)xlabel( 通信半径 /m);ylabel( 定位精度 /100%);title( 节点精确度 );DDDDDUUUUUDDDDDUUUUUDDDDDUUUUUUUUUUUUUUUw

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!