引言
随着无线传感器网络研究的不断深入,应用已经逐渐成为人们关注的焦点。各种在特定应用背景下的研究层出不穷,如环境监测、目标跟踪、安全监控等领域。位置信息对传感器网络的监测活动至关重要,事件发生的位置或获取信息的节点位置是传感器网络节点监测消息中包含的重要信息,了解传感器节点位置信息不仅可以获取路由信息,而且可以进行节点定位等[1]。测距的误差在很大程度上决定了目标定位及跟踪的误差。常用的定位方法必须测量节点间的距离,一般测距方式有红外线、GPS、超声波和接收信号强度指示器(RSSI)等。
红外线、 GPS、和超声测距都需要额外的硬件,增加了节点的硬件成本和尺寸。GPS和红外线测距误差较大,而利用超声方法测距很精确,测距误差只有10 cm,但是受气温、湿度等的影响较大,不适合在室外使用。基于RSSI的定位无需额外硬件,利用对接收无线信号的强度判断,推导收发节点间的距离,计算接收无线信号强度是商用无线收发芯片具备的功能[2]。基于RSSI的测距提供了最廉价的定位方法,而且节点没有添加任何部件。基于超声的测距虽然定位精度较高,但是需要添加硬件、增加节点成本和尺寸。所以,基于RSSI的测距是无线传感器网络定位较常采用的方法。首先对RSSI进行预处理,再通过预测模型预测距离的值,不但提高了基于RSSI的测距精度,而且实现了低成本的测距。
1 BP网络的模型结构与算法
BP网络是神经网络中采用误差反传算法作为其学习算法的前馈网络,通常由输入层、输出层和隐含层(一层或多层)构成。层与层之间的神经元采用全互连的连接方式,通过相应的网络权系数w相互联系,每层内的神经元之间没有连接[3]。图1所示为具有一个隐含层的BP网络模型。其中:LA为BP神经网络的输入层,LB为隐层,LC为输出层,Wir为隐层与输入层的权值,Vrj为输出层与隐层的权值。
图1 具有一个隐含层的BP网络模型示意图
2 实验平台及数据的预处理
2.1 RSSI值获取
实验在空旷的无障碍物的广场进行。基于TinyOS系统,以克尔斯博的Iris节点为实验平台,0号节点为固定节点,用于接收数据。发送和接收节点均使用短杆状天线,节点放置高度为2 m左右,固定0号节点,移动发射节点。经过大量的实验分析得出,RSSI在10 m的范围内随着距离的增加变化比较明显,而10 m以后,RSSI值随距离变化不明显。如果测量距离超过10 m,则测距的精度得不到保证,所以此实验的测试范围限定在0~10 m。实验人员拿着移动节点,从固定节点处沿着直线均匀走动,当走到10 m处停止接收数据,记录整个连续移动过程的实验数据。
图2 RSSI与距离的关系
3个工作人员分别拿着移动终端在0~10 m的范围内匀速前进,得到的RSSI值与距离的关系如图2所示。
由图2可以看出,不同的人员拿着移动终端前进,RSSI与距离的关系曲线基本一致,说明RSSI值与距离的关系符合一定的衰减规律。
在相同的实验平台下,在0~10 m的范围内,每间隔0.2 m或者0.3 m记录RSSI值,每个距离均接收100个左右的数据包,对RSSI先进行均值处理,然后得出RSSI值与距离的关系曲线如图3所示。
图3 RSSI与距离的关系曲线
对比图2和图3得出,停顿走比连续走时的RSSI值与距离的关系曲线更平滑,衰减更慢。因为连续走的时候,信号会受到人身体走动或者旁边干扰物的影响,出现不同程度的突变。为了确保距离预测值的精度,因此以停顿测量的数据作为测试样本。
2.2 RSSI值滤波处理
实验获取的RSSI值与距离的关系曲线还不够平滑,为了使样本的质量更高、训练效果更好,先对RSSI值进行滤波处理,分别进行限幅滤波处理、递推平均滤波处理和限幅平均滤波处理。图4为3种滤波方式的比较。
图4 3种滤波方式的比较
由图4可以得出,限幅平均滤波的效果最好,因此以限幅滤波后的数据作为训练样本。
3 BP网络模型的建立
以限幅滤波后的数据作为训练样本。以RSSI作为输入,以距离作为输出,一般的预测问题通过单隐层的BP网络实现,这里也是单隐层。
(1) 数据归一化处理
为了在Matlab中计算方便,需要对数据进行归一化处理。这里根据现有的数据情况,分别对输入和输出量进行归一化处理[4]。归一化的代码如下:
[pn,minp,maxp,tn,mint,maxt]=premnmx(p,t)
其中p为输入变量,t为输出变量。
(2) BP网络训练
网络中间层的神经元传递函数采用 S型的正切函数 logsig,输出层神经元传递函数采用线性函数purelin,采用traingdx函数进行训练,当训练141次后达到0.01的误差要求。
4 模型预测结果及与经验公式值的比较
为了验证测试结果的可靠性,根据网络训练的结果,把测试结果与真实值进行对比。为了突出该方法的优越性,与经验公式计算出来的距离值进行比较。表1为模型预测值、经验公式值与真实值的比较。
表1 模型预测值、经验公式值与真实值的比较
由表1可以得出,由BP神经网络模型预测的距离值与经验公式计算出来的距离值相比,整体误差较小。经验公式计算的距离误差最大为2.7351 m,最小误差为0.5338 m,而由模型预测的距离误差最大为0.7976 m,最小误差为0.0232 m,测距的精度明显提高了很多。
5 结论
BP神经网络具有很强的自学习、自组织及自适应能力,具有高度非线性函数映射功能,通过对样本的预处理,可以提高训练结果的精度。因此,样本的好坏直接影响训练结果。节点RSSI值的随机性较大,会随着环境及其他干扰的影响发生突变。因此先对RSSI值进行滤波处理,滤掉突变的数据再进行网络的训练,预测结果就能达到较理想的水平。这适用于不同的场合,提高了测距精度,从而进行精确定位。