APP下载

基于CSI离散指纹的轨迹跟踪方法

2018-12-29江小平

关键词:特征向量特征值数据包

江小平,刘 键,丁 昊

(中南民族大学 电子信息工程学院,武汉 430074)

室内位置服务(LBS)由于其社会价值和商业价值吸引了越来越多的关注.传统的室内位置技术包括视频监控、传感器网络、超声波或声音等[1],这些技术需要安装特定装置,成本高而且有一定盲区,存在明显缺陷. 随着通信网络理论和技术的进步,包括Wi-Fi、蓝牙、射频识别(RFID)[2-4]、磁场等都被用于室内定位. 上述技术中,基于Wi-Fi的方法以其无线覆盖范围广、应用普遍、成本较低而备受关注.目前根据被检测目标是否携带设备参与定位过程与否,将Wi-Fi的定位分为有源和无源两种[5]. 传统的无源定位方式大多采用接收信号强度(RSSI)作为定位指纹来确定位置和距离.杜克大学Sen等[6]设计的PinLoc系统,在房间内创建多个定位指纹,通过被检测者的RSSI和构建好的Wi-Fi指纹库进行匹配. 选择单个地点区域内4个不同位置的信道频率响应(CFR)作为该地点的候选指纹,由于接收到的RSSI仅表示接收数据包多路信号混合,具有很低的分辨率,定位精度差. 2009年的IEEE802.11n标准中,通过正交频分复用技术(OFDM)能得到WLAN网络的CSI[7].CSI与RSSI相比抗干扰能力强,静态时相对稳定,动态时通过2.4 GHz或5 GHz无线网络详细地描述了30个子载波幅度和相位信息,较为灵敏地反映了室内无线环境的变化情况. Xiao等[8]实现了一个基于CSI设备无关的室内运动检测系统FIMD. FIMD提取CSI时间稳定性较好的特征,利用基于密度的DBSCAN系统分类算法对信道链路状态进行分析,与基于RSSI的 RASID系统[9]相比,提高了识别准确率. Li等[10]提出一种新的定位方法,在离线阶段,收集所选参考点的CSI原始数据作为其精确位置的标签,然后在本地服务器上生成一个庞大的数据库,使用数据库实现数据预处理和加权训练. 定位的平均误差在1.57 m. 但是由于环境的复杂性和信号的时变性,这些方法在稳定性和精度方面仍有一定的提升空间[11].

本文设计了一种基于CSI的离散指纹的轨迹跟踪方法. 与其他算法相比,同时利用CSI幅值和相位信息作为离散指纹特征值;考虑到子载波差异性,设计了基于子载波权重的定位算法保证CSI数据的可用性和定位的准确率. 系统的硬件设备是Wi-Fi路由器的发射器和装有5300网卡的电脑的接收器.通过汉佩尔滤波器和巴特沃斯低通滤波器对数据进行处理,之后通过相位的矫正和协方差相关矩阵特征值法进行特征提取,最后利用基于子载波权重的主成分分析算法进行分类,创建指纹来进行无源定位和轨迹跟踪.

1 信道状态信息

Wi-Fi采用OFDM调制技术,获取Wi-Fi信号每根天线的30个子载波的CSI信息.每路子载波两两正交,进行独立的自适应多进制调制[12].在OFDM系统中经过多径信道的接收信号为:

R=HX+N,

(1)

(1)式中R和X分别代表接收端和发送端的信号向量,H和N分别是信道矩阵和加性高斯白噪声. 根据式(1)各个子载波的CSI可以估计为:

(2)

H(f)=[H(f1),H(f2),…,H(fn)].

(3)

在第N个子载波上,信道频率响应表示为:

H(fN)=|H(fN)|ejsin(

(4)

(4)式中H(fN)为复数值,表示每个子载波的幅值和相位.

2 算法描述

2.1 幅值预处理

由于仪器、温度和房间摆设等因素的影响,未经处理的CSI数据不能直接使用. 因此对原始数据去除异常值以保证数据的稳定性,同时滤波以减少噪声对CSI的影响. 汉佩尔滤波器属于基于决策的滤波器,能找出数据序列中的异常数据点,并以更有代表性的数值取代[13]. 接着采用巴特沃斯对幅值进行预处理,幅值处理前后的结果如图1所示.

图1 3个子载波的幅值预处理前后结果Fig.1 The results of 3 subcarrier amplitude preprocessing before and after pretreatment

2.2 相位处理

因为商用网卡的精度较差和噪声等因素的影响,从数据包中得到的CSI相位信息杂乱无章,所以要对相位进行处理.假设第n个子载波频点fn,Wφfn为第n个子载波的真实相位,φfn为测量相位,N为每个子载波上的频点数,γ为接收机时间偏移,∂为随机相位,X为测量误差. 有:

(5)

对两个不同的φfn做差值运算结果如式(6):

(6)

(6)式中,Δ∂和ΔX较小可以忽略,可简化为:

(7)

(7)式可以化为:

Δφfn=aΔfΔn+b,Δn=n-1,

(8)

根据式(8),能化为y=ax+b的形式,采用线性回归的算法,去拟合当前的一系列样本(x,y). 线性回归有多种算法,本文采用基于均方误差规则下最小二乘法求得a和b,得到线性回归方程,从而去除了收发功率不稳定和噪声因素造成的相位误差.

图2是经过相位处理后的3个连续时刻的天线相位图.三根天线的变化情况不同,对于同一根接收天线,30个子载波经过相位处理后由于多径引起的相位跨度变化不大,相对比较稳定.

图2 3个连续时刻的相位处理图Fig.2 Phase processing diagram of 3 consecutive moments

2.3 特征提取

式(3)是CSI的频域状态响应公式,对采集到的数据加窗处理,设滑动窗口大小为w,窗口内数据包为:

H=[HN,HN+1,…,HN+w-1],

(9)

其中HN为窗口内CSI的起始数据包,基于子载波的维度为30,所以矩阵H的维度为w×30.根据式(9)计算矩阵H中各列数据的相关性:

其中cov(Hm,Hn)是矩阵Hm、Hn的协方差,D(Hm)、D(Hn)分别是矩阵Hm、Hn的方差.滑动窗口内的矩阵相关性如下:

将得到的相关矩阵记为X,对相关矩阵X进行最大特征值处理如式(11):

M=max(eig(cov(X))),

(11)

以此类推,随着窗口滑动,计算每个窗口的最大特征值.

图3是3种不同情形下的特征提取结果.从图中可以看出幅值的最大特征值呈现不同的聚类结果,静态环境下得到的相位最大特征值波动的范围明显小于其他两种情况.

图3 室内不同场景的特征提取效果Fig.3 Feature extraction of different indoor scenes

2.4 基于子载波权重的PCA算法

从商用网卡收集到的CSI数据经过以上的处理,发现在单位时间(一个数据包)内,每根天线的30个子载波之间对于环境感知敏感度差异较大,并影响了指纹定位的精度和准确性.

在特征提取中选择有代表性的CSI数据作为指纹信息,能更好地利用CSI子载波,增加准确性,减少误差率. 分类算法设计流程如下.

1)计算自相关矩阵.

输入的数据为data=N×n的矩阵(N代表的是数据包数目,n=90是3根天线的共90个子载波)对列向量求相关性,形成一个A矩阵.

2)特征向量.

对A矩阵求特征值,([V,S]=eig(A),矩阵A的全部特征值构成对角矩阵S,并求A的特征向量构成V的列向量),根据特征值对特征向量进行排序,并归一化.

3)采用排序后的第一特征向量和第二特征向量作为主成分.

4)使用第一特征向量和第二特征向量投影数据到二维坐标轴上(P=data×V其中data是输入的数据,V是形成的特征向量矩阵).

3 实验设计

3.1 实验方案

实验室面积约9.6×8.1 m2,在房间内均匀布置9个指纹点,指纹点相距约110 cm(图4).

一台装有Intel 5300无线网卡(三根天线)的台式机作为接收机(MP),三根天线平行分布,每根天线相距5 cm,台式机安装了Ubuntu11.04系统,版本3.5.7的定制CSI-tool内核,一台TP-LINK的AC1200双频无线路由(AP)作为发射机,在Ubuntu系统上通过CSI-tool工具收集CSI数据包,将得到的数据包进行实验仿真.AP和MP的高度均为40 cm.无线AP基于802.11n协议,由于楼层中使用2.4 GHz Wi-Fi频段的路由较多,为减少干扰,采用5 GHz的两根天线固定信道发射无线信号.整个收发器组成一个2×3的MIMO系统.

图4 实验室环境和平面图Fig.4 Laboratory environment and planar graph

实验中在1~9的指纹点,人体的朝向和姿势保持一致. 每个点人站立时的采集时间为120 s. 静态环境作为指纹10.

图5是10个指纹点的幅值和能量图,包括指纹点1~9和静态环境采集的数据作为指纹点10,每个指纹点400个数据量(用虚线隔开)形成的90个子载波的幅值数据.从图中的幅值和能量看出了各指纹点由于位置的不同,幅值能量也各有差异.指纹点4、5、6由于在视距线(LOS)上,对CSI的感知较强,引起的能量变化的波动较大. 其他的点由于离LOS线距离远,对环境变化所引起的幅值变化较小.

图5 指纹点的幅值和能量图Fig.5 The magnitude and energy diagram of fingerprint points

对聚类后的数据引入K近邻法(KNN),取一半数据作为训练样本,其余作为测试样本. 采用式(12)来计算指纹点数据的分类正确率:

(12)

其中T1为每个点分类正确的数据,Q为每个点的总数据.

在相对空旷无遮挡的室内环境中实验,减少了复杂环境中多径效应的影响;同时排布的指纹点位置不同,指纹点的定位准确性也有差异. 表1是指纹数据点聚类后的分类结果,指纹8、指纹9由于靠近障碍物和墙壁,人体站立在这些位置时,对环境改变所引起的信号影响较小,分类效果稍差;指纹点1、2、3因为多径影响较小,取得了预期的分类效果;指纹点4、5、6因为处于视距线上,CSI对环境的变化较为敏感,分类的正确率较高,总体上分类算法对9个指纹点的准确率较好. 本文设计的算法流程利用了不同子载波上的信息,起到了很好的分集定位效果,平均正确率在90%以上.

表1 不同指纹点数据的分类正确率Tab.1 Classification accuracy of different fingerprint point data

选取沿着指纹点4、5、6路径所做的指纹轨迹进行跟踪检测(图6),一个指纹点采集400个数据包(包括有人站立和无人环境). 当指纹点站人时,由于室内环境改变,会引起CSI幅值和相位的变化. 为了更好地观察聚类的效果和轨迹的变化,把指纹点4、5、6采集的数据分为6部分(每部分包括200个数据包),每部分的数据包经过算法流程后形成的聚类效果如图6所示,从图中数据的分类点轨迹的变化,可以检测出人体在室内指纹点的轨迹路线.

图6 指纹点4、5、6的轨迹跟踪Fig.6 Trajectory tracking of 4, 5, 6 fingerprint points

4 结语

设计了一个完整的基于Wi-Fi的CSI离散指纹的轨迹跟踪方案,不需携带任何特殊设备,成本较低,有利于普及.该系统采用了多种方法对幅值和相位数据进行处理,减少了环境所造成的数据误差. 采用协方差矩阵特征值法同时结合CSI所具有的特性对PCA算法改进,通过室内指纹点的采集,证实了算法的可行性及分类的准确性.指纹点定位准确率在90%以上. 下一步将考虑增加指纹的密度,提高定位的准确性.同时对指纹点路径进行跟踪识别,会为未来深入研究多目标运动检测和路径跟踪,实现跟踪动态人员的目标和位置提供基础.

猜你喜欢

特征向量特征值数据包
二年制职教本科线性代数课程的几何化教学设计——以特征值和特征向量为例
利用LMedS算法与特征值法的点云平面拟合方法
二维隐蔽时间信道构建的研究*
克罗内克积的特征向量
单圈图关联矩阵的特征值
民用飞机飞行模拟机数据包试飞任务优化结合方法研究
迭代方法计算矩阵特征值
一类三阶矩阵特征向量的特殊求法
C#串口高效可靠的接收方案设计
求矩阵特征值的一个简单方法