APP下载

基于RSSI 优化的LANDMARC 室内定位算法的研究

2022-06-06王庆利

关键词:信号强度卡尔曼滤波高斯

段 飞,王庆利

(1.沈阳工程学院 电力学院,辽宁 沈阳 110136;2.仰恩大学 工程技术学院,福建 泉州 362014)

随着智能设备、互联网和无线通信技术的高速发展与完善,人们对定位与导航方面的需求更加强烈,其中就包括对室内定位的需求。全球定位系统GPS(Global on System)是一种成熟的室外定位系统,但其在室内的定位效果却差强人意[1]。因此,需要依靠一些无线辅助技术,如超声波、红外线、无线传感网络、无线射频识别等技术来帮助其实现室内的定位[2]。

相比其他定位技术而言,无线射频识别技术(radio frequency identification devices,RFID)具有非接触、非视距、短时延、传输范围大和成本低等优点,因此成为众多室内定位方法的首选技术[3]。RFID 室内定位方法分为两大类:以测距(Range Based)为基础的定位方法和不以测距(Range Free)为基础的定位方法。基于测距的室内定位方法是利用信号到达时间TOA(Time Of Arrival)、信号到达时间差TDOA(Time Difference Of Arrival)、信号到达角度AOA(Angle Of Arrival)及接收信号强度RSSI 来判断定位距离。LANDMARC 算法是基于接收信号强度RSSI 的室内定位的经典算法[4],也是实际运用较为普遍的一种算法,因此提高该算法的精度和稳定性具有重要的研究价值。

LANDMARC 室内定位算法还未达到理想程度,主要是由于室内存在各种复杂因素的干扰。该算法主要是依靠信号强弱来实现室内定位,而RSSI值极易受到外界环境的干扰,一旦受到干扰,直接导致RSSI 信号不够准确。所以,提高RSSI值的准确性,是增强室内定位实用价值的关键。本文先通过高斯滤波算法修正RSSI 信号,再借助卡尔曼滤波算法再次修正先前修正后的RSSI 数据,从而得到更为精准的RSSI值,最后将修正后的RSSI值作为LANDMARC算法的输入量,通过计算得到待定位置的坐标。这样,在不增加定位成本的条件下,可以有效提高定位精准度。

1 传统LANDMARC定位算法简述

2003 年,美国密歇根州立大学率先提出了LANDMARC 算法。LANDMARK 室内定位系统是由电子标签、阅读器和系统软件3 部分组成。该系统通过加入参考标签的概念,很大程度地降低了室内环境对定位精度的影响。另外,在提高定位精度的同时,减少了室内定位的费用。

LANDMARC 算法的核心思想是利用参考标签的固定位置,计算和校准待定位标签的位置。通过对比参考标签信号强度值与待定位标签信号强度值的不同,选出若干个最近邻的参考标签,从而借助“最近邻距离”权重估计待定位标签的坐标[5]。

LANDMARC定位系统先获取可精准定位的n个参考标签位置信息,再从其中选出k个具备“最近邻距离”特点的参考标签。所谓“最近邻距离”是指筛选出的参考标签与待定位标签两者间的距离是最小的。k个参考标签是通过与待定位标签的欧几里德距离来确定的。通过阅读器获得所有参考标签与待定位标签的信号强度值,根据两者信号强度值可以得到两者之间的欧几里德距离,距离值越小,说明它们越近,就越是“最近邻”,从中找到k个距离待定位标签最接近的参考标签。LAND‐MARC 定位系统在找到k个“最近邻距离”的参考标签后,根据筛选出的k个参考标签的坐标,利用LANDMARC 算法对待定位标签的坐标进行计算,最终得到其位置信息,即二维坐标[6]。

假设一个室内有N个均匀分布的电子标签、M个阅读器和L个随机分布在室内的待定位标签。阅读器测得参考标签的信号强度矩阵为S=[Si]j(i=1,2,…,N;j=1,2,…,M),Sij表示由j阅读器检测出的参考标签i的RSSI值。同理,每个由阅读器测得的待定位标签的信号强度值矩阵为θ=[θh]j(h=1,2,…,L;j=1,2,…,M),θhj则表示由j阅读器检测的待定位标签h的RSSI值。由此可得,待定位标签h与参考标签i之间的场强欧氏距离为

式中,Ehi表示第i个参考标签到第h个待定位标签的欧氏距离,其数值越小,表示两者间的距离越近。

选取最接近待定位标签h的RSSI值的k个参考标签,并赋其权重。与待定位标签距离越近,此参考标签的权重就越大。设ωhi为邻近参考点i的权重,其计算公式为

依据与待定位标签具有“最邻近距离”的参考标签坐标,计算其位置坐标:

式中,(xi,yi)为“最近邻”参考点i的位置坐标。定位误差为

式中,e表示精准坐标和计算所得坐标之间的误差。LANDMARC 定位算法计算出的待定位标签坐标为(x,y),待定位标签的准确坐标为(x0,y0)。

2 RSSI的优化预处理

在无线射频识别技术中,随着无线信号传播距离逐渐增加,其信号强度也会逐渐变弱,加之室内传播条件多变,室内信号强度与传播距离的关系就更加复杂。因此,即使在同样的位置采集的RSSI信号也是不同的。对同一位置采取多次测量,发现某一区间RSSI值的分布密度越大,此位置的RSSI值和真实值越接近。在对接收信号RSSI进行了统计分析后可知,并不是所有的样本总体都是来自正态分布[7]。在这种情况下,若直接使用正态分布函数估计其总体的概率密度,则结果并不准确。本文选用高斯核函数对接收的信号RSSI样本总体进行概率密度估计,最后留下大概率密度的RSSI值,其他滤除掉,以此来保留大概率数据。然而,通过筛选不可以消除RSSI值的误差波动,只滤除掉一些误差比较大的数据[8]。为了使RSSI 数据平滑地输出,本文还结合了卡尔曼滤波算法,对保留部分的RSSI值进行卡尔曼滤波,然后将处理完的RSSI取均值,所得值就是该待定位标签最后确定的RSSI值。

2.1 RSSI测距模型

目前的定位算法一般都会将室内障碍物因素考虑在内,无线信号传输中采用的普遍理论模型为

式中,d0是参考距离;ρ0是距离为d0时接收的信号强度;d是真实距离;ξ是遮蔽因子。

在实际运用中,通常取d0=1 m,ξ=0,从而得到实际的RSSI测距公式为

式中,A为距离信号发射源1 m 处的信号强度平均值的绝对值;n为环境参数,与信号传播环境有关;A和n为待定参数。

由于多径效应的影响,参考标签与待定位标签的RSSI 会产生误差,导致最邻近参考标签的权重系数会变得不准确,最终会影响定位的精度,增大定位误差。

2.2 高斯滤波模型

高斯滤波算法是一种设法消除噪声等不确定因素的影响对动态数据平滑输出的算法,适用于具有高斯分布特征的动态离散数据,通过对某个位置的RSSI值进行高斯滤波,找出最大密度的RSSI值,并滤除掉零散的错误数据[9],使得最终输出的结果更加接近真实值。拟合函数为

将RSSI 信号输入到高斯滤波函数中,通过高斯滤波函数保留大概率数据,然后对保留部分的RSSI值求平均,所得到的数据就是滤波后的RSSI值。因为滤波函数是非线性函数,若RSSI值都要输入到滤波函数中,这会使得该算法的计算量变大,抗干扰能力变差[10-11]。所以,通过使用高斯滤波的方法来快速地对RSSI 数据进行筛选,即利用源数据的均值和标准差来筛选RSSI 数据,计算公式为

式中,P为保留数据的百分比;K为保留的数据个数;N为数据的总个数。

如果P过小,则说明保留的数据少,可能会使得数据的真实性受到破坏,这就需要增大K值,提高数据保留的百分比,从而保证数据的准确性。依据RSSI的波动情况,通过K值的改变,动态地改进高斯滤波算法,提高算法的计算速度。高斯滤波算法只是剔除了远离真实值的数据,并未对数据的波动进行优化。为了保证平滑输出RSSI 数据,可以再利用卡尔曼滤波对RSSI值进行优化。

2.3 卡尔曼滤波模型

卡尔曼滤波(Kalman filtering)可以从夹杂着各种随机噪声的信号中分离出有用信号,是一种最优化自回归数据处理算法[12]。其原理是利用系统真实测量值和预估值,重新构造状态向量,以预估-校正的思想模型进行迭代,通过系统的真实测量值和预估值来优化测量值,消除随机噪声,对系统状态进行重新构造。随着计算机和软件技术的发展,卡尔曼滤波应用在工程上已经不再是难事,并且人们还在标准的卡尔曼滤波算法上推广出扩展卡尔曼滤波、无迹卡尔曼、交互多模型卡尔曼滤波等[13]。

当研究对象是某个标签的RSSI信号时,如果是理想情况下,此标签的RSSI值应该是保持不变的。也就是说,当前信号的RSSI值应该等于上一时刻信号的RSSI值,然而实际情况是由于存在干扰,RSSI值并不是100%不变的。此外,同一标签测量到的信号强度RSSI值受到无线信道复杂性的影响,使得测量到的信号强度RSSI值也不准确,与真实值之间存在偏差。人们通常把该偏差统一地认为是高斯白噪声。根据卡尔曼滤波原理,测量的任一时刻,该位置均有两个RSSI值,分别为预估值和测量值,利用这两个值,再结合各自的噪声,就可以得到该位置的实际RSSI值。卡尔曼滤波算法如下:

1)RSSI的预估值

5)k时刻的误差协方差

按此算法这样递归下去,就可以得到RSSI的最优值。

3 实验及结果分析

3.1 实验一

利用MATLAB 仿真软件,通过RSSI 信号对数损耗仿真模型来仿真RSSI 信号,并且有小概率的大干扰加入。其中,A=-50,n=3,ξ均值为0,标准差为5。

该实验的测量数据为接收端和发射端距离15 m 时的信号强度值,并测量30 次,产生30 个RSSI测量值,对其分别用高斯滤波、卡尔曼滤波以及高斯-卡尔曼滤波算法进行滤波处理。其中,真实值是由未加入干扰的室外RSSI对数损耗模型所产生,测量值为正常情况下从接收设备中接收的RSSI信号值。

对数据各仿真30 次,得到滤波后,取平均RSSI值,如图1 所示。对每次的结果取平均值,可算出滤波后的平均距离误差:测量平均误差为2.44 m,高斯滤波平均误差为1.83 m,卡尔曼滤波平均误差为1.18 m,高斯-卡尔曼滤波平均误差为0.92 m。

图1 RSSI信号的滤波值

与此同时,使用仿真软件对距离为15 m 的信号强度值进行不同次数的仿真,并对其结果进行同样的滤波处理,如图2 所示。从图中可以看出,仿真次数会对滤波结果产生影响,仿真次数越多,滤波后的效果越好,误差也越小,滤波后的效果也相对稳定。同时还发现高斯-卡尔曼滤波结果相对另外两种滤波方式波动较小,平均误差值也相对较小,但发现滤波的次数达到40 次后,高斯-卡尔曼滤波的平均误差值基本徘徊在1 m 左右,考虑到计算时间的原因,仿真次数定为40 次较为合理。

图2 不同次数的滤波结果

3.2 实验二

通过对优化前后的算法进行仿真实验,可以验证优化后的算法的定位效果。仿真环境为一个20 m×20 m 的室内,在室内的4 个角有4 个阅读器,36个参考标签,每个参考标签间隔4 m,且均匀分布,并随机放置15 个待测标签。分别使用LAND‐MARC 算法和优化后的LANDMARC 算法进行定位,定位结果如图3所示。

图3 仿真环境及两种算法定位结果

根据两种算法的定位结果可以算出每个定位结果与实际位置的误差,如图4所示。

根据图3 和图4 的仿真结果可以计算得到LANDMARC 算法的平均误差,最大误差分别为1.29 m、2.85 m。而优化后的LANDMARC 算法的平均误差,最大误差分别为0.73 m、1.38 m。可以看出优化后的LANDMARC 算法的平均误差较原算法减少了0.56 m,定位精度得到大大的提高。在两种算法定位结果中,优化后的LANDMARC算法的最大误差也明显小于原算法,优化后的LAND‐MARC 算法有效地减小了大误差的产生。由此得出,优化后的室内定位效果较优化前有较大提升,而且优化后的LANDMARC 算法的定位结果更加稳定可靠,可以在不同的室内环境下更好地完成定位,达到比较理想的定位效果。

图4 两种算法定位结果的误差

4 结论

本文提出一种基于RSSI 优化的LANDMARC室内定位算法,首先分析了RSSI信号特点,再通过仿真模型仿真出RSSI 信号,借助高斯滤波和卡尔曼滤波相结合的算法对RSSI数据进行深度过滤和优化。仿真的结果表明,在干扰存在的情况下,高斯滤波和卡尔曼滤波对RSSI信号都有一定的优化作用,将两者结合起来,高斯-卡尔曼滤波可以进一步减小RSSI 信号的误差值,从而提高LAND‐MARC 室内定位算法的定位准确性。经实验验证,该方法的定位均值误差为0.73 m,1 m 以内的误差累积分布概率达73%,定位效果明显优于同类方法。由于本文中的实验是在空旷的室内进行,不需要考虑因障碍物遮挡引起的信号衰减问题,后续将进一步研究如何减少信号衰减对定位的影响。

猜你喜欢

信号强度卡尔曼滤波高斯
光学相干断层成像不同扫描信号强度对视盘RNFL厚度分析的影响
电子自旋共振波谱法检测60Co-γ射线辐照中药材
数学王子高斯
天才数学家——高斯
卡尔曼滤波在信号跟踪系统伺服控制中的应用设计
室内定位信号强度—距离关系模型构建与分析
基于递推更新卡尔曼滤波的磁偶极子目标跟踪
WiFi信号强度空间分辨率的研究分析
基于序贯卡尔曼滤波的OCT信号处理方法研究
基于模糊卡尔曼滤波算法的动力电池SOC估计