文献标识码: A
文章编号: 0258-7998(2013)03-0104-04
无论是在室内还是在室外环境下,快速而准确地获得终端的位置信息以及位置服务的需求变得日益迫切。
目前室内定位系统采用的技术主要有射频识别、ZigBee、超声波、视频、超宽带等;定位算法按照是否对距离进行测定分为基于测距和非测距两类。前者主要有TOA(Time of Arrive)、AOA(Angle of Arrive)、TDOA(Time Difference of Arrive)等方法,后者主要有基于接收信号强度RSSI(Received Signal Strength Indicator)的定位算法等。由于室内无线信号存在多径传播,以及参考时钟的不精确性, 这些因素都将使距离估计的准确性大打折扣。另外,室内情况下设备之间的距离较短,存在严重的反射、衍射和绕射等非直线传播的情况,信号在各条多径分量上的时间相当接近,现有设备的分辨率不足以区分时间上如此接近的各路信号,所以精确的TOA估计或TDOA估计,几乎成为不可能[1]。而基于RSSI技术则具有检测设备硬件成本低、测量信号稳定可靠、定位算法简单等优点。因此基于RSSI非测距的定位技术成为近年来室内定位研究的热点[2]。
当前低成本的蓝牙无线通信技术发展迅速,蓝牙技术又能提供接收信号强度RSSI、链路质量LQ(LinkQuality)、传输功率级TPL(Transmit Power Level)[3]等参数,因此蓝牙系统可以方便地使用基于非测距的定位算法。
基于RSSI的非测距定位算法在定位阶段进行信号采集时仍然会受干扰,因此需要对采集到的RSSI信息进行滤波处理,然后利用匹配定位算法来提高定位的准确性。
匹配定位算法中,利用神经网络虽然可以有效地控制平均定位误差,但它同时也存在着容易陷入极小点、结构和类型的选择过分依赖经验的缺点。基于概率的算法又存在算法复杂的劣势。K阶近邻算法较适合于本问题[4]。
本文介绍了一种基于RSSI指纹的K阶近邻定位算法,该算法在原有定位算法的基础上增加了对信号的突变噪声的滤除,是一种低计算资源消耗蓝牙室内定位技术,同时又具有整体成本低、定位精度高、定位迅速的优点,是一种较为理想的室内定位方式。
1 基于指纹技术的蓝牙室内定位系统
1.1 硬件构成
基于蓝牙技术室内定位系统硬件主要由两部分组成,包括若干蓝牙锚节点和待定位节点。锚节点由3~7个蓝牙串口模块构成,串口蓝牙模块如图1所示,厚度5 mm,宽度13 mm,长度28 mm,主要由电源模块和蓝牙核心模块组成,单个硬件成本约为4美元。待定位节点主要由一个蓝牙适配器和上位机组成,上位机负责数据采集。
蓝牙串口模块主要利用bluelab作为工具进行开发,支持多种连接模式。上位机的蓝牙适配器底层驱动为BlueSoleil6或者以上的版本,应用开发工具包为IVT BlueSoleil Software Development Kit,支持蓝牙一对多连接。
在定位节点的蓝牙适配器和所有锚节点连接完成后,通过调用Btsdk_GetRemoteRSSI函数来实现对多个锚节点的RSSI数据采集。
整个定位系统的构成仅需要若干蓝牙模块,目前蓝牙模块成本较低,普及率高,适合大范围推广。
1.2 指纹算法定位流程
基于指纹技术的蓝牙室内定位系统是通过对蓝牙多径信号的实际测量,建立位置指纹库,将需要定位的蓝牙设备实测数据与位置指纹数据库进行对比来确定出蓝牙设备的实际位置的一种技术。它的实施一般分为两个阶段:离线阶段和在线定位阶段[5]。
(1)离线阶段又称之为数据采集阶段,该阶段的主要工作是采集所需定位区域的各位置的蓝牙信号强度,形成位置指纹数据库,每一个指纹信息对应一个特定的位置。指纹定位系统离线阶段的系统示意如图2所示。
离线阶段的数据库建立需要在定位区域内用采集设备对数据进行采集,锚节点支持点对点连接,而采集设备则支持一对多的连接方式。数据采集完成后存储在采集设备内,并完成数据库的建立。
锚节点通常布置在位置已知的坐标点,采集设备在若干指定的位置坐标点进行一定时长的信号采集,并对信号进行处理,从而建立坐标与蓝牙信号的位置对应指纹数据库。
(2)在线定位阶段包括信号强度的采集、数据处理、判定区、距离估计和位置计算等工作。当系统处于在线定位阶段时,利用离线阶段获得的信息和在线收集的各个测试点的信号强度得出终端设备的位置。定位流程如图3所示。
2 系统定位算法
蓝牙系统使用跳频技术来降低干扰,但在室内环境下,人在建筑物内的移动会随机地对无线信号的传播产生影响。另外还有一些干扰源,包括温度、空气的运动以及运行在相同频率的其他设备,也会使得某些位置的接收信号随着时间发生漂移[6]。因此首先对采集到的RSSI信息进行滤波处理后,采用相应的优化匹配算法可以提高定位的准确性。
室内环境下噪声通常由两部分组成,白噪声和突变噪声。白噪声可以通过对信号进行多次平均处理去除,离线阶段就是采用这种方法消除白噪声的影响。而在在线定位阶段,定位信号的采集的长度一般都是有限的,平均方法的使用将会受到很大的限制[7],在线阶段采用卡尔曼滤波方法来去除白噪声的影响,而在室内环境下信号受突变噪声影响较大,利用小波变换方法可以通过对信号进行分解和重构来消除这种突变的高频噪声的成分[8],从而提高定位精度。
K阶近邻算法[4]的基本思想是:在给定新的实例后,根据与该实例的相似度在训练样本中选取与该实例距离最近的k个样本,然后由这k个样本进行新实例的值的判定。该算法假定所有的实例对应于n维空间的Rn中的点,在该n维空间中,任意一个实例x可以表示成如下的特征向量:
在每个坐标点采样得到如下数据格式(xi,xj)<RSSIi1,RSSIi2,RSSIi3,RSSIi4>,<RSSIi1,RSSIi2,RSSIi3,RSSIi4>进行均值处理,得到指纹数据库。
3.2 在线定位阶段
目标在(3,4)位置处静止不动,在室内人员正常活动时进行数据采集。采样间隔为1 s,采样点数为130个。数据采集完成后,对定位数据进行不同滤波处理,采用3阶近邻法进行定位。
3.3 定位结果
定位结果如图5~图9所示。
图中星型点均表示在线定位阶段1 s内130个样点的定位结果分布,黑点表示设备的实际位置。
图5是直接利用原始信号定位时的设备定位结果。由图5可以明显看出定位位置点分布比较稀疏,受室内人员活动带来的突变噪声影响,直接定位位置点中与实际位置最大距离偏差为3 m,均方误差为0.53 m。
受噪声的影响,直接利用原始信号定位的误差较大,通过对原始信号进行卡尔曼滤波处理后重新定位的结果如图6所示。
由图6可以看出,采用卡尔曼滤波算法对原始数据进行滤波处理后,在线定位阶段定位位置变得集中起来,直接定位位置点中与实际位置最大距离偏差为2 m,均方误差为0.27 m。由于卡尔曼滤波仅能消除部分的白噪声,而对突变噪声却不能很好地消除,从而造成定位结果偏差仍然过大,定位点不够集中。
针对突变噪声,采用小波变换滤波的方法来进行消噪。利用小波去噪方法对原始信号进行处理后,重新定位的结果如图7和8所示,小波分解层次在保证信号不失真的前提下,一般取3~5,即可最大程度地滤掉噪声,本文选取分解层数为3。阈值的选取,则按照最优预测变量阈值Heursure准则来对阈值进行估计[10]。
图7是对原始信号进行硬阈值小波变换[10]滤波处理后重新定位的结果。采用硬阈值小波变换处理后,定位位置分布变得较为集中,直接定位位置点中与实际位置最大距离偏差为0.62 m,均方误差为0.09 m。
图8是对原始信号进行软阈值小波变换[10]滤波处理后,重新定位的结果。采用软阈值小波变换处理后,直接定位位置点中与实际位置最大距离偏差为0.6 m,均方误差为0.07 m。
由图7和图8可以明显看出,采用了小波变换对信号滤波处理后,突变噪声得到了很好的抑制,定位位置分布范围变得较为密集,最大定位误差仅为0.6 m,取得了很好的定位效果。
由图9则可以看出采用了小波去噪后定位的平均误差大大降低。1 s内进行130次采样定位的误差均值为0.2 m,基本满足室内定位的实时性和精度的要求。
通过对实测数据进行采集和定位,结果验证了基于指纹定位的蓝牙室内定位方法的可行性,实验结果也证明了小波去噪可以很好地消除突变噪声,提高指纹定位的精度,将设备平均定位精度提高至0.2 m,可满足绝大部分设备的定位精度需求。而对于设备在移动状态下的滤波算法则需要做进一步的研究。
参考文献
[1] 倪巍,王宗欣.基于接收信号强度测量的室内定位算法[J]. 复旦学报,2004,43(1):72-76.
[2] 王琦. 基于RSSI 测距的室内定位技术[J]. 电子科技,2012,25(6):64-66,78.
[3] IGLESIAS P,CORUA H J A,et al. Indoor person localization system through RSSI Bluetooth fingerprinting[C].IWSSIP,Vienna Austria.2012:40-43.
[4] 李文杰,李文明.基于K-近邻算法的定位方法设计和仿真[J].计算机仿真,2009,26(4):194-196,351.
[5] Pei Ling,Chen Ruizhi,Liu Jingbin,et al. Using inquiry based bluetooth RSSI probability distributions for Indoor positioning[J]. Journal of Global Positioning Systems,2010,8(4):1-25.
[6] 柴亦飞. 基于位置指纹的定位系统的实现与改进[D].上海:复旦大学,2007.
[7] 谢献忠,易伟健,王修勇,等.基于虚拟响应信号的结构参数时域辨识研究[J].计算力学学报,2007,24(6):859- 864.
[8] 朱来东,廉小亲,江远志.小波变换在信号降噪中的应用及MATLAB实现[J].北京工商大学学报,2009,27(2):46-49.
[9] 容晓峰,杨娜.RSSI位置指纹的定位误差分析与仿真[J]. 西安工业大学学报,2010,30(6):574-578.
[10] 苏晓庆. 基于小波包变换的变形时间序列数据分析方法的研究[D]. 淄博:山东理工大学,2008.