无线传感器网络
实验指导书
信息工程学院
实验一 质心算法
一、实验目的
掌握合并质心算法的基本思想; 学会利用MATLAB实现质心算法; 学会利用数学计算软件解决实际问题。 二、实验容和原理
无需测距的定位技术不需要直接测量距离和角度信息。定位精度相对较低,不过可以满足某些应用的需要。
在计算几何学里多边形的几何中心称为质心,多边形顶点坐标的平均值就是质心节点的坐标。
假设多边形定点位置的坐标向量表示为pi= (xi,yi)T,则这个多边形的质心坐标为:
例如,如果四边形 ABCD 的顶点坐标分别为 (x1, y1),(x2, y2), (x3, y3) 和(x4,y4),则它的质心坐标计算如下:
?x1?x2?x3?x4x,y?,???4?y1?y2?y3?y4??4?这种方法的计算与实现都非常简单,根据网络的连通性确定出目标节点周围的信标参考节点,直接求解信标参考节点构成的多边形的质心。
锚点周期性地向临近节点广播分组信息,该信息包含了锚点的标识和位置。当未知结点接收到来自不同锚点的分组信息数量超过某一门限或在一定接收时间之后,就可以计算这些锚点所组成的多边形的质心,作为确定出自身位置。由于质心算法完全基于网络连通性,无需锚点和未知结点之间的协作和交互式通信协调,因而易于实现。 三、实验容及步骤
该程序在Matlab环境下完成无线传感器中的质心算法的实现。在长为100米的正方形区域,信标节点(锚点)为90个,随机生成50个网络节点。节点的通信距离为30米。
需完成:
分别画出不同通信半径,不同未知节点数目下的误差图,并讨论得到的结果
所用到的函数:
1. M = min(A)返回A最小的元素.
如果A是一个向量,然后min(A)返回A的最小元素.
如果A是一个矩阵,然后min(A)是一个包含每一列的最小值的行向量。 2. rand
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:估计位置和实际位置距离矩阵(误差) 四、源程序
clear clc
%锚节点节点设置
for i=1:1:10%1到10,步长是1;画出锚点,前一个括号是标号。 for j=1:1:10
x(j+(i-1)*10)=(i-1)*10; y(j+(i-1)*10)=(j-1)*10; end end