黑毅力,党小超,郝占军*
(1.西北师范大学计算机科学与工程学院,兰州 730070;2.天水第一中学,甘肃 天水 741000; 3.甘肃省物联网工程研究中心,兰州 730070)
近年来,随着无线通信技术的不断突破和移动互联设备的推广普及,人们对基于位置的服务LBS(Location Based Services)需求也越发强烈[1]。全球定位系统GPS(Global Positioning System)是目前世界上最常用的卫星定位系统。然而,由于复杂的室内环境中,GPS信号容易受到多径效应的影响导致定位失效[2-3],所以迫使人们通过研究室内定位理论与技术来寻求高精度、低功耗的定位解决方案。其中,室内WiFi无线接入点AP(Access Point)的广泛部署促使WiFi定位技术变得越来越流行,尤其是基于位置指纹的定位方法因其成本低廉、方法简易的优势逐渐成为室内定位的主流[4]。
传统的指纹定位方法通常包含两个阶段:离线训练阶段(offline phase)和在线预测阶段(online phase)[5]。在离线阶段,通过大量采集定位区域中各个参考点RP(Reference Point)的无线信号特征作为该位置的指纹,构造位置-指纹数据库。在线阶段,通过将用户所在位置的无线信号指纹特征与数据库信息相匹配,得到匹配度最高的指纹所对应的位置作为用户的最终位置。现有的指纹定位系统大多利用简单且无需额外设备配置的WiFi接收信号强度RSSI(Received Signal Strength Indication)作为一种粗粒度的指纹信息,Fang等[6]提出一种利用WLAN主成分构建位置指纹的方法,它将RSSI测量值利用主成分分析的方法智能地转换为指纹数据主成分,充分利用接入点的信息,提高了指纹定位方法的效率和鲁棒性;Lei等[7]提出一种利用坐标差分修正的加权KNN室内WiFi定位方法(DC-WKNN),该方法首先构建RSSI指纹数据库,然后利用加权KNN方法找到K个与查询点最近的参考点,引入参考点的误差向量,并利用误差向量修正目标点的最终定位结果,较传统的KNN和加权KNN方法提高了定位的精度。但是,室内非视距环境中多径效应的存在会导致RSSI值的稳定性极度下降,从而无法满足室内精确定位的要求[8]。基于物理层的信道状态信息CSI(Channel State information)弥补了传统RSSI中简单子载波均值叠加幅度处理方式的不足,在一定程度上刻画了多径传播,将单值RSSI幅度扩展至频域,还附加了每个子载波的相位信息,为室内WiFi指纹定位技术提供了更为精细且稳定的信号特征信息[9-10]。Wu等[11]首次通过采集WiFi信号中的信道状态信息作为特征进行定位,极大降低了定位的误差。Wang等[12]也通过深度学习的方法训练CSI数据产生权值特征作为指纹,提出一种高定位精度DeepFi定位算法,且在一定程度上减少了算法的复杂度。Chen等[13]提出了一种基于卷积神经网络的室内定位方法,它将CSI组织成类似于图像的时频矩阵作为特征图像,然后引入卷积神经网络对指纹数据进行训练,最后输出加权质心结果作为目标最终位置。Zhou等[14]为了弥补利用CSI幅度信息定位引起的准确性和稳定性不足的问题,设计实现了一种基于CSI幅度和相位特征混合的指纹定位算法,在一定程度上提高了定位精度。然而,由于位置指纹定位方法在一定程度上为了保证预测精确度,本身就需要依赖于大量的训练样本,而将原始的CSI数据在未经处理的情况下直接作为指纹特征,数据维数较高,而且在某些情况下,原始CSI比RSSI值更容易受到动态环境的影响[15],导致参数估计难度较大,计算量也会增加。
通过研究分析传统指纹定位方法和新兴CSI信号特征,本文提出了一种混合WiFi位置指纹定位方法。该方法在离线阶段通过移动终端在已知参考位置采集来自各个AP的RSSI信号和CSI信号共同建立更加鲁棒的位置指纹数据库,同时,为了降低指纹数据的复杂度和定位误差,引入空间划分聚类的方法对无线RSSI指纹地图进行合理划分,缩小搜索空间,实现目标位置的粗定位过程;在线阶段,在保证高定位精度和可信度的前提下,为了进一步降低在匹配阶段的计算量,在指纹地图子区域中通过使用主特征提取方法得到对应位置的CSI指纹特征;最后,利用Kendall阶次相关系数自主选择K个近邻参考点,利用加权估计的方法获得最终结果作为目标的位置。
在现有的通信系统中,正交频分复用技术OFDM(Orthogonal Frequency Division Multiplexing)是应用最广泛的一种多载波传输方案。它通过将信道分成若干正交子信道,然后再将数据调制到每个子信道上进行传输,最大限度地消除多径干扰[16]。通过对现有的普通商用Wi-Fi设备添加兼容IEEE 802.11n的无线网卡,可以获取无线信号发射端和接收端之间的CSI,它提供了多个子载波上的信号幅度和相位两方面的信息。作为RSSI的升级版本,CSI能够提供更为精细的多径传播信息[17]。在OFDM传输系统中,每个信道状态的频域模型可以表示为:
Y=H·X+N
(1)
式中:Y与X分别表示接收和发送信号向量,H表示信道信息矩阵,N表示加性高斯白噪声。其中各个子载波的CSI可以表示为:
CSI=Y/X
(2)
假设在OFDM传播过程中的子载波数为N,则CSI矩阵H可以表示为:
H=[H0,H1,…,Hi,…,HN-1]T,i∈[0,N-1]
(3)
定义第i个子载波的CSI为:
Hi=|Hi|ej(∠Hi)
(4)
其中Hi和∠Hi分别表示第i个子载波的振幅和相位。图1表示使用2根接收天线和2根发送天线在两个相距1 m距离的测试点1和测试点2采集到的CSI信号图,从图中可以得出CSI对于不同的传播环境可以呈现不同的子载波幅度,这也验证了将CSI信号当作某个特定位置上的信号特征指纹进行定位的可行性。
图1 CSI采样图
主成分分析PCA(Principal Component Analysis)也称主分量分析,是应用最广泛的一种数学降维方法,其基本原理就是通过对数据的协方差矩阵进行特征值分解,特征值分解后的特征向量对应数据的主成分,特征值对应数据在各个主成分上的权重[18]。它将一个矩阵中样本数据投影到一个新的空间中,用较少的新变量代替原来较多的旧变量,达到简化数据集的目的,这样不仅可以减少冗余数据,还可以去除噪声干扰。
假定m个样本在原始p维空间的数据矩阵为X=(x1,x2,…,xm)∈p×m,当p值较大时,在p维空间中考虑问题必定会增加计算的复杂度。为了解决这个问题,就需要进行降维处理,即用较少的综合指标代替原来的指标,而且使这些综合指标能尽量多地反映原来指标所表示的信息。为此,首先通过对所有样本进行中心化,得到新矩阵p×m,其中然后计算样本的协方差矩阵Y=X′X′T,对协方差矩阵Y进行特征值分解,将得到的特征值排序:λ1≥λd≥…≥λm,再取前m′个特征值对应的特征向量构成最终主成分分析的解
一般地,为了保证较高的定位的精度,指纹定位方法需要采集定位区域中大量的指纹数据建立数据库,当定位或追踪区域扩大时,指纹空间也会相应变大,如果不加处理在全局考虑问题,势必会增加计算负担。为了解决这个问题,本文将使用一种空间聚类划分CLIQUE(Clustering In QUEst)的方法首先对定位区域中RSSI指纹信号进行子区域的划分,在线定位阶段只考虑子区域中的CSI信号指纹数据。CLIQUE是一种简单的基于密度和网格的聚类方法,在处理混合型及高维数据空间数据方面具有很高的效率[19]。该方法是将数据空间Z分割成若干个矩形网格单元,将落到每一个网格单元中的点数作为这个单元的数据对象密度。设定一个阈值,当某个单元格的密度(点的个数)大于该数值时,就说这个网格单元是密集的。为了清楚阐述CLIQUE聚类划分原理,给出以下定义1~4。
图2 MixedFi定位方法流程图
定义1设A={D1,D2,…,Dn}是n个有界的定义子空间,则Z=D1×D2×…×Dn就是一个n维的数据空间,将D1,D2,…,Dn看作Z的维(属性或字段)。
定义2在n维数据空间中,一个聚类是由多个连通的密集单元格组成的最大单元集。
定义3一个单元格ui的选择率selectivity(ui)定义为单元格中的点数与总的点数的比值。
定义4两个n维中的单元格u1,u2,如果是连通的,当且仅当这两个单元格有一个公共面或者u1,u2都跟另外一个单元格u3连通。
基于以上描述,RSSI指纹空间聚类划分具体步骤如下:
输入:原始指纹空间样本点集V={v1,v2,…,vm},其中vi={rssii1,rssii2,…,rssiin},vi的第j个分量vij∈Dj。
过程:
1:选择参数ξ,将空间Z分割为同样的ξ个子区域,产生d个不相交的类矩形单元{u1,u2,…,ud},其中ui=[li,hi)
2:repeat
3: forj=1,2,…,mdo
4: 遍历所有的数据对象V={v1,v2,…,vm};
5: if每一个ui都有li≤vi 6: 判断对象vi是否落入一个单元格u={u1,u2,…,ud}; 7: end if 8:end for 9:输入密度阈值参数φ; 10: if selectivity(ui)>φ成立then 11: 判定数据单元ui是稠密的,找到所有n维子空间中的密集单元; 12: 通过n维子空间中的稠密单元集,找出n+1维子空间中的候选稠密单元集合; 13: else 14: 若n+1维子空间中的候选稠密单元集不为空,则跳转到第3步; 15: end if 18: end if 19:untiln维数据空间搜索连通的密集单元格组成的最大单元集找到 假设在定位子区域中将N个采样位置采集到的n个有效接入点的CSI数据信息作为原始指纹,则构成一个n×N维的指纹空间A,A可以表示为 其中csipi表示在第p,p∈[1,N]个参考点测量得到的第i,i∈[1,n]个AP的采样样本数据。可以看到当参考点和AP数量增加时,其CSI指纹样本维数也会激增,因此选择主成分分析法对数据进行降维,减少数据量,节省时延和能耗。 K近邻方法因其复杂度低的优势在搜索匹配中得到了广泛的使用,然而传统的KNN方法只按照排序选定前K个近邻样本而忽略样本属性差别从而造成精度的严重下降,尤其当样本密度分布极其不均匀时。为了解决这个问题,本文引入Kendall相关系数的思想自适应得到目标节点的K个近邻点,同时给每一个对象对应的坐标利用加权的方式来计算未知点的最终位置坐标。 设目标点采集到来自AP的CSI信号构成在线指纹向量T={csi1,csi2,…,csip},对T进行PCA变换后,得到在线目标特征指纹向量T′,通过与特征指纹数据库比对得到近邻点,具体计算如下。 (5) (6) 为了验证本文方法在实际室内环境中的性能,仿真实验分别在12 m×9 m的实验室和8 m×6 m的会议室环境中进行,布局分别如图3(a)和图3(b)所示。 图3 实验场景图 本文采用安装64位Ubuntu12.04LTS操作系统并配置Atheros9380网卡的4台电脑分别作为信号发送机和接收机,网卡附带三根2.4 G/5 GHz的双频外部天线,图中三角形表示部分随机测试点的位置,根据文献[21]的结论,AP天线基本统一放置在距离地面1 m的试验台,因为在1 m高度RSSI信号精度是最高的。在采集RSSI信号数据时,测试者手持一台操作系统是MIUI 9的MI5X手机作为可移动设备静立在参考点进行数据采集,黑色圆点表示参考点,三角形表示待测点,测试点可以接收来自4个AP的信号,每个参考点采集RSSI数据30次,保存至PC端取平均值建立数据库作为该点的RSSI特征向量。实验环境以左下角为起点,设其坐标为(0,0),相邻参考点之间的间隔为0.5 m,在实验室环境中共收集90个位置的指纹信息,在会议室环境中收集75个点的指纹信息,同时在两个实验环境中的非参考点位置随机选取50个点作为测试位置,通过比较测试点的估计位置与实际位置来评价定位算法的性能。部分实验室原始位置指纹数据如表1所示,表2中的数据为经过PCA处理后提取5个主要特征得到的指纹数据。 表1 选取56维的原始位置指纹数据 表2 PCA提取5维的位置指纹数据 利用上述实测数据,在相同参数条件下,比较了室内采样点数取不同值时,本文MixedFi方法和DeepFi、DC-WKNN方法定位误差情况,同时,为了最大限度地消除实验中随机误差的干扰,取每个测试点30次实验位置的平均值作为最终结果。采用均一化定位误差和误差累计分布函数CDF(Cumulative Distribution Function)来评价性能,均一化定位误差为: (7) 图4表示在实验室中,参考点个数为20(图4(a))和60(图4(b))的情况下,各种方法定位结果误差的累计分布函数。从图中可以看出,当参考点个数为20时,MixedFi定位方法所对应的定位误差在2 m内的累计概率超过了60%,而DeepFi和DC-WKNN方法在2 m的累计概率则分别是55%和40%。当参考点个数为60时,MixedFi定位方法所对应的定位误差在1.8 m内的累计概率超过了80%,而DeepFi和DC-WKNN方法在1.8 m的累计概率则分别是75%和55%。所以随着参考点个数的增加,几种定位方法的准确率都在增加,并且MixedFi方法的定位精度始终高于DeepFi和DC-WKNN方法。 图4 误差累计分布图 在空旷的会议室环境中,在参考点个数为20和60时,各定位方法定位误差累计分布函数如图5所示。其中,当参考点个数为20时,MixedFi方法定位误差落在1.5 m范围内的累计概率为85%左右,比DeepFi和DC-WKNN方法分别高出了15%和45%。且当参考点个数为60时,累计概率为60%时,MixedFi、DeepFi和DC-WKNN方法的定位误差值分别为1.23 m,1.47 m,1.83 m,从统计学概率分布可以得出相比于其他两种方法,本文所提出的方法定位精度最高。 图5 误差累计分布图 通过上述实验可以看出,相比于其他相似方法,本文提出的方法能够在参考点选取多组不同的值时,随着参考点个数的变化,MixedFi定位方法的误差率均比DC-WKNN方法低,且误差始终保持在3 m以内。这是因为MixedFi是对若干个可能的节点位置利用稳定性更高的CSI信号结合Kendall相关系数自适应确定邻居节点进行加权修正计算,而DC-WKNN是通过粗粒度RSSI信号匹配邻近节点确定节点坐标,相比之下,MixedFi方法的定位精度更高,误差更小,稳定性也较好。表3列出了实验室和会议室环境下各个定位方法的平均误差、标准误差以及平均定位精度,可以得出本文提出的方法相对于传统的DeepFi和DC-WKNN方法,平均定位精度分别提高了约6.8%和38%,稳定性更高,可以很好地满足室内定位的精度要求。 表3 方法整体定位性能比较 在指纹定位方法中,信号发送机和接收机的天线数量也会对定位的性能产生一定的影响。发射天线TX(Transmitting antennas)和接收天线RX(Receiving antennas)的数目决定了通信链路的数量,也可以更加精细地刻画选择性信道。在本文中,随机部署1TX-1RX,1TX-2RX,2TX-2RX,2TX-3RX和3TX-3RX进行实验。 图6是在两种实验场景下,当天线数量情况变化时定位平均误差的变化情况,可以看出,在实验室环境中,从1TX-1RX到2TX-2RX,几种定位方法精度分别提高了15.4%,9.0%,13.0%;从2TX-2RX到3TX-3RX,分别提高了约48.3%,33.2%,17.1%,在3TX-3RX时,从图6(b)中可以看到本文的定位精度可以达到1.02 m。在会议室环境中,由于多径效应的影响比较小,天线数量的变化对定位精度的影响并不明显,但是总体随着天线的增加,几种方法的定位精度也在增加,这是因为通信链路的质量决定了位置指纹信号的稳定性,且在不同的通信链路情况下,本文提出的方法均优于其他两种方法。 图6 平均定位误差随天线数量的变化情况 一般地,阈值θ是一个在[-1,1]范围内的常数,当θ值等于1时,判定两个随机变量具有一致的等级相关性;当θ值等于-1时,判定两个随机变量具有完全相反的等级相关性;当θ值等于0时,则判定两个随机变量是相互独立的。根据式(5)可以自适应得到K个近邻点,这样可以有效解决传统K近邻方法中K的取值问题。 为了得到阈值θ的最佳取值,实验测试了在θ取不同值时,定位准确率的变化,结果如图7所示。可以看到,在θ=0.1时,满足条件的近邻数为7,此时定位的准确率是45%;在0.2≤θ≤0.4时,随着θ的增大,定位的准确率呈上升趋势,在θ=0.4时,定位准确率达到最大;然而当θ超过0.4以后,随着θ的增大,意味着两个特征指纹向量的相关性也增大,此时满足定位条件的近邻数相应会减少,定位准确率整体呈下降趋势。 图7 定位准确率随阈值θ值变化情况 定位时间是衡量定位方法的一个重要指标,本实验采用平均时间消耗来评价定位性能。实验时在相同区域中将参考点数目设为80,阈值θ=0.4,设置天线数量为2TX-2RX,在MATLAB平台上,定义平均定位耗时为网络中所有待定位节点完成定位过程所消耗的时间总和与网络中节点总数的比值。假设将节点i完成定位所消耗的时间记为ti,则S个目标点的平均定位耗时可定义为: (8) 图8 平均定位耗时比较 定位目标点对定位时间的影响如图8所示,定位时间随着待定位点的增加而增加。当目标定位点数量增多时,需要搜索和匹配最佳邻节点的过程时间将增加,进而定位时间增加。本文提出的方法由于在定位计算之前对定位区域进行了合理的划分,极大缩小了定位区域,同时在进行CSI指纹匹配时再次利用主成分分析对数据进行降维处理也减少了计算量,比传统DC-WKNN方法在平均定位时间上快了2.6s,比DeepFi方法快1.1s,在实用效率方面得到了很大的提升。 假设n为总参考点数,在离线训练阶段,DeepFi利用贪婪算法训练数据集,算法计算权值用时O(n),排序用时为O(nlogn),最后选择过程用时O(n),所以算法离线阶段时间复杂度为O(nlogn)。而MixedFi在离线阶段利用空间聚类的方法减少数据集,算法首先遍历所有数据点用时为O(n),每个点查询周围的数据点用时O(logn),因此总时间复杂度为O(nlogn)。假设MixedFi和DeepFi方法在离线阶段对数据集进行处理后,数据集在最坏情况下的最大近邻数为m,且m≪n。在线定位阶段,由于DC-WKNN和MixedFi这两种方法都是基于最近邻居的选择策略,但是DC-WKNN需要考虑几乎所有的近邻,因此DC-WKNN的算法复杂度为O(n),而MixedFi算法复杂度为O(m),可以看到DC-WKNN的速度是最慢的。DeepFi方法在现阶段利用径向基函数得到最终结果估计,而一般高斯核需将最初的m维特征映射到m2维后再进行计算,因此算法复杂度为O(m2)。综上分析,MixedFi、DeepFi和DC-WKNN方法的时间复杂度分别为O(nlogn+m),O(nlogn+m2),O(n2)。一般地,定位系统只考虑在线定位阶段的时延,因此MixedFi定位方法的执行效率仍然是最好的。 本文提出了一种基于CSI和RSSI的混合位置指纹定位方法(MixedFi)。该方法针对已有的基于RSSI指纹定位方法定位精度较低的问题,离线阶段充分利用WiFi信号信息,将RSSI和CSI信号有效结合共同作为混合位置指纹信息,结合空间聚类方法对指纹数据有效划分,精确缩小定位搜索范围,然后利用主成分分析方法降低CSI指纹特征维度提高定位效率。最后,为了提高传统KNN方法的定位精度,引入Kendall阶次相关系数自适应筛选最优邻居节点进行目标点加权位置计算。实验表明,本文的方法能有效提高定位精度,同时相同条件下定位时间也得到了极大地改进,具有很强的实用性。下一步研究将集中在提高方法对实际三维室内外环境定位的普适性,同时进一步降低定位误差和复杂度。2.2 在线位置指纹特征值提取
2.3 自主近邻选择加权定位
3 实验与分析
3.1 离线阶段样本点数对定位的影响
3.2 天线数量对定位的影响
3.3 阈值θ对定位性能的影响
3.4 定位时间比较
3.5 算法复杂度比较
4 结束语