资源预览内容
第1页 / 共12页
第2页 / 共12页
第3页 / 共12页
第4页 / 共12页
第5页 / 共12页
第6页 / 共12页
第7页 / 共12页
第8页 / 共12页
第9页 / 共12页
第10页 / 共12页
亲,该文档总共12页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
.无线传感器网络实验指导书信息工程学院w.实验一质心算法一、实验目的掌握合并质心算法的基本思想;学会利用 MATLAB 实现质心算法;学会利用数学计算软件解决实际问题。二、实验内容和原理无需测距的定位技术不需要直接测量距离和角度信息。定位精度相对较低,不过可以满足某些应用的需要。在计算几何学里多边形的几何中心称为质心,多边形顶点坐标的平均值就是质心节点的坐标。假设多边形定点位置的 坐 标 向 量 表 示 为pi =(xi , yi )T,则这个多边形的质心坐标为:例如,如果四边形ABCD 的顶点坐标分别为(x1, y1) ,(x2 , y2 ), ( x3 , y3 ) 和 (x4 ,y4 ),则它的质心坐标计算如下:x, yx1 x2 x3 x4 ,y1 y2 y3 y444这种方法的计算与实现都非常简单, 根据网络的连通性确定出目标节点周围的信标参考节点,直接求解信标参考节点构成的多边形的质心。锚点周期性地向临近节点广播分组信息,该信息包含了锚点的标识和位置。当未知结点接收到来自不同锚点的分组信息数量超过某一门限或在一定接收时间之后, 就可以计算这些锚点所组成的多边形的质心, 作为确定出自身位置。 由于质心算法完全基于网络连通性, 无需锚点和未知结点之间的协作和交互式通信协调,因而易于实现。三、实验内容及步骤该程序在 Matlab环境下完成无线传感器中的质心算法的实现。在长为 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 的第一个数组维度的元素的总和。如果 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 (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+(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 onenddm=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,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: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 计算得到校正值(即平均每跳距离)为(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-1000, 300个节点, 60 个信标节点)所用到的函数:参见上节:质心算法;需完成 :1) 运行程序,生成随机分布的节点;2) 更正程序中的错误,求每个信标节点的校正值;3) 继续运行程序,利用跳数估计待求节点的距离。四、源程序%DV-Hop算 法w.% BorderLength- 正方形区域的边长,单位: m% NodeAmount- 网络节点的个数% BeaconAmount- 信标节点数% Sxy- 用于存储节点的序号,横坐标,纵坐标的矩阵%Beacon- 信标节点坐标矩阵;BeaconAmount*BeaconAmount%UN- 未知节点坐标矩阵;2*UNAmount% Distance- 未知节点到信标节点距离矩阵 ;2*Be
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号