信道状态信息指纹定位算法性能评价方法研究
2019-12-11蒋天润邓中亮王子阳
蒋天润,尹 露,邓中亮,王子阳
(北京邮电大学电子工程学院,北京 100876)
0 引言
室外条件下,用户使用的定位设备主要基于全球定位系统(Global Positioning System,GPS)。由于室内的接收机受到建筑物的遮挡,使得接收到的卫星定位信号衰减很快,甚至完全无法接收到信号。随着移动设备和无线传感器的大量部署,关于室内有源主动定位的研究取得了长足发展,但它在室内定位时需要人携带有关的传感器设备,使得有源定位的广泛应用受到较大阻碍。
随着移动互联网技术的迅速发展,人们对于获得高精度位置信息的需求愈加强烈,未来室内定位将成为一项生活所必须的基本服务需求。目前,室内定位技术种类繁多,主要有基于射频识别(Radio Frequency Identification,RFID)、超声波、红外线和WiFi等的室内定位技术[1]。RFID定位需要提前布置硬件设备,实现大范围推广的成本很高[2]。红外定位技术的精度会受到室内灯光、热源的影响,另外室内的各种障碍物也会遮挡红外线,导致红外线不能传输很远的距离,以及定位误差增大[3]。由于超声波在空气中传播时衰减速度很快,距离稍远超声波定位技术的定位误差就会迅速增大。无线局域网已在人口密集区域广泛普及,各处的室内都大量部署了无线上网设备,基于WiFi的室内定位技术具有定位耗时短、覆盖面积大、成本低等优点,因此该技术成为了室内定位研究领域的热点方向。
目前基于WiFi的室内定位研究主要基于接收信号强度指示(Received Signal Strength Indicator,RSSI)。RSSI描述了接收信号功率的大小,由于目前多数终端设备都支持获得RSSI信息,故目前的无线通信技术都使用RSSI作为评价信道质量的标准,从而改进通信系统。基于WiFi的RSSI指纹定位法将处理后的RSSI作为每个位置的指纹特征,从而开展基于位置指纹库的指纹定位。RSSI是多条路径信号的简单叠加[4],因此RSSI并不能充分描述子信道受环境的干扰程度。此外,尽管单个信道的信号波动较小,但多条信道中信号叠加的RSSI波动范围甚至达到了5dB[5]。单一使用RSSI作为信号特征进行指纹定位不能满足高精度、高稳定性的室内定位需求。
相较于RSSI,信道状态信息(Channel State Information,CSI)能够更好地描述多径信道,区分来自多个信道的多径信号,在静态环境下具有较好的稳定性。CSI的一个数据分组中同时包含着多个子载波的幅频响应和相频响应。在室内定位中以子信道的多维矩阵对单一的RSSI进行扩展来构建格点特征,由此可以获得更高的定位精度。近年来,Inter和Atheros网卡供应商对其部分网卡固件程序进行了处理,并有相关组织开源了对应的软件开发包,使得可以对Linux系统以及Windows系统下的网卡开源驱动程序进行修改,利用调试模式来获取某些无线网卡的CSI数据。使用大量部署的基于802.11n标准的WiFi路由设备可以获得CSI[6]。基于CSI的指纹定位需要的额外硬件设备较少,实现成本低,具有广泛的应用前景。
1 CSI与指纹定位算法
1.1 信道状态信息
目前,使用装配Intel 5300网络适配器的普通WiFi设备能够获得一个采样个数为30的CSI信息,利用兼容IEEE802.11.n的无线网卡从接收的数据包中提取一组CSI,每组CSI代表一个正交频分复用子载波的幅度与相位,如式(1)所示
(1)
1.2 指纹定位法
指纹定位法主要包括2个阶段。离线训练阶段即数据采集和处理过程,该过程主要工作是采集格点信息,将该信息处理后构建为格点特征,常用的格点特征包括相位和幅度等;实现格点位置与格点特征的映射;建立无线地图和指纹定位数据库。
在在线定位阶段,实时采集待定位点的格点特征,输入至定位服务器,服务器将定位端实时上报的数据与离线阶段建立的位置指纹库的数据进行匹配,计算出实时数据最佳匹配的参考点。在线阶段的主要思路是依赖一定的准则选择与实时数据最为接近的参考点。
1.3 研究现状
文献[7]表明WiFi的CSI具有更高的时间稳定性,并具有从多径效应中获益的能力,因此适用于准确的存在检测和定位。文献[8]表明由于室内环境的复杂性对多径信号传播的影响,难以建立精确的信号传播模型,因此基于CSI的指纹定位法优于基于传统传播模型的室内定位方法。文献[9]基于CSI的子信道频率的不同,用合并且求均值后的5个子载波的CSI代替原来的30个子载波的CSI,并对多根天线的CSI求平均值处理,提出了一种基于后验概率的指纹定位算法。Qian K.等[10]利用CSI导出运动诱发的多普勒频移,并提取出该频移用于确定运动方向。
2 采集CSI信息与制作指纹库
在北京邮电大学的新科研楼内选择一间10m×10m的实验室,室内放置有大量物品以及人员走动。根据地砖将室内划分成1m×1m的方格,在每个参考点测量CSI数据,每个格点的CSI数据存储在若干个数据包中,如图1所示。
图1 数据采集环境示意图Fig.1 Data collection environment
经过上述操作获得的原始CSI数据含有高频噪声,需要对原始CSI数据进行低通滤波处理。使用h表示该巴特沃斯滤波器的传递函数。单个数据包中的CSI数据为H(1*30),滤波后的矩阵记为H′(1*30)
H′=h*H
(2)
(3)
3 算法关键参数的测试与分析
3.1 测试KNN与wKNN算法
K最近邻(K-Nearest Neighbor,KNN)算法,K表示距离自己最近的k个数据样本[11]。KNN算法使用的相似度量是曼哈顿距离或欧式距离,该算法所选择的邻居都是已经正确分类的对象。该算法在定类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。
在实际的生产实践中,KNN算法的缺陷是找到的近邻并不是实际意义上的近邻。特征向量之间一般有较大可能性是相关的,最近距离的求解过程中没有考虑特征之间的关系,故距离的计算不够准确,从而影响了定位的准确度。为了解决以上问题,使用加权K最近邻(weighted K-Nearest Neighbor,wKNN)算法[12]。
将每一邻居样本的坐标与对应权重相乘,结果相加[13],求出总和后,将结果除以全部权重之和。估计坐标的计算方法如式(4)所示
(4)
式中,Di表示邻居样本的坐标,wi表示近邻样本的权重,f(x)是预测的坐标结果。
wi=1/(distance+const)
(5)
式中,权重wi是距离数值加上一个常数的倒数。
在图2和图3中,蓝色虚线代表了测试所走过的真实路径,*号代表在蓝色真实路径上均匀取点所对应的定位结果。在K=5,离线指纹库容量为100,在线数据集容量为35时,KNN定位误差是2.732m,wKNN定位误差是2.651m。
图2 KNN定位结果图Fig.2 The locating result of KNN algorithm
图3 wKNN定位结果图Fig.3 The locating result of wKNN algorithm
在离线数据集容量为100,在线数据集容量为35时,改变K值,观察其对定位误差的影响。
从图4可以看出,两种算法的定位误差随K的变化曲线有一定的相似性。在K<9时,两种算法的定位误差随K的增大而减小;在K>9后,两种算法的定位误差随K的增大反而逐渐增大,但此时的最大定位误差仍小于K<9时的最大定位误差。
图4 两种算法定位误差随K值变化图Fig.4 The tendency chart of positioning error with K
OFDM系统中的每个子信道是相互独立的[14],在CSI中,理论上每个子信道的幅度也是相互独立的,即在本次测试中理论上各特征向量之间是不相关的。因此,使用wKNN算法对定位精度的改善有限,这也解释了以上两种算法的定位误差随K的变化趋势较为相似的原因。
较小的K值会导致邻居不够,定位精度受此影响[15],因此K<9时定位误差随K的变化趋势如上所示;但是过大的K值会导致不属于同一类的点也被分入邻居内,使得定位误差增大,这是K>9后定位误差随K增大而增大的原因。
4 三种算法稳定性测试与分析
4.1 算法评价指标与样本集扩充方法
通常评价一种定位算法性能的依据是该算法的定位精度,但该评价依据并没有考虑到在线测量数据增加时,该种算法的稳定性问题。因此本文提出了一种评价KNN、wKNN和随机森林算法优劣的依据:三种算法定位时间的稳定性和定位精度的稳定性。
某种算法的运行时间在一定程度上反映了该算法的计算量和资源占用的多少,由于算法的运行时间具有一定的时变性和不稳定性,选取运行时间的标准差占平均运行时间的百分比作为评价标准。定位精度的稳定性可以直接使用在线样本容量为100~20000时定位精度的平均值与标准差进行评价。
如果将10m×10m的办公区域划分为0.5m×0.5m的方格,则指纹库中最多只有400个点的指纹信息。0.5m的方格长度相较于超过2m的定位误差很小,可以认为在该10m×10m的区域中,至多只存在400个定位结果,那么,在线数据集所有可能点的坐标都在这400个点中产生。因此,样本容量的扩充方法如图5所示,将新的在线样本集逐个编号,每次从以上的原始样本集中随机取样,重复400次,将400个取样结果全部用来扩充原始样本集,将扩充的结果作为新样本集,直至样本容量符合实验要求。
图5 样本集扩充方法Fig.5 Sample capacity expansion method
4.2 稳定性测试与分析
测试软件均使用Pycharm。在线数据集的样本数量为100~20000。KNN与wKNN算法中K=6,随机森林算法中决策树数量为110,max_features=0.45,max_depth=15。
从图6和表1中可以看出,根据定位误差的标准差对比,随机森林算法的定位误差的波动性最小,KNN算法最大。在样本容量逐渐增加的过程中,随机森林算法定位误差最为稳定。同时,随机森林的定位误差最小,性能也最好。
从三种算法运行时间的标准差占平均运行时间的百分比来看,随机森林是3.67%,wKNN是5.31%,KNN是9.87%。随机森林的运行时间稳定性要高于KNN和wKNN算法。
图6 三种算法运行时间与定位误差随样本容量变化图Fig.6 The tendency chart of positioning time and positioning error with sample size of three algorithms
表1 三种算法评价指标对比
5 结论
1)本文介绍了CSI和指纹定位法的概念,分析了使用CSI进行指纹定位的优势,阐述了指纹库的构建过程和定位方法。
2)分析了KNN和wKNN算法中关键参数K对定位误差的影响。结果表明,在K较小时,增大K可以使用更多相关邻居来计算定位结果,进而提高定位精度;但过大的K值会导致原本不相关的邻居加入邻居队列,也会使定位误差增大。
3)在线样本集容量增加时,测试了KNN、wKNN和随机森林算法的运行时间和定位精度的稳定性,结果表明,随机森林算法不仅定位精度最高,而且定位时间与定位精度的稳定性最好。