APP下载

UWB定位中基于XGBoost的NLOS识别方法

2023-05-27袁驰黄波

移动通信 2023年5期
关键词:脉冲响应脉冲准确率

袁驰,黄波

(南京邮电大学通信与信息工程学院,江苏 南京 210003)

0 引言

超宽带(UWB,Ultra Wide Band)信号具有低功耗、高时间分辨率和高精度等优势,在室内定位中具有十分广阔的应用前景。

在基于UWB 的室内定位系统中,非视距传播(NLOS,Non Line of Sight)环境对定位有着十分重要的影响。NLOS情形将直接导致信号产生衍射、散射、反射以及一些信号不规则损耗,使得定位信号发生不可知的变化,极大程度上影响最终定位精度[1]。因此,NLOS环境的识别一直是超宽带定位领域的一个重要方向。

NLOS环境识别的目的是判断信号收发之间是否存在障碍,从而缓解信号传播误差。NLOS识别方法主要有统计学方法、几何关系判决法和机器学习方法等[2]。

文献[3]中使用了一种残差检验法,可以确定和识别NLOS环境,算法使用TOA(Time Of Arrival)测距,残差是估计值和真实位置之间的平方差,用方差进行归一化,得到的随机变量的方差是统一的,使用测距结果和测距中使用的前两个节点可以判断节点之间是否处于LOS环境的。文献[4]中使用误差统计法识别NLOS环境,提出了一种分布式多输入多输出雷达定位运动目标的代数封闭式解,利用两阶段加权最小二乘算法估计目标的位置和速度,使用误差项征识别可以判别目标节点是否处于NLOS环境中。文献[5]在非视距识别的基础上,提出了一种基于能量检测器的归一化阈值算法。利用接收能量块值的最大旋度和标准差来确定NLOS环境和不同信噪比下的归一化阈值,构造了接收能量块值的混合参数判别目标节点是否处于NLOS环境中。文献[6]提出一种非封闭检查算法解决稀疏场景下的NLOS识别问题。

随着机器学习在无线通信领域的广泛应用,越来越多的学者利用机器学习的方法来识别非视距信号。SVM(Support Vector Machine,支持向量机)[7~8]、SVDD(Support Vector Data Description,支持向量数据描述算法)[9]、KNN(K-NearestNeighbor,K近邻算法)[10]、IVM(Import Vector Machine,导入向量机)[11]、CNN(Convolutional Neural Network,卷积神经网络)[12~13]、决策树(Decision Tree)[14]等方法被运用到室内定位领域中判别NLOS环境,均有较好的识别效果。文献[15]提出一种基于SVM的方法来识别NLOS信号。文献[16]提出一种基于加权K近邻(WKNN,Weighted K-Nearest Neighbor)非视距识别方法。文献[17]提出一种基于CNN的NLOS识别方法,该算法可直接运用于未经处理的信号通道脉冲响应(CIR,Channel Impulse Response)信号,从而减少提取特征的过程。文献[18]提出了一种基于CNN的大规模MIMO(Multiple-in Multiple-out,多输入多输出)系统识别算法。

XGBoost(Extreme Gradient Boosting)算法是陈天齐博士在GBDT(Gradient Boosting Decision Tree)算法基础上提出的一种并行梯度提升模型[19],模型采用集成思想,持续不断产生新树,去拟合前面的树模型的残差,减少损失。对比原始的GBDT模型,XGBoost算法在实际应用上的模型速度和准确率均比传统的GBDT算法提高很多[20]。相比于常用于室内定位的其他机器学习算法,XGBoost算法具有更高的准确率、更好的泛化能力。另外XGBoost算法有很好的数据适应性和输入数据不变性,相比于风靡于工业界的深度学习神经网络算法,XGBoost算法更适宜处理表格数据,同时它还具有更强的可解释性[21]。

基于此,本文采用XGBoost来识别UWB定位中的NLOS信号,并基于两组不同的数据源,一组是基于通道脉冲响应CIR数据,另一组是基于统计特征参量。数据采集使用DecaWave公司的DW1000芯片,采样环境为办公环境,采样12 000个,长度为1 024,包括1 016个信号脉冲响应和是否标注为NLOS等。

1 实验环境

为了建立一个基于XGBoost的LOS和NLOS信道分离的分类模型,需要一个代表这两个类的广泛数据集。因此设计实验采集数据,实验使用DecaWave公司的DW1000芯片,它符合IEEE802.15.4-2011 UWB标准,标签使用可充电移动标签。DW1000的消息报头和有效载荷部分使用脉冲重复频率(PRF,pulse repetition frequency)的频率,以超窄的脉冲来发送,脉冲重复频率可以从16 MHz和64 MHz中选择;支持6个频率波段,频率波段从3.5 GHz到6.5 GHz。实验时选择的脉冲重复频率为64 MHz,频率波段为3.5 GHz。

图1为测量数据的真实场景,图中圈出部分为定位节点;图2为可无线充电的标签,在标签移动时,定位标签可每秒发送3~4个脉冲数据包,标签静止时,标签每隔5秒左右发送一个脉冲数据包。

图1 真实测量环境

图2 定位标签设备

实验环境为办公环境,办公室的长宽分别为6.73 m和5.21 m,四个锚点坐标分别为(0.170,0.255),(6.568,0.296),(0.273,4.507),(6.575,4.073)。实验共采样12 000个,数据长度为1 024,包括1 016个信号脉冲响应和是否标注为NLOS等。

首先,在没有障碍遮挡的情况下进行6 000次测量,然后在相同的环境下收集NLOS条件下的6 000个测量值。为确保收集到的测量值始终符合在信号信道状态下,一个人手持定位标签在定位范围中移动,另一个人LOS信道条件下跟踪两个UWB节点的天线之间的视觉链接,确保定位标签处于LOS定位;在NLOS环境下,一个人手持障碍物遮挡定位节点,并确保NLOS测量情况下节点之间没有视觉连接,另一个人手持定位标签在定位范围中移动。

2 基于通道脉冲响应的XGBoost NLOS识别算法

NLOS识别的目的是判断定位时测量数据时信号发送端和信号接收端之间是否存在NLOS环境的影响,从而对测量数据进行传播误差的缓解[8]。在判断NLOS情形时,需要考虑到整体信号的衰减、直接到达路径信号的减少、障碍物折射率不同导致的飞行时间误差。

2.1 通道脉冲响应

UWB技术是通过作用在天线上的基带脉冲传输数据,窄带脉冲产生较大的信号带宽。CIR信道脉冲响应是由DW1000对最近接收到的帧检测到的发射机和接收机之间的通信信道的脉冲响应。当信号发射机和接收机之间存在障碍时,信号从发射端到达接收端,中间经过障碍物,产生高噪声和时间延迟,接收到的CIR信号比非NLOS环境下接收到的更杂乱[9]。

图3图4为LOS脉冲信号和NLOS脉冲信号的一个实例,分别描述了一个152个CIR的NLOS和LOS信号示例的可视化。在一个CIR累加器中,大约152个CIR信号中包含了关于环境中传播特性的大部分可用信息,因此选择152个CIR作为输入即可判定出是否为NLOS信号。

图3 LOS环境下CIR信号

图4 NLOS环境下CIR信号

DW1000 CIR累加器中的信道脉冲响应数据CIR时间是可变的。DW1000通过一个内置的专有算法来检测并确定信号的起始索引,在处理期间很容易地访问它。在学习和分类过程中,使用前152个CIR信号,起始位置从内部算法检测到的第一个路径索引开始。

2.2 XGBoost算法和实现过程

XGBoost算法是陈天齐博士在GBDT算法基础上提出的一种并行梯度提升模型,模型采用集成思想,持续不断产生新树,去拟合前面的树模型的残差,减少损失。算法的目标函数中定义了正则项控制模型复杂度,其中包括控制正则化权重和控制树是否分叉的参数,控制训练过程中生成的每棵树的模型复杂度,防止过拟合;同时算法支持并行化,极大提高了模型的训练速度;选择参数时,XGBoost算法支持交叉验证,方便参数的选择。对比原始的GBDT模型,XGBoost算法在实际应用上的模型速度和准确率均比传统的GBDT 算法提高很多。与一度风靡工业界得的深度学习算法相比,XGBoost不适宜处理高维数据如文本、语音、图像等,但对于本文中用到的这种表格数据,它具有独特的优势,同时还拥有一些深度神经网络所没有的特性,例如可解释性、输入数据的不变性。

基于XGBoost和通道脉冲响应数据的NLOS识别过程如图5所示。数据集中提取出需要的CIR信号,输入XGBoost模型,模型不停地增加分类树进行特征分裂,实际上是在模型中增加新函数fk,使模型的损失函数越来越小;分裂过程中给每棵树打分,每棵树上不同的叶子结点对应不同的分数,不同结点特征对应不同分数权重,根据相应的决策条件划分。

图5 NLOS识别过程

每产生一个分类树,就是学习一个新的目标函数,拟合上一棵树预测产生的残差,目的是让分类的结果更加接近真实值。模型训练完后,得到不同的分类树,最终的预测结果就是前面的树的模型相加结果,输出是否NLOS信号。

XGBoost目标函数由损失函数和正则项式组成,定义如下:

其中,n是生成第k棵树的数据总量,K代表建立的树的个数;yi是数据的真实值,是模型的预测值,损失函数l代表模型预测值和真实值之间的差异;正则项控制模型复杂度,是对迭代t次生成的t棵树的复杂程度的加和,控制训练过程中生成的每棵树的模型复杂度,防止过拟合。

迭代t次的树模型表示为:其中i表示数据集中第i个样本,fk表示第k棵树,为第xi次的预测值。

模型根据决策树定义目标函数,其中,决策树由树的分支和每个叶子节点的权重组成;每棵树上不同的叶子结点对应不同的分数,不同结点特征对应不同分数权重,根据相应的决策条件划分。

决策树的复杂度判断是根据每棵树的叶子节点,目标函数的正则项由叶子节点数目和其权重而决定的。决策树的复杂度定义如式(4)所示:

γ和λ为模型训练前设置的参数,γ参数控制训练中模型的树是否分叉,λ参数决定正则化的权重,在建立模型时根据情况设定;T是叶子总数,wj是叶子节点权重,即叶子节点分数。

例如,分类时模型根据脉冲通道响应范围进行第一次特征分裂,根据接收信号功率进行第二次分裂...不断进行特征分裂,形成一棵树;根据不同索引号的CIR值和特征,分裂形成第二棵树、第三棵树……最终生成了K棵树,每棵树生成时都是在增加新函数拟合残差,使损失越来越小;分裂树由树的分支和叶子结点权重组成,决策树的复杂度判断是根据每棵树的叶子节点,目标函数的正则项由叶子节点数目和其权重而决定的。最终这K棵树的权重就是每个样本的预测分数,K棵树结果的加和就是每个样本的最终预测结果。

算法实现过程中使用python 中的numpy 和pandas库处理数据。首先根据源数据中第一路径索引开始截取连续的152 条CIR 信号,索引号是DW1000 内置专有算法检测出来的;所有数据处理完后得到12 000 条长度为152 的数据集,作为一个输入数组,是训练模型的多列特征,将事先标记的是否为NLOS 信号作为输出,按照80%和20%的比例分成训练集和测试集。

XGBoost算法的实现使用原生接口,训练过程中使用字典的方式存储参数,算法的参数分为三类,通用参数、boost参数和学习目标参数。模型训练时引入网格搜索法设定参数,结合交叉验证法,将不同参数的可能组成网格,对网格中可能的参数进行网格搜索,避免不确定性选择参数浪费大量运算时间。

3 基于统计特征参数的XGBoost NLOS识别算法

在NLOS识别问题中,接收到来自节点信号,信号中包含NLOS和LOS信号,将节点信号经过计算后得到数据作为输入,使用XGBoost模型识别信号。采用的参数包括:第一路径错误识别可能性、脉冲通道响应动态范围、第一路径信号功率和接收信号功率。

3.1 特征参量抽取

在复杂情况下进行UWB定位时,需要考虑信号被遮挡的情况,故可以采用CIR通道信息来区分是否NLOS信号。常用的特征值有上升时间、峰值时间、信号梯度、最大振幅、信号总能量、接收信号功率、均方根误差等。本文中采用未识别到的早期路径的可能性、脉冲通道响应动态范围、第一路径信号功率和接收信号功率等特征。

(1)未识别到第一路径的可能性

如果第一个路径被严重衰减,反射路径将会被识别成第一路径,导致接收到的CIR信号上升时间与峰值时间无法正确判断[10]。如图6所示,可以看到第一路径不被正确识别的场景,在噪声门限以下存在实际上的第一路径。如果检测到峰值出现在确定的第一个路径之前,那么就能判断存在一个未检测到的第一个路径的可能性,就能来判断是否存在NLOS信号。

图6 第一路径识别错误的场景

(2)脉冲通道响应动态范围

累加器的增长速率受到脉冲数量的限制,导致高信号水平的失真,令分辨不同高功率信号变得十分困难。因此,脉冲通道响应动态范围可以识别是否NLOS信号。

(3)第一路径信号功率和接收信号功率

通道脉冲响应估计噪声值的标准偏差与第一路径振幅值进行比较。噪声值的标准偏差越高,意味着接收信号质量越差,也就是信号收发端之间存在阻碍。高噪声会引起真正的第一条路径淹没在噪声中,将噪声与第一路径振幅相比较,可以知道第一路径测量是否准确[25]。因此,第一路径信号功率和接收信号功率可以确定是否NLOS信号。

3.2 特征参量计算过程

(1)未识别到的第一路径

确定第一个路径前累加器产生峰值的数目[24]如步骤①~⑤:

①计算获取噪声门限[24]如公式(5):

其中,NT为新噪声门限,T为原来的噪声门限值。设定新噪声门限,有可能检测到原噪声门限下未识别的第一路径,即路径开始第一个索引位置有峰值存在,如图4所示。

②形成分析窗口:从第一个路径位置的整数部分路径位置,形成一个从该索引向前的16个样本的分析窗口。

③检测所有可能的峰值,即PN_NT。

④找到振幅高于在步骤①中计算出的新的低噪声阈值的峰值:一旦确定了出现在已确定的第一条路径之前的峰值的数量,就可以评估有未被检测到的第一条路径的可能性。

⑤计算未检测到的早期路径的可能性值Luep如公式(6)、(7):其中PN_NT为新阈值下的峰值数目,PN_AW为分析窗口下的最大峰值数目,L为分析窗口的长度。

一旦确定了出现在已确定的第一条路径之前的峰值的数量,就可以评估有未被检测到的第一条路径的可能性,从而判断是否处于NLOS环境。

(2)脉冲通道响应和动态范围

累加器的增长速率受到脉冲数量的限制,这将导致高信号水平的失真,使得分辨不同高功率信号变得十分困难。这表现为高功率射线对累加器的饱和。定义这种饱和程度为Mc[24],则计算如下公式:

其中fpAmpl1、fpAmpl2、fpAmpl3是第一路径周围的第一、第二和第三振幅,max决定了最大值;pkAmpl是峰值振幅。

(3)第一路径信号功率

可以使用公式(10)估算第一路径功率[25]:

其中fpAmpl1、fpAmpl2、fpAmpl3是第一路径周围的第一、第二和第三振幅;A是常数;对于脉冲重复频率为16 MHz时A为113.77,对于脉冲重复频率为64 MHz时A为121.74;N为无线电频率帧信息寄存器中的累积计数值。

(4)接收信号功率

使用公式(11)计算接收功率[25]:

其中,C为脉冲通道响应功率;A是常数,对于脉冲重复频率为16 MHz时A为113.77,对于脉冲重复频率为64 MHz时A为121.74;N为无线电频率帧信息寄存器中的累积计数值。

4 实验结果分析

为了评估模型的性能,计算了一些基于混淆矩阵的标准度量标准,准确率(Accuracy)、召回率(Recall)和F1分数。在混淆矩阵中,行表示实际类示例,列表示在分类过程中被分配的类。所得到的分配可分为四类,称为真阳性(TP)、真阴性(TN)、假阳性(FP)和假阴性结果(FN)。下式分别为准确率、精确率、召回率和F1分数计算式:

精确度衡量的是阳性结果中真阳性的比率,召回率是真阳性在与该类实际样本数之比,F1分数是前两者的调和平均。

4.1 基于通道脉冲响应的XGBoost NLOS识别实验结果

实验一使用基于CIR采集数据的XGBoost模型,分别与K近邻(KNN,K-NearestNeighbor)、支持向量机(SVM,Support Vector Machine)、逻辑回归(LR,Logistic Regression)、决策树(DT,Decision Tree)模型在相同的输入下进行对比,输入数据为CIR采集数据。将数据集按照80%和20%的比例随机分成训练集和测试集,分类指标如表1所示:

表1 实验一分类指标

由表1可知,实验一中基于CIR采集数据的XGBoost模型识别结果准确率和召回率均为0.91,F1分数为0.90,效果最好;逻辑回归和支持向量机模型识别结果准确率、召回率和F1分数均在0.84到0.85,效果次之;基于CIR采集数据k近邻、决策树模型识别结果相差不大,准确率、召回率和F1分数在0.82到0.84之间。结果表明,基于CIR采集数据的XGBoost模型能显著提高识别NLOS信号的准确率,具有较高的实时性,且省去了特征提取的过程。

4.2 基于关键信号特征的XGBoost NLOS识别实验结果

实验二使用基于关键信号特征的XGBoost模型,分别与KNN、SVM、LR、DT模型在相同的输入下进行对比,输入数据为关键统计参数。数据集按照80%和20%的比例随机分成训练集和测试集,分类指标如表2所示:

表2 实验二分类指标

表2中基于关键信号特征的XGBoost模型识别结果准确率、召回率和F1分数均为0.92;k近邻和决策树模型识别结果准确率、召回率和F1分数均在0.88到0.89,效果次之;支持向量机和逻辑回归型识别结果准确率、召回率和F1分数均在0.70到0.89之间,不同指标分数差别较大。结果表明,基于关键信号特征的XGBoost模型效果最好,对比其他模型,XGBoost模型显著提高了NLOS信号识别的准确率。

4.3 实验结果分析

从实验结果来看,相对于其他模型,XGBoost模型拥有更高的准确率。这是由于XGBoost算法在计算损失函数时,使用二阶泰勒展开,完成了大量损失函数的近似,实现了损失函数的自定义,提高了模型精度。

实验一和实验二对五种不同的机器学习算法在两组不同的数据集中对NLOS信号判别。实验一采用的未经处理的CIR信号,模型能直接在CIR波形中识别到信号特征,省去了特征处理的过程,具有更高的实时性。实验二是基于关键特征的NLOS判别模型,提取了一些定位过程中的关键信息,模型运行速度更快结果更精准。

XGBoost模型能将成百上千个低识别率的模型进行组合,形成一个准确率高的高识别率模型,能够准确识别NLOS环境。XGBoost算法在两组实验中表现很好,准确率、召回率和F1分数都有相对程度的提高。这表明相对于其他模型,不论是在原始的CIR信号还是经过处理的关键信号特征的输入下,XGBoost模型都拥有更高的准确率,能有效提高NLOS识别率。

5 结束语

文中基于XGBoost算法对UWB NLOS场景进行识别,构建了基于CIR采集数据的XGBoost模型和基于关键信号特征的XGBoost模型,并采用实测数据和其他几种常用的机器学习NLOS识别算法进行对比实验。实验结果表明,在两种不同的数据集情况下,文中提出的算法都能显著提高识别NLOS准确率。

猜你喜欢

脉冲响应脉冲准确率
他们使阿秒光脉冲成为可能
脉冲离散Ginzburg-Landau方程组的统计解及其极限行为
基于重复脉冲响应的发电机转子绕组匝间短路检测技术的研究与应用
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
2015—2017 年宁夏各天气预报参考产品质量检验分析
高速公路车牌识别标识站准确率验证法
黄芩苷脉冲片的制备
脉冲响应函数下的我国货币需求变动与决定
基于有限元素法的室内脉冲响应的仿真