APP下载

基于CSI信号的被动式室内指纹定位算法研究*

2021-09-24刘颜星郝占军

计算机工程与科学 2021年8期
关键词:参考点离线定位精度

刘颜星,郝占军,田 冉

(1.西北师范大学计算机科学与工程学院,甘肃 兰州 730070;2.甘肃省物联网工程研究中心,甘肃 兰州 730070)

1 引言

随着位置服务的精准需求,室内定位系统成为当今倍受热捧的技术领域,而基于WiFi信号的室内定位方法因其开放性和易用性吸引了很多科研人员的关注。WiFi作为一种基于IEEE 802.11协议的无线网络,已经普及到大多数家庭和办公环境。现今大部分移动设备都内置了符合IEEE 802.11标准的无线网卡,使得用户能很容易地接入无线局域网络(WLAN)中,其覆盖广的特点大大降低了室内定位技术的成本。

目前,大部分定位方法通过采集接收信号强度指示RSSI(Received Signal Strength Indication)值与指纹库匹配获取目标的位置信息,但由于RSSI是粗粒度信息,受到室内环境对信号的折射、反射和衍射等影响,导致其定位性能不稳定。近年来,一些商用无线网卡设备能够支持物理层信道状态信息CSI(Channel State Information)信号采集,如Intel5300、Atheros9380无线网卡。由于通过CSI不同子信道可以提取到比RSSI更细粒度特征信号进行分析,同时CSI还可以尽可能避免多径效应与噪声的影响,因此,通过信道状态信息CSI的室内定位[1]研究被关注。

基于CSI和RSSI的室内定位算法相比较,CSI随时间变化小,灵敏度更高,利用不同子载波的信号传输过程,能够更好地抵制噪声与多径效应问题,通过细粒度的CSI指纹方法可以在不增加数据采集成本的前提下,改善室内定位精度,有效提高室内定位的精度[2]。

2 相关工作

目前的室内定位方法大致分为测距和无需测距2种。基于测距的定位方法是通过设置锚点,根据角度信息计算空间距离,估计定位点位置;无需测距是依据网络特性采集指纹库的方法,通过空间匹配算法实现节点定位。由于基于测距的定位方法的定位精度与AP无线访问接入点(Access Point)的数量有密切关系,且计算复杂度高,因此,本文基于指纹库匹配的被动式方法研究室内定位,被定位对象无需携带任何具有信号发射功能的设备,不但能够解决穿戴设备的不便,还能更好地保护被定位对象的个人隐私,如老人防护、动作识别和入侵检测等。

由于室内环境存在实物多、人员流动性强等特点,信号传播存在多径效应,而信道状态信息CSI能更好地反映这些特点,因此CSI在室内定位领域适用性更高[3]。文献[4]将CSI和RSSI数据相结合作为指纹特征,引入空间聚类划分的思想对采集数据进行处理,有效降低了信号的时变性,实现了整体平均定位距离误差在1.5 m以下。文献[5]将CSI信号在频域上通过稀疏表示,有效降低了信号噪声,一定程度上解决了信号多径效应对定位精度的影响。文献[6]提出利用多传感器位置信息对指纹库参考节点进行筛选,保留有效参考节点提高定位精度;文献[7]提出通过深度学习训练CSI数据作为指纹库,定位精度有很大提高,但该方法在离线数据采集阶段训练样本过大,耗时太长。

总结常见指纹定位方法的优缺点可以看出,室内指纹定位算法中解决数据预处理和有效特征值提取是提高定位精度的主要因素。为了达到室内定位的高效率、高精度和高适应性的目的,本文提出一种基于CSI信号的被动式室内指纹定位算法。该算法在离线阶段将定位场所划分为近似同等大小的区域块,通过支持IEEE 802.11n协议的Atheros9380无线网卡提取CSI信号,在各连接点或区块位置采样指纹点数据,对原始数据进行滤波后存入原始信息库,再对滤波后的数据使用二分K均值聚类(K-means)算法进行分类,建立指纹数据库;在线阶段根据待测点的离线数据和实时数据,采用K最近邻KNN( K-Nearest Neighbor)匹配算法判定出定位点位置坐标。其核心思想在于离线数据经过方差补偿的自适应卡尔曼滤波处理后能够动态调整算法,解决滤波发散问题[8],使得建立的指纹库更有效,范围更小,提高了匹配准确率和定位精度。

3 定位模型及算法

3.1 指纹定位模型

室内环境的特点是房间多、障碍物多、人员流动频繁,假设待测区域完全被无线WiFi网络覆盖,信号采集过程中选取均匀的参考点位置,并记录所有AP点的CSI值。基于正交频分复用技术OFDM(Orthogonal Frequency Division Multi- plexing)能将信道调制成多个正交子信道[9],并将高速数据信号转换成并行的低速子数据流,因此,在数据采集时,可以将单个信道信息经过滤波处理后,收集每个子信道的CSI特征值作为参考信息。基于指纹库定位算法分为离线训练和在线定位2个阶段,其定位模型如图1所示。

Figure 1 Data processing model based on CSI 图1 基于CSI定位数据处理模型

离线阶段:将定位场地近似划分为同等大小的区域块,在各连接点或区块位置,采用OFDM技术收集单个信道的CSI值并提取振幅和相位信息,在此基础上使用方差补偿的自适应卡尔曼滤波算法对提取的特征数据进行降噪处理,进行奇异值去除,并将降噪后的数据存储到原始信息数据库;再通过二分K均值聚类算法对原始数据进行聚类分析,将特征相似的特征值缩小到某一范围内,形成分簇形态的离线数据库作为指纹点数据建立特征指纹库。

在线阶段:在待测位置处动态获取AP的CSI未知特征值,利用自适应卡尔曼滤波算法对数据进行处理,使用KNN计算实时数据与指纹库的匹配度。由于本文旨在研究离线数据建立对CSI定位算法的影响因素,所以匹配算法使用较为成熟的KNN匹配算法。

3.2 自适应卡尔曼滤波算法

自适应卡尔曼滤波算法具有动态处理数据的能力,即对数据进行滤波的过程中能对未知或不确定的系统模型参数进行估计和修正,利用已有的信息对动态噪声方差实时估计,就可以补偿滤波中对动态方差或协方差的不足。这种利用预测残差对原始向量进行修正,并计算出接近实际状态向量的方法称为自适应卡尔曼滤波的方差补偿法。其基本思路如下所示:

假设Xk为k时刻的信号向量,将参考点坐标及CSI连续信号离散化,则卡尔曼滤波状态方程和观测方程可如式(1)所示:

(1)

其中,Xk+1和Xk分别为状态向量在tk+1和tk时刻的滤波值,Φk+i,k和Bk+1为状态向量系数矩阵,Ψk+i,k为控制向量系数矩阵,Uk为控制向量,Γk+i,k为动态噪声向量的系数矩阵,Ωk为动态噪声向量,Zk+1为观测值,Δk+i为观测噪声向量。

如果不考虑系统的确定性输入,其状态方程和观测方程如式(2)所示:

(2)

假定{Ωk}和Δk为正态序列,X0为正态向量。定义i步预测残差如式(3)所示:

(3)

(4)

则Vk+i的方差矩阵为:

Dvv=Bk+iΦk+i/kXk+DΔ k+i Δk+i

(5)

记:

Bk+iΦk+i,rΓr,r-1=A(k+i,r)

(6)

其中,r=1,…,N;k=1,…,n;上标(k+i,r)表示与观测值有关。假定Ωr-1Ωr-1在观测时间段tk+1,tk+2,…,tk+n上为常值对角阵,并记:

(7)

根据:

(8)

记:

(9)

其中,ηk+i为零均值随机向量,i=1,2,…,N。令:

(10)

又记:

(11)

则有:

E=AdiagDΩΩ

(12)

式(12)是关于diagDΩΩ的线性方程组,当N≥r时,式(12)有唯一解。记diagDΩΩ的最小二乘法LS(Least Square)估计为:

(13)

本文采用 Atheros 9380 无线网卡获取CSI信息,可以在20 MHz和40 MHz带宽下进行实验,在20 MHz带宽下,子载波的数量是56个,40 MHz带宽下,子载波的数量是114个[10],2个发射天线,3个接收天线,共6条链路,则每个CSI信号是一个2×3×p的复数矩阵,其中p为子载波个数[11]。

如图2所示,在静态环境某参考点站立一人,在40 MHz带宽下不同时刻连续采样20次,取其中一条链路的CSI 振幅值对其进行滤波处理,可以看出对原始信道采集的信号数据使用自适应卡尔曼滤波算法进行降噪处理,能够将异常值缩小到一定范围内,得到一组完全处理过的优质数据存入原始数据库,为下一步数据分类提供支撑。

Figure 2 Comparison of original data before and after filtering图2 原始数据滤波前后对比

3.3 二分K-means聚类算法

(1)原始采集信息数据库建立。

假设任意参考点能够采集到n个AP的CSI值,则第i个参考点(xi,yi) 采集到的CSI值可表示为:

Ri=(Ri1,Ri2,Ri3,…,Rin),

i=1,2,3,…,m

(14)

其中,Rin是第i个参考点采集到的第n个AP节点的CSI信号向量。如果将参考点坐标及其CSI信号向量线性组合,则可表示为:

Mi=(Ri1,Ri2,Ri3,…,Rin,xi,yi)

(15)

将m个参考点的数据经3.2节滤波算法处理后,将有效特征向量组合值以式(15)所示的数据结构存储到原始库中,以备聚类运算时使用。

(2)二分K-means算法流程。

标准 K-means 聚类算法的目标是找到最小化误差平方和的聚类结果,初始“簇中心”点由算法随机选取,因此存在多种划分情况,导致算法的收敛不是全局最小,而是局部最小。为了解决该问题,本文使用一种能够度量聚类效果的指标SSE(Sum of Squared Error)权衡算法,SSE为各个样本点到“簇中心”点距离的平方和,SSE越小,则数据点越接近簇中心,聚类效果也越好。

二分K-means算法首先将原始数据库看成一个样本集计算SSE,若此时簇个数小于k(k=2),则选择最小值一分为二进行划分操作。由于该算法不再随机选取簇中心,而是从一个簇出发,因此该算法不会收敛到局部最小值,而是收敛到全局最小值。具体算法流程如下所示:

(1)初始化簇表,将m个采样点组合成一个簇。

(2)从簇表中取出一个簇,设k=2,使用标准 K-means 聚类算法对选定的簇进行聚类。

(3)从聚类结果中选取误差平方和最小的那一组簇,将其添加到簇表中。

(4)判断簇数量是否达到采集参考点数据个数,若达到则聚类结束,否则跳转到(2)。

二分K-means聚类算法与标准聚类方法相比较,收敛性好,聚类结果更加稳定[12]。

4 基于CSI的室内指纹定位算法

本文算法研究的核心是基于CSI信号的被动式无源指纹定位,被定位目标无需穿戴任何具有信号发射功能的设备,因此指纹库的构建质量是影响定位准确度的主要因素。结合相关理论研究,将待测区域进行区域划分,搭建2台设备对各参考点的CSI信号进行采集,使用方差补偿的自适应卡尔曼滤波算法和二分K-means算法对采集的数据进行分类,建立指纹数据库。

由于Atheros 9380无线网卡获取CSI信息,在40 MHz带宽下有114个子载波,因此参考点采集的每个数据包都是一个m′×n′×114复数矩阵HMIMO,其中m′为发射天线数,n′为接收天线数,v=m′×n′为天线对个数。

(16)

任意天线对的矩阵Hij有114个复数,每个子载波的信道频率响应采样为:

Hij=[h1,h2,h3,…,h114]

(17)

其中,hi=|hi|ejsin(∠hi)。

式中|hi|为幅值,∠hi为相位,j为子载波编号,由于CSI的相位受频偏影响不能精确提取,算法中主要提取振幅特征作为指纹参考依据,无线信号在室内环境中存在着多径传播的情况,CSI幅值也受此影响[13,14]。因此,本文在离线建立指纹库阶段,首先将获取的特征数据使用方差补偿的自适应卡尔曼滤波进行处理,然后将降噪后的数据通过聚类算法进行离线训练分类,理论上必能提高指纹库的构建质量。具体算法流程见本文第3节。

Figure 3 Deployment of experimental environment图3 实验环境部署图

在线定位阶段是将未知点提取到的CSI特征信息与训练阶段建立的指纹信息进行比较,估计未知点的位置信息。通过欧氏距离计算未知点与参考点最接近的向量坐标,即任意2个CSI幅值向量i与j的欧氏距离比较。

disi,j=norm(Htrain_i-Htest_j)

(18)

其中,Htrain_i是参考点向量,Htest_j是随机测试点向量,对于v个天线对有:

DIS=[Dis1,Dis2,…,Disv]

(19)

由于欧氏距离反映的是空间向量之间的“不相关性”,即数值越小,相关性越高。因此,选取前k个较小距离求平均值作为测试点与训练点之间的距离[15]。

(20)

其中,(xi,yi)表示测试点坐标,计算距离最小的前k个平均值得到测试点与所有训练点之间的距离后,最后使用KNN算法作为指纹匹配算法定位估计点位置。

5 实验与结果分析

5.1 实验场景

本文采用 Atheros 9380无线网卡方案获取CSI特征信息,定位算法所需设备为:2台安装有 Atheros 9380无线网卡的台式机,CPU 型号为 Intel Core i3-4150,操作系统为 Ubuntu 10.04 LTS,其中一台机器装置2根天线作为信号发送机,另一台装置3个天线作为接收机,组成6条数据链路,在40 MHz带宽下进行实验。

分别选择实验室和会议室对本文提出的定位算法进行验证,实验室场地长9 m、宽6 m,其平面图和实景图分别如图3a和图3b所示,将实验参考点划分标记为1 m×1 m大小方格,天线高度设置为0.8 m;会议室长12 m、宽6 m,其平面图和实景图分别如图3c和图3d所示,由于会议室的桌椅高度为0.8~1 m,发射天线高度设置为1 m,接收天线高度设置为1.2 m。

在整个测试过程中,由于实验室人员移动较少,相对静止,因此把实验室命名为静态场景,会议室由于有大量的桌椅和人员走动行为,因而命名为动态场景。

5.2 实验分析

为了验证本文算法在不同实验环境中的定位精度和效果,通过准确率和平均误差2个指标来衡量分析。

5.2.1 指纹采集特征对定位精度的影响

实验过程中,让一名人员静止在图3所示的实验环境中,在不同测试点采集测试数据,由于从CSI数据包中可以读取RSSI信号特征,因此分别采用本文处理过的振幅、未处理的振幅及原生RSSI特征数据作为指纹特征进行测试对比。采用不同算法构建离线特征指纹库,在静态和动态2种环境中达到的定位差累积分布如图 4 所示。

Figure 4 Effect of different feature data on positioning accuracy图4 不同的特征数据对定位精度的影响

从图4中可以看出,2种实验场景中通过CSI定位总体性能都比RSSI定位更好,经本文算法处理后的CSI幅值特征,静态环境定位精度可以达到0.5~1.5 m,动态复杂环境定位精度能达到1~2 m,静态环境能将68.2%的测试点的定位误差缩小到1 m内,动态环境能将57.8%的测试点的定位误差缩小到1.5 m内。相比较未处理的数据定位算法,平均定位精度提升43.2%,极大提升了室内环境定位精度。这验证了本文算法对静态和动态复杂环境的定位准确率均有所提高。

Figure 5 Effect of the number of data samples and reference points on positioning accuracy图5 数据样本及参考点数目对定位精度的影响

5.2.2 其它参数对定位精度的影响

由于指纹匹配算法的性能与训练和测试数据有密切关系,因此,实验分析了不同训练样本数目/测试样本数目组合对定位精度的影响,分别选取25,50,75,100个参考点作为参数,以平均定位误差作为评价指标分析算法。不同训练样本数目/测试样本数目组合及参考点选取在动态复杂环境下对定位精度的影响如图5所示。

从实验结果可以看出,参考点数目为50~75时,平均定位误差在1.5 m内,定位精度相对较高;参考点数目小于50或大于75时,定位结果相对较差,原因是参考点太少或太多使得匹配算法计算失真情况较多。在静态场景中最小平均距离误差在0.85 m内,原因是在动态场景中人员的活动导致信号多径效应,干扰了信号的稳定性。

5.2.3 不同定位算法的性能分析

依据上节实验结果,参考点选择50个,测试样本数据取500/200,使用2个AP建立指纹库,在相同的测试场景下,将本文提出的定位算法与基于 RSSI 的指纹定位算法、基于CSI 的FIFS[16]指纹定位算法、基于CSI的CSI-MIMO[17]指纹定位算法进行对比测试。静态和动态2种场景中定位距离误差概率累积分布如图6所示。

Figure 6 Cumulative distribution of localization distance error probabilities for two scenarios图6 2种场景中定位距离误差概率累积分布

从实验结果可以看出,由于基于RSSI的定位算法易受到环境的干扰,很不稳定,误差最大,在动态场景中平均距离误差有80%在3 m左右。FIFS和CSI-MIMO使用了信道状态信息作为指纹特征值,能够较好地克服原始信号的多径干扰,这2种算法的定位精度明显高于RSSI的。而本文提出的定位算法,在FIFS和CSI-MIMO的基础上吸取了精华,对采集数据进行滤波聚类后提高了指纹特征,进一步提升了定位精度。在静态场景中,平均距离误差有90%在1.5 m以内;动态场景中,平均距离误差有90%在2 m以内,其整体性能优于其他3种定位算法,可以实现对目标位置更加合理的估计。

6 结束语

本文算法在室内静态和动态2种环境下分别进行测试验证,在离线阶段对原始采集特征数据使用方差补偿的自适应卡尔曼滤波降噪后,再通过二分K-means聚类算法生成多个特征向量,在一定程度上降低了室内多径效应的影响,有更好的空间特性,从而提高了定位精度,相较现有的一些算法和传统的室内定位算法均有所改善,实用性较强。

猜你喜欢

参考点离线定位精度
北斗定位精度可达两三米
异步电机离线参数辨识方法
呼吸阀离线检验工艺与评定探讨
FANUC数控系统机床一键回参考点的方法
浅谈ATC离线基础数据的准备
GPS定位精度研究
GPS定位精度研究
参考点对WiFi位置指纹算法的影响
组合导航的AGV定位精度的改善
离线富集-HPLC法同时测定氨咖黄敏胶囊中5种合成色素