前言:
现在各位老铁们对“android测距算法”都比较珍视,看官们都需要学习一些“android测距算法”的相关资讯。那么小编也在网摘上汇集了一些有关“android测距算法””的相关知识,希望看官们能喜欢,咱们一起来学习一下吧!蓝牙室内测距模型研究与精度分析
张亚磊,王坚,韩厚增,杨燈
(北京建筑大学 测绘与城市空间信息学院,北京 102616)
摘 要:针对低功耗蓝牙进行室内定位过程中,蓝牙信号在室内传播过程中受到多路径、反射、非视距等误差的影响,导致蓝牙信号值存在波动性、奇异值等问题,进一步导致测距误差较大。为了验证环境对信号传播的影响,本文验证了3种主要影响因素对信号值的影响,并提出3种滤波方法对采集的初始值进行预处理;根据实际环境利用最小二乘法分段拟合测距模型;根据拟合的测距模型与处理后的RSSI值,得到准确的测距信息。实验表明,利用分段拟合的测距模型和混合滤波方法处理后的强度值,测距精度得到了明显的提高。
0引言
随着智能手机的普及和城市化的发展,人们对于室内定位的需求逐渐增大[1],为室内用户提供精确的位置成为了研究热点。室内定位技术包括蓝牙、超宽带(ultra wideband,UWB)、WiFi等方法,在这诸多的方法中,蓝牙定位是可行性以及实用性较高的方法,低功耗蓝牙(Bluetooth low energy, BLE)是蓝牙4.0的核心技术,它具有成本低、功耗低、连接快等特点[2],这些特点极大地推动了蓝牙室内定位的发展。测距是室内定位的前提,目前大多数室内定位通过测距的方式来实现的,因此,室内定位的精度直接取决于测距精度的高低。但是由于室内环境较为复杂,低功耗蓝牙信号的传播受到反射、多路径、天线增益、非视距等因素的影响[3],导致利用接收信号强度指示(Received Signal Strength Indication, RSSI)进行测距出现了较大的误差。文献[4]针对这一问题,考虑到测距的随机误差和系统误差,提出了3种减小测距误差的方案:离群RSSI值处理,在线建模和误差补偿。通过在不同条件下的大量实验,证明了所提出的3种方法与典型处理相比具有更好的测距性能[4]。但是其3种方法都未对原始信号强度值进行滤波处理以及建模的时候没有考虑距离的增加对模型测距精度的影响;文献[5]采用粒子滤波模型对原始数据进行滤波预处理,然后又利用了BP人工神经网络对距离进行估计,实验表明,RSSI测距精度以及抗干扰能力得到了提高[5]。但是在粒子滤波处理原始数据的过程中需要用大量的样本数量才能很好的近似系统地后验概率密度,从而加大了算法的复杂性,造成了滤波实时性不佳的问题;陶文献[6]针对室内环境下基于接收信号强度指示的测距技术存在非视距和多径传输的影响,测距误差比较大的问题,采用多重滤波算法对采集的RSSI进行数据滤波处理,采用最小二乘法对信号衰减模型的参数进行拟合,得到满足具体环境的参数值。但是在实际环境中,蓝牙信号传播超过一定的距离之后,RSSI值小幅度减小对应的距离就会增加很多,因此仅进行一段最小二乘拟合其模型的拟合精度也会降低;文献[7]通过实验比较单一滤波的效果,综合单一滤波的优势,提出了一种基于狄克逊检验法滤波、中位值滤波及高斯滤波的混合滤波算法,虽然有效地剔除异常RSSI值,使测距误差减小。但是该滤波算法中的狄克逊检验法在滤波过程中需要反复地进行查表,加大了算法的复杂性。
本文针对在室内采集蓝牙信号的过程中由于环境的复杂性,强度值存在波动性和呈现无规律的奇异值,导致利用RSSI进行测距的误差增大等问题以及上述研究存在的不足开展研究。对于强度值受到环境的干扰问题,提出了3种不同的滤波方法对初始值进行处理;为了使测距模型更加符合具体的实际环境,实验中使用最小二乘法优化模型参数,利用该方法进行分段拟合测距模型,得出准确的模型,最终提高了测距的精度。
1 蓝牙测距原理
近几年的研究发现,在实际环境中,无线信号的传播存在一定的规律,即随着接收节点与蓝牙节点之间距离的增大,其接收的信号强度呈对数函数的形式衰减[8]。
2 RSSI信号滤波
在实际测距情况下,受多路径、非视距等因素的影响,使接收到的RSSI值存在很大的波动性,导致偏离真实值。因此,在代入公式计算前需要对数据进行滤波处理,来提高RSSI测距精度。针对原始数据的波动现象,本文分别采用均值滤波、高斯滤波以及中值滤波与高斯滤波混合的数据处理方法处理原始数据[13],得到最终的RSSI值。
2.1均值滤波
但仅仅使用高斯滤波并不能完全消除数据的波动情况,因此在RSSI信号预处理中仅仅使用高斯滤波的效果并不佳。
考虑到测距算法的复杂性、可行性以及弥补高斯滤波和中值滤波单独用于数据处理的缺陷,本文采取一种将中值滤波与高斯滤波两种滤波方法同时利用到原始数据的处理中,将采集的原始数据先进行高斯滤波去除较大的跳变值,使得数据整体处于一个相对稳定的状态;将高斯滤波处理之后的数据再进行中值滤波,根据实际情况选择合适的窗口大小进行处理,最终得到一组稳定、平滑的数据。
3 模型参数的优化
利用式(3)进行计算距离前,需要解决一个主要的问题,即确定常数A和路径损耗指数n的值。A和n的值主要取决于实验所在的实际环境,一旦环境发生改变,其相应的值也会发生变化。为了让RSSI测距模型更加真实地反映实际室内环境的传播特性,保证测距的精度,需要对常数A和路径损耗指数n进行优化,得出符合该室内环境的参数值。
4 实验与分析
4.1实验场景
为了验证混合滤波数据处理方法的可行性,对3组不同距离处的RSSI值进行了滤波处理对比。通过利用最小二乘法拟合的RSSI路径损耗模型,进一步分析3种滤波处理后测距误差。
本文实验采用千寻公司生产的芯片为CC2640的蓝牙信标作为信号发射节点。实验过程中,将发射节点的功率调节为0 dBm,信号发射频率调为3次/s。接收节点为安卓8.1.0版本的智能手机,安装开发的蓝牙信号强度采集软件完成RSSI值的采集工作。实验地点为北京建筑大学测绘学院楼3层走廊,实验场景见图1。
图1 实验场景
实验内容包括:①采集原始数据,利用3种数据滤波方法分别对原始数据进行滤波处理,并分析对比滤波前后的RSSI值;②利用最小二乘法对滤波后的RSSI值进行参数拟合,得出当前环境下的路径损耗模型;③采用得到的路径损耗模型进行测距估计,得到位置节点的估计距离,最后得到3种滤波方法的测距误差进行对比分析。实验的技术路线见图2。
图2 技术流程
4.2节点的布设对RSSI信号值的影响
蓝牙信号在室内传播过程中都会受到多路径、折射、反射等因素的干扰,同时,无线传感器本身的布设方式对信号的传输也会产生一定的影响。本文选取3个环境影响因素,研究了其对蓝牙信号传播的影响。
4.2.1 节点布设的密度对信号值的影响
在室内定位过程中,在一定范围内布设蓝牙信标的密度对定位结果也会产生一定的影响。本文为了研究蓝牙信标的布设密度对信号传播带来的影响,做了以下实验分析。①选择3个相同属性的蓝牙信标同时放在1.0 m的范围内,且距接收节点距离为3.0 m处的采样点进行数据采集;②将3个蓝牙信标之间的间隔设为1.0 m,对其中一个信标进行数据采集,采集步骤同上。两种情况下RSSI值分布情况见图3。
图3 一定范围内不同的节点布设密度
由图3可以看出,当在1.0 m范围内仅仅布设一个蓝牙信标时,接受的信号RSSI值大致趋于稳定状态,RSSI值在均值—60.58 dBm的上下波动;当在1.0 m的范围内同时放置多个蓝牙信标时,信号值出现了跳变值增多,且RSSI值出现了衰减的情况。通过此实验发现,蓝牙信号在传播过程中会受到其他蓝牙信号的干扰,导致信号值出现衰减、突变的问题。因此,当使用蓝牙进行室内定位的过程中,要合理地控制一定范围内蓝牙信标的数量,以避免彼此之间造成信号干扰。
4.2.2 接受节点离墙壁的距离对信号值的影响
为了验证实验环境下墙壁对蓝牙信号的影响,将发射节点的高度调节为1.5 m处,且布设在靠近墙壁的位置处,分别将该接收节点分别布设在贴近墙壁和距离墙壁1.0 m处,与发射节点的距离为3.0 m处进行数据采集。这两种情况下RSSI值的分布见图4。
图4 接收节点离墙壁不同距离
由图4可以看出,当把信标布设在靠近在墙壁的位置,同时接收节点也靠近墙壁时,靠近墙壁接收信号相比距离墙壁1.0 m距离接收信号其RSSI值出现了大幅度的衰减。信号值受到墙壁的折射、反射等影响,接收节点所收到的RSSI值整体出现强度降低的情况,RSSI值在—80 dBm附近波动,且信号值波动较大,并且出现了较大的跳变值。当距离墙壁1.0 m距离接收信号时,RSSI值在均值—60.58dBm的附近浮动,没有较明显的跳变值,所以墙壁对蓝牙信号的传播有很大的影响。因此,在进行蓝牙室内定位的过程中,当将发射节点布设在墙壁上时,应该考虑墙壁对蓝牙信号接收的影响。
4.2.3节点布设的高度对信号值的影响
在北京建筑大学F楼3层走廊内进行试验,选取发射节点高度分别为0 、1.3m,且距接收节点距离为3.0 m处的采样点进行数据采集。在该采样点采集200组实验数据,图5展示了两种情况下RSSI值的分布情况。
图5 发射节点离地面不同高度
由图5可以看出,当信标放置于离地面高为0 m时,接收到的RSSI值在—65dBm~—70 dBm波动,RSSI值整体减弱了大概15 dBm,且RSSI值信号变化起伏较大,某些RSSI值跳变到—80 dBm附近;当信标放置于离地面高为1.3 m时,RSSI值大致稳定在均值—60.58 dBm附近,且波动相对小很多,没有较突出的跳变值。这主要是因为地面对信号的折射、反射等因素导致的。因此,在进行蓝牙室内定位的过程中,不要将信标布设在离地面较近的地方,可以减少地面对信号的影响。
4.3滤波算法的数据处理实验
在本实验场中选择一个特定的锚节点,分别在与锚节点距离为3.0 、6.0、9.0 m处各采集300组数据进行分析。利用高斯滤波以及中值滤波与高斯滤波的混合滤波数据处理方法分别对数据进行滤波处理。其结果见图6。
图6 不同距离处接受的强度数据滤波处理
从图6可以看出,受环境的影响所采集的蓝牙信号强度值存在个别突变点、数据存在较大的波动。采用高斯滤波对数据进行处理后,在一定程度上使得原始数据上的突变点变得平滑。但是数据仍然存在波动性较大的问题,而且对允许范围内的大范围波动数据也难以消除。利用中值滤波与高斯滤波结合的数据处理方法进行滤波处理,有效地消除了原始RSSI值的突变点,使得RSSI值平滑、准确地输出。
4.4RSSI测距实验
4.3.1 最小二乘分段拟合的测距模型建立
在实际环境中,蓝牙信号传播超过一定的距离之后,RSSI值小幅度减小对应的距离就会增加很多,因此模型的拟合精度也会降低,为了提高测距模型的精确度,本文选择对测距模型进行分段拟合。实现步骤如下。
1)将蓝牙基站放置在距离地面1.2 m的三脚架上,并且保证基站与手机处于相同的水平线上。采集数据过程中,改变手机与基站之间的距离,使这两者之间的距离依次为0.3 、0.6、0.9 、…、12.0m,在各个距离节点处使用信号采集软件分别采样100组RSSI值。采用中值滤波与高斯滤波结合的数据处理方法对原始数据进行滤波,得到距离一一对应的RSSI值,见表1。
2)分析信号传播曲线特性,划定合理的分段阈值,在本次实验中发现,当信号传播到5 m左右时,信号的增减幅度开始变大,5 m之后,距离随RSSI变化较大,且可以确定5 m处的RSSI值约为—65.2dBm,所以可以选择强度值为—65.2 dBm为阈值。
3)按照确定的阈值,将测距模型一分为二,通过对滤波处理后的RSSI小于阈值的训练样本和大于阈值的训练样本分别用Matlab进行最小二乘拟合,得到了一个分段的测距模型,拟合结果见图7。
图7RSSI值与距离的关系
根据采集的数据分段拟合得到两个测距模型,分别小于阈值的测距模型和大于阈值的测距模型,见式(15)、式(16)。
4.3.2 测距误差分析
本文以距锚节点1~10 m距离处接受的信号强度值作为本次测距实验的研究数据,其中各个节点处的实测RSSI值见图8。
图8 距发射节点1~10m处的强度值
从图8中可以看出,蓝牙信号在楼道内受到楼道内多路径、人员遮挡、墙壁反射等复杂环境的影响,当接受节点距锚节点越远的时候,其强度值波动的越大,尤其是在5 m之后数据更是出现了大幅度的跳变现象。因此,在构建测距模型之前应该对原始数据进行滤波处理,消除噪声对测距的影响;在构建测距模型时采用分段拟合的方法进行,以提高模型的拟合精度;滤波之后的数据结合分段拟合的测距模型,得到1~10 m的测距误差曲线见图9。
图9 三种滤波测距误差绝对值比较
由图9可知,未经任何滤波方法处理的原始数据,仅仅求均值得到最终的强度值,其测距误差最大达4.972 6 m,平均误差为1.894 4 m;经过高斯滤波处理后的数据,其测距误差介于均值滤波与混合滤波之间,最大误差为1.807 2 m,平均误差为1.036 6 m;而经过中值滤波与高斯滤波的混合滤波处理后,其测距误差最大为1.320 8 m,平均误差为0.807 5 m。由此可以看出,采用混合滤波对原始数据进行处理后,明显地提高了RSSI测距的精度。
5 结束语
本文对基于蓝牙的RSSI测距原理以及室内环境下3种典型因素对蓝牙信号的影响做了分析,提出了较为合理的蓝牙节点部署方式;采用高斯滤波与中值滤波混合处理数据的方法,对采集的蓝牙信号强度值进行滤波处理;针对实验的实际环境,提出了基于最小二乘分段拟合的测距模型建立方法,提高了测距模型的拟合精度。实验结果表明,本文所提出的测距改进方法能准确有效地输出信号强度值,提高了基于蓝牙的RSSI测距精度,为后续的定位工作提供了保障。
作者简介:张亚磊(1995—),男,河南周口人,硕士研究生,主要研究方向为室内定位技术。Email:790350304@qq.com.
基金项目:国家自然科学基金项目(41874029);北京建筑大学研究生创新项目(PG2019054)
通信作者:王坚 教授 E-mail: wangjian@bucea.edu.cn
标签: #android测距算法