文献标识码: A
DOI:10.16157/j.issn.0258-7998.190504
中文引用格式: 高媛,阳媛. 基于指纹量化的改进加权质心定位算法[J].电子技术应用,2019,45(9):77-80,84.
英文引用格式: Gao Yuan,Yang Yuan. An improved weighted centroid location algorithm based on fingerprint quantization[J]. Application of Electronic Technique,2019,45(9):77-80,84.
0 引言
在无线传感器网络[1]技术的应用中,目标定位至关重要。为了获得更加精确的定位,国内外研究人员提出了多种定位的算法[2-3],如基于测距的定位算法和基于非测距的定位算法[4-5]。目前研究最广泛的算法是基于接收信号强度(Received Signal Strength Indication,RSSI)的测距算法,该类算法软硬件实现起来简单,功耗和成本都较低,很适合室内的短距离无线定位[6]。将基于RSSI的测距算法与非测距定位算法中的质心算法相结合进行目标定位是目前研究的热点,但RSSI受环境及节点间距的影响,测距误差大[7-8],质心定位算法受到测距误差的影响,导致定位不准确。为了提高定位精度,文献[9]提出了一种改进的加权质心迭代算法,将已定位节点升级为参考节点进行后续定位,对不同类型的节点使用不同的权值,然后利用误差修正因子对定位误差进行校正。文献[10]在RSSI测距阶段采取卡尔曼滤波平滑优化,之后对定位坐标进行加权和补偿。文献[11]提出基于节点相关系数的RSSI定位算法,利用约束条件选出相关系数较大的区域,在区域内估算RSSI值,同时修改权值。文献[12]以RSSI值解算的距离值的倒数和作为权重,同时通过实例得出权值修正系数n=6时定位精度最高的结论。
本文在上述算法的基础上提出了基于指纹量化的改进加权质心定位算法,在一跳范围内采集实际测量值建立指纹数据库,避免信号强度衰减造成的测距误差,然后将目标定位时接收到的一跳范围内较大的3个信号强度值在指纹数据库中进行比对,获得量化距离及量化RSSI值,进一步利用改进的交集三角形加权质心算法对未知节点进行定位,提高了定位的精度。
1 算法实现
指纹量化加权质心定位算法的实现步骤如下:(1)指纹数据库的建立,通过实际测试,选择等间隔距离设置若干采样点,采集适量样本数据,构建指纹数据库;(2)量化距离及量化RSSI值的确定:根据参考节点布放的间隔设定量化域,划分若干量化区间,将指纹数据库中的样本数据作为量化区间的端点,目标定位时,将未知节点接收到的RSSI值在量化域中进行比对,确定所在区间,选择邻近的量化区间端点,将该端点对应的样本距离作为未知节点到参考节点的量化距离,对应的样本RSSI值作为量化RSSI值;(3)交集三角形质心定位算法改进:改进传统加权质心定位算法权值的选取方式,考虑量化误差以及未知节点与参考节点的距离,以获取更加合理有效的权值,提高定位精度。
1.1 指纹数据库的建立
室内环境下一般障碍物多,环境复杂,造成干扰因素多,RSSI信号衰减严重,导致测距模型计算的误差加大。RSSI理论值与实际值的对比数据如图1所示。在0~15 m的测试区间内,将发射端AP位置固定,接收端从距离AP 1 m的地方向后移动,每隔任意距离(均小于1 m)测量10个数据,求出信号强度的平均值。可以看到,RSSI测距的实际测量值与理论值之间存在较大的误差。所以,本文直接选用实际测量值建立指纹数据库,避免因信号衰减严重而造成的理论误差问题。
在室内选择N个位置布放参考节点,距离每个参考节点每远离相同的距离D,以参考节点为圆心,以逐渐增加的距离为半径,在圆周上不同位置采集N′次RSSI值。为保证定位精度,D值应小于0.5 m。计算N个位置处的以参考节点为圆心、半径相同的圆周上的RSSI值的平均值作为各个采样点的RSSI值,该RSSI值与采样点距离参考节点的实际距离(即圆周的半径)一起作为该采样点的指纹样本,如图2所示。
设每个采样点采集的RSSI数据和指纹样本RSSI数据分别为RSi和RFi,两者的关系如式(1)所示:
则确定该点的指纹样本为(RFi,dFi)。
为保证定位精度,设定未知节点定位时仅选用一跳范围内的参考节点,室内实际参考节点的布放保证未知节点可在一跳范围内至少接收到3个参考节点的信号。据统计分析,未知节点到可用参考节点的最远距离小于间距最大的相邻两参考节点间的距离,将相邻两参考节点间的最大间隔记为Smax,根据上述指纹样本的确定原则,可得到指纹数据库如式(2)所示:
1.2 量化距离及量化RSSI值的确定
在目标定位时,未知节点与参考节点间的实际距离是任意数且有无穷多个取值。为快速获取到两者间的实际距离,本文采用数字通信技术中的量化思想[13],设定量化域,划分量化区间,获得量化距离。
将指纹数据库中的指纹样本数据(RF1,dF1)与(RFi,dFi)之间构成整个量化域,在量化域中根据指纹样本的数量划分等量的量化区间,取指纹数据库中各个指纹样本(RFi,dFi)作为各量化区间的端点,样本中的距离值dFi作为量化距离,RSSI值RFi作为量化RSSI值。dFi与dFi-1间的距离为D,RFi与RFi-1间的差值无规律,为任意量。量化的物理过程如图3所示。
目标定位时,将未知节点接收到的来自参考节点信号的RSSI平均值RA与指纹数据库中的指纹样本数据进行比较,当RFi<RA<RFi+1时,RA落在(RFi,dFi)与(RFi+1,dFi+1)确定的量化区间内,此时比较RA分别与RFi、RFi+1的距离差,选择差值小的指纹样本数据并作记录,将该指纹样本数据中的指纹样本距离作为此未知节点到参考节点的量化距离,指纹样本RSSI值作为量化RSSI值。设RA与RFi、RFi+1的差的绝对值分别为RAFi与RAFi+1,计算公式如下:
比较RAFi与RAFi+1的大小,如果RAFi>RAFi+1,说明RA更接近于RFi+1的值,此时选择指纹样本(RFi+1,dFi+1);如果RAFi<RAFi+1,则选择指纹样本(RFi,dFi),未知节点到参考节点的量化距离以及量化RSSI值即可确定。
按照以上方法,未知节点到一跳范围内的3个参考节点AP1、AP2、AP3的量化距离都能确定,分别记作d1、d2、d3。
当量化距离已确定,则通过交集三角形加权质心算法确定目标位置。
1.3 交集三角形质心定位算法改进
在传统质心算法的基础上,为提高定位精度,许多学者针对该算法的原理,对权值进行了改进,提出了一种加权质心算法[14],将未知节点接收到的RSSI值作为权值,通过这种方式可以反映出参考节点对未知节点的影响程度,从而达到提高定位精度的目的,如式(6)所示:
其中,wi为权值,(x,y)为未知节点坐标,(xi,yi)为参考节点坐标。在实际环境中,单纯使用RSSI值作为权值可能会使定位误差较大,RSSI值随着距离的增大会不断减小。
本文提出了一种改进的交集三角形加权质心定位算法,如图4所示。设参考节点AP1、AP2、AP3的坐标为(xAP1,yAP1)、(xAP2,yAP2)、(xAP3,yAP3),分别以AP1、AP2、AP3为圆心,量化距离d1、d2、d3为半径作圆,由式(7)计算3个圆相交的3个点B1、B2、B3的坐标(xB1,yB1)、(xB2,yB2)、(xB3,yB3)。
同理可得B2、B3点的坐标。
由于本文对未知节点到参考节点的实际距离进行了量化,一定会产生相应的量化误差,参考节点AP1、AP2、AP3与未知节点间的量化距离以及量化误差的大小同时影响着未知节点的定位,本文对于权值的选择有以下考虑:
(1)参考节点距离未知节点越近,对未知节点的定位影响越大,故选取作为权值的参数;
(2)量化误差越小,对应的参考节点对未知节点的定位影响越大,将量化RSSI值和实际测得的RSSI均值间的差值记为ε,计算式如式(8)所示。
2 算法流程
算法流程如图5所示。
3 实验仿真
3.1 实验环境
本文的实验选择在一个10 m×15 m的办公环境内进行,基于ZigBee定位系统,硬件采用6个CC2530射频芯片,其中4个作为参考节点,1个作为未知节点,1个作为网关。本文将参考节点位置固定,分别放置在(0.00,0.00)、(9.75,0.00)、(0.00,14.50)、(9.75,14.50),对未知节点随机选择20个位置进行实验,如图6所示。星形点“*”表示参考节点,空心圆“o”表示未知节点。
3.2 算法性能估计
3.3 仿真结果与分析
本文首先与基于RSSI的三角加权质心算法进行对比,在相同的实验环境及实验参数下,测得数据拟合出两种算法的误差对比图如图7所示。
从图6可以看出,三角加权质心算法最大定位误差为2.3 m,平均定位误差Err=0.78 m,有40%的未知节点定位误差在1 m以下,有15%的未知节点定位误差在0.5 m以下;利用本文算法得到的最大定位误差为1.6 m,平均定位误差Err=0.68 m,有70%的点定位误差在1 m以下,有45%的未知节点定位误差在0.5 m以下。比较两种算法,本文算法的定位精度大大高于三角加权质心算法。
文献[6]的定位算法也是基于RSSI的改进三角加权质心算法,实验的环境与本文相似。为了进一步测试本文改进定位算法的性能,将其与文献[6]的定位算法进行测试对比。本文的定位算法与文献[6]算法的测试对比结果如图8所示。
从图8可以看出,在多数点上本文的定位精度都是高于文献[6],仅在个别点上定位精度低于文献[6],但是差别也很小。所以本文算法的定位精度从总体上来说要高于文献[6]的算法。
4 结束语
本文提出了一种改进的基于指纹量化的三角加权质心定位算法,采集实际测量值建立指纹数据库,在量化域内对未知节点接收到的RSSI值进行量化获得相应量化距离及量化RSSI值,同时考虑将量化距离及量化误差作为权值参数。实验结果表明,该算法可以有效避免因信号衰减严重而造成的理论误差问题,提高了定位精度,有一定的实用价值。
参考文献
[1] 寿向晨,徐宏毅.无线传感器网络中RSSI定位算法的设计与实现[J].武汉大学学报(工学版),2015,48(2):284-288.
[2] 李银,汪洋,陈冬明.基于RSSI的无线传感器网络定位系统设计与实现[J].计算机测量与控制,2015,23(3):1061-1064.
[3] 胡斌斌,倪小军.基于RSSI测距室内定位改进质心算法[J].计算机技术与发展,2017,27(8):133-136.
[4] 杨润丰,骆春波.基于无线信号接收强度定位的无人机群避碰[J].电子技术应用,2017,43(4):117-120.
[5] 孔范增,任修坤,郑娜娥.基于GDOP权值交点的鲁棒AOA定位算法[J].电子技术应用,2016,42(9):107-110.
[6] 王亚民,王海英,何佩伦.基于RSSI的改进加权质心定位算法[J].计算机工程与设计,2016(11):2865-2868.
[7] 王群,李宗骍,李千目,等.基于实时运动状态的RSSI测距室内定位算法[J].南京理工大学学报(自然科学版),2015,39(2):229-235.
[8] 罗健宇,张卫强,徐艇.基于RSSI优化模型的室内定位系统[J].无线通信技术,2018(3):25-30.
[9] 谢桦.基于RSSI的无线传感网络加权质心定位算法[D].赣州:江西理工大学,2017.
[10] 刘玉龙.基于RSSI的无线传感器网络定位算法的研究与实现[D].沈阳:沈阳航空航天大学,2017.
[11] 王晓彬.基于多维标度与RSSI的室内定位算法研究[D].太原:太原理工大学,2018.
[12] 路泽忠,卢小平,付睢宁.一种改进的RSSI加权质心定位算法[J].测绘科学,2019(1):26-31.
[13] 陈爱军.深入浅出通信原理[M].北京:清华大学出版社,2018.
[14] Bai Yun,Li Chunming,Xue Yuan.A centroid localization algorithm for wireless sensor networks based on RSSI[C].Applied Mechanics and Materials,2013:197-200.
作者信息:
高 媛1,阳 媛2
(1.徐州工业职业技术学院,江苏 徐州221000;2.东南大学 仪器科学与工程学院,江苏 南京210096)