基于CSI的改进KNN室内定位方法*

2019-09-26 02:36:54党小超马平川郝占军
传感器与微系统 2019年10期
关键词:网卡载波指纹

党小超, 马平川, 郝占军

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

0 引 言

无线局域网(wireless local area network,WLAN)指纹定位由于部署广泛,成本低廉,操作简便成为室内定位方法的主流[1]。文献[2]利用接收信号强度指示(received signal strength indication,RSSI)的指纹定位方法结合去噪技术,文献[3]利用主成分分析(principal component analysis,PCA)算法对RSSI信号进行降维,提取RSSI中的主要特征,文献[4]通过用移动端采集的来自各个AP的RSSI信号建立指纹库,利用K最近邻((K-nearest neighbor,KNN)算法,通过最小二乘法找到K个与测试指纹最接近的,通过加权平均得到位置。但是清华大学杨铮与刘云浩教授[5]指出由于RSSI信号的易受多径效应的影响,有时收到的信号是多径信号的叠加,导致了定位的不可估量。

基于信道状态信息(channel state information,CSI)的指纹定位进入人们视线[6],CSI与RSSI相比具有更好的鲁棒性,受到多径效应的干扰更少,所以具有更高的定位精度。

本文提出了一种改进的基于CSI的室内定位方法,经过实验证明:该方法精度高于其他算法。

1 信道信息状态相关理论

在现有的通信系统中,正交频分复用(orthogonal frequency division multiplexing,OFDM)技术是应用最广泛的一种多载波传输方案。通过对现有的普通商用Wi-Fi设备添加兼容IEEE 802.11n的无线网卡,可以获取无线信号发射端和接收端之间的CSI,它提供了多个子载波上的信号幅度和相位两方面的信息。作为RSSI的升级版本,CSI包含更为详细和准确的多径传播信息[9]。在OFDM传输系统中,每个信道状态的频域模型可以表示为Y=HX+N,其中,Y与X分别为接收和发送信号向量,H为信道信息矩阵,N为加性高斯白噪声。各个子载波的CSI可以表示为CSI=Y/X。

假设在OFDM传播过程中的子载波数为N,则CSI矩阵H可以表示为H=[H0,H1,…,Hi,…,HN-1]T,i∈[0,N-1]。定义第i个子载波的CSI为Hi=|Hi|ej(∠Hi)。其中,Hi和∠Hi分别表示第i个子载波的振幅和相位。

2 基于径向基函数—KNN室内定位方法

传统KNN算法定位准确率低,定位时间慢。为了解决这个问题本文采用基于高斯核函数的KNN算法来弥补这种不足。径向基函数(radial basis function,RBF)-KNN定位算法主要分为2个阶段[7]:离线训练阶段和在线定位阶段,如图1所示。

图1 定位流程

建立指纹库和位置与指纹的匹配模型:离线阶段将采集的测试点CSI信号进行预处理并利用RBF-KNN算法在指纹库进行搜索,结合置信度水平得到定位的位置,下面将详细介绍一下本算法。

2.1 离线阶段

2.2 在线阶段

收集测试点CSI信号,ξnew={csinew}卡尔曼滤波处理后,收集到的信号可以用矩阵表示

(1)

取其中的一维矩阵{csi11csi12…csi1p},并将其与数据库中的每一个点的第一维向量进行比较,常用的比较方法有欧氏距离法、余弦相似度法、皮尔逊系数法以及核函数法。为了比较的方便与准确本文选用了核函数法,并定义了一个基于核函数的权重公式

(2)

式中φ()为测量指纹和指纹库指纹相似程度的核函数,在这里使用高斯核函数[7]定义相似度公式

(3)

式中σ为使用双交叉验证方法估计得到的融合权重参数。然后,通过混合核函数计算在线指纹测量和指纹数据之间的相似性,并且指纹参考点的指标Q(p)与查询指纹最相似。将测量CSI信号与指纹库中的信号进行比较,得到相似度,将相似度按照从大到小的顺序排列,并选取其中的前K个(K的具体取值将在后续实验讨论)进行加权,估计目标位置

x1=wn1·pn1(x)+wn2·pn2(x)+…+wnk·pnk(x)

(4)

y1=wn1·pn1(y)+wn2·pn2(y)+…+wnk·pnk(y)

(5)

这是一条线路的定位结果,按照相同的方法得出其他5条链路的定位结果以及每条链路的定位权重如式(2),并使用置信度比较进行最后定位估计。

3 实验与分析

3.1 实验环境

本实验采用定制的安装了Openwrt的TL-WDR4310路由器作为发射端,一台安装有Atheros 9380网卡的台式电脑作为接收器,CPU型号为Intel Core i3—4150,操作系统为 Ubuntu10.04LTS,且内核和无线网卡驱动经过特殊配置。实验场地选择9 m×6 m 的办公区域,部署了25个正方形区域,每个正方形区域为0.8 m×0.8 m,接收机与发射机相距4.5 m,天线高度为1.2 m,其平面图及详细区域划分布局如图2所示。

图2 实验室平面

3.2 实验设计

Atheros网卡中有2个接收天线,TL-WDR4310有3个发射天线,这就相当于有6条通信链路,每条链路上有56个子载波。在一个参考点测量200次CSI作为指纹库原始数据进行处理,在测量点取80个CSI进行处理和匹配。

3.3 不同K值的定位效果

KNN中的K值是算法中的重要参数,将K值从1~10依次取值,分别测试不同取值的定位误差和定位时间,结果如图3所示。

图3 不同K值定位结果

由实验结果分析k=5是一个临界点,当k<5时,k近邻算法的选择范围增大,更多的正确样本进入了选择范围,降低了误差;当k>5时,说明到达了一个临界,不会因为样本的增多而提高定位精度,反而因为样本选择过多,增加了计算时间,所以本文经过实验,将K值定为5,可以有效缩小查找范围,而传统的KNN定位算法需要比较每一个指纹信息,所以定位时间大大延长。

3.4 定位精度比较

本文采用距离误差作为性能指标,采用均方根误差(root-mean-square error,RMSE)评估,并以此为依据进行评估。假定未知移动设备的位置(Ai,Bi)和用户的实际位置(Ai,Bi)为了比较,实施了三种现有的方法,包括DeepFi[8],Native Bayes和FIFS[9]。 在实验中,这些方案使用相同的测量数据集,以保证结果的可靠性。 图4为四个系统的定位累计分布误差。

图4 定位累积误差比较

在误差小于1 m时,本系统定位准确率处于中等,但在大于1 m时,本文的定位精度远高于其他算法,这是由于本文的方法使用新的核函数作为相似度度量,并使用置信度综合多条线路的定位结果。

4 结束语

本文使用了基于CSI的定位方法,使用卡尔曼滤波对原始信号就行了预处理,结合改进的加权KNN算法与置信度方法进行室内定位.将常用算法与本算法进行对比,实验中证明:本算法在一定误差内,精度优于其他对比算法。下一步将对动态人员定位及轨迹追踪进行研究。

猜你喜欢
网卡载波指纹
在DDS 中间件上实现双冗余网卡切换的方法
像侦探一样提取指纹
为什么每个人的指纹都不一样
Server 2016网卡组合模式
基于自适应稀疏变换的指纹图像压缩
自动化学报(2016年8期)2016-04-16 03:39:00
应急广播系统中副载波的构建与应用
挑战Killer网卡Realtek网游专用Dragon网卡
可疑的指纹
低压载波通讯测试仪的开发与应用
基于最优化搜索的迭代载波同步算法