卡尔曼滤波在无线时钟同步技术中的应用研究

2020-07-31 07:01李小亭张要发韦子辉田梦园郎月新
现代电子技术 2020年15期
关键词:时间差卡尔曼滤波时钟

李小亭,张要发,韦子辉,田梦园,郎月新

(河北大学 质量技术监督学院,河北 保定 071002)

0 引 言

超宽带(Ultra⁃WideBand,UWB)技术是近年来新兴的一项全新、与传统通信技术有极大差异的通信无线新技术。UWB 信号具有纳秒甚至亚纳秒级的脉冲宽度,根据窄脉冲的特点,UWB 信号具有很强的穿透能力,所以理论上讲,利用UWB 技术进行室内定位能够达到厘米级的定位精度[1]。因此,在室内定位中应用UWB 技术具有很高的实用价值。UWB 是利用极窄的脉冲进行信息传输的。由于其占空比低,在多径的情况下可以实现时间上的分离,能够充分利用发射信号的能量[2]。在现有的无线通信技术中,UWB 信号具有高传输率、低功耗、抗干扰性强的优点,基于UWB 的精确定位可以分为同步定位与异步定位两大类,其对应的主流定位技术分别为基于到达时间差(Time Difference of Arrival,TDOA)和飞行时间(Time of Flight,TOF)的技术[3⁃4]。

TOF 方案通过测量电磁波的飞行时间,计算出标签与锚节点间的距离,再汇总计算出标签位置。TOF 方案中锚节点之间不需要同步,硬件实现简单,容易部署,位置求解精度高[5]。TOF 定位算法需要测量移动节点到各固定参考节点的距离,采用双向双边测距完成到每个固定参考节点的测距,移动节点向各个固定参考节点轮流发射定位请求信号,各固定参考节点分别将测距结果上传给服务器,服务器先后收到测距结果进而汇总到一起计算移动节点的坐标值。

TDOA 是一种经典的无线定位技术。TDOA 定位是通过检测移动节点发射的信号到各个固定参考节点的时间差,进而对移动节点进行定位[6]。比如采用2 个不同的固定参考节点就可以得到1 个到达时间差,对应于1 条双曲线,采用3 个不同的固定参考节点就可以得到3 个到达时间差即3 条双曲线,移动节点就位于这3 条双曲线的交点上,因此要达到定位目的,至少需要3 个不同的固定参考节点。

TOF 定位需要多次双向双边测距,存在定位速度慢的问题。TDOA 定位只需要移动节点发送一次信号,定位速度快,因此TDOA 定位应用较广。但是,TDOA 定位方法对时钟同步提出了非常高的要求,各个基站之间的时钟同步要求达到亚纳秒量级,时钟同步是TDOA 定位实现的关键技术,而且高精度实时定位系统需要高精度、低延时的时钟同步技术支持。

本文首先提出面向TDOA 定位应用的无线时钟同步算法,分析了时间差计算过程存在的时间延迟,提出采用卡尔曼滤波算法消除该时间延迟,最后通过时间差测量实验对这种算法进行了实验验证。

1 无线时钟同步算法设计

在TDOA 定位中,对时钟同步有非常高的要求,是因为1 ns 的时钟同步误差将会带来30 cm 的定位误差,因此时钟同步在TDOA 定位中成为研究的热点和难点。目前商用TDOA 定位系统时钟同步方式包括有线传输和无线传输两种方式。有线传输因为要在现场布缆,需要专用同步信号设备,所以成本比较高。无线传输可以弥补有线传输存在的问题,使成本大大降低,且不需要复杂的现场安装[7],无线时钟同步方式应用更为广泛。

2002 年,Jeremy Elson 等人首次研究了无线传感器时钟同步技术的问题[8]。目前,在无线传感器网络时钟同步协议的研究中,根据是否有参考节点可将时钟同步协议分为两种:一种是基于参考节点的时钟同步协议;另一种是分布式的时钟同步协议[9]。基于参考节点的时钟同步协议刚开始会将其中的一个节点选作参考节点,剩余的节点会周期性地和这个参考节点同步,致使整个网络的时钟同步[10]。

TPSN(TimesSynchronization Protocol for Sensor Networks),其原理是选一个节点作为根节点(或参考节点),在这个根节点的基础上,整个网络会逐渐形成一个树状结构,而网络中的节点都与其父节点同步后整个网络 的 时 钟 就 能 够 同 步[11]。FTSP(Flooding Time Synchronization Protocol)的原理是选取一个节点作为根节点之后,根节点会以Flooding“泛洪”传播的方式向整个树状网络周期性地传播自己的时钟信息,从而达到全网时钟同步[12]。

由于每个参考节点都有自己独立的时钟源,时钟源频率受电压和温度变化影响,每个时钟的起始运行计数存在差值,因此需要不断进行时钟校准去修正时钟起始运行偏差和频率偏差。

本文中提出了类似TPSN 的时钟同步方式,建立起一个网络树状结构。每个从时钟参考节点都与上一级的父时钟参考节点进行时钟同步,最后所有时钟都同步到根时钟节点。与TPSN 不同的是,同步信号对时钟采用单向通信,每个单节点不进行时钟同步计算。所有数据上传到定位服务器,由定位服务器进行时钟同步计算、时间差及距离差计算。

如图1所示,A 为根时钟参考节点,B 为从时钟参考节点,C 为从时钟参考节点,同时,B 又为C 的父节点,以此类推下去。根节点A 连续发送对钟信号A1,A2,…,An。τA1,τA2,…,τAn是发送对钟信号时的主时钟计数,从时钟节点B 接收到对钟信号的时钟计数为τB1,τB2,…,τBn,同时,节点B 也发射同步信号B1,B2,…,Bn,从时钟节点C接收节点B 的同步信号。标签发射广播信号,节点A、节点B、节点C 接收标签发射信号的时钟计数分别为τAT,τBT,τCT。

图1 时钟同步原理图

时钟同步计算原理采用式(1)校准时钟起始运行偏差,式(2)计算K 校准时钟频率偏差。由式(3),式(4)得到τBT时刻根节点时钟计数值τBT(A),所有节点接收标签时刻的根节点时钟计数值均可计算。

同理,可得:

于是得到时间差计算如下:

于是可得距离差计算如下:

式中C=299 792 458 m/s。

以上是插值公式实现时钟同步、时间差及距离差计算的公式模型。其中,根时钟节点和从时钟节点测量得到的时钟计数τA1,τA2,…,τAn,τB1,τB2,…,τBn均上传至定位服务器,由定位服务器完成时钟同步的计算,并根据各节点接收标签定位请求信号时间τAT,τBT,τCT,根据式(9),式(10)计算时间差后,再根据式(11),式(12)计算距离差。

其中k 值的计算非常重要。在对钟过程中,计算k 值需要两次对钟的同步信号,节点收到标签信号后,需要再接收一次同步信号才能计算k 值和时间差,最后得到距离差。这样在计算时间差和距离差时会引入一定的时间延迟,无法应用于高实时性要求场合。卡尔曼滤波算法作为当下非常优秀的滤波算法,它还可以利用历史数据对下一时刻的值进行预测估算,提出将卡尔曼滤波算法引入到无线时钟同步对钟过程中,以消除时间延迟。

2 基于卡尔曼滤波的无线时钟同步算法设计

卡尔曼在1960 年提出了一种有关时域设计的线性系统的滤波器,即卡尔曼滤波[13]。卡尔曼滤波是一种估计方法,能够实时估计系统中的参数,如连续变化的位置、速度等。估计量通过一系列受噪声污染的观测量来更新,而观测量是待估计参数的函数,其成功运用于目标跟踪、组合导航等领域,具有优异的性能[14]。

卡尔曼滤波的基本原理是利用过程噪声和测量噪声对下一时刻的值进行预测估计,根据预测估计得到的估计值和当前时刻的测量值建立系统方程,算法根据建立的系统方程和观测方程,通过递推处理,对信号的当前值在最小均方误差下做出最优估计[15],进而可以得到更加平稳的数据。

卡尔曼滤波主要由系统状态方程和系统观测方程实现,状态方程主要是某个时刻和下一个时刻状态向量的联系,父时钟节点采用等间隔发送时钟同步信号,从基站接收同步信号时钟计数状态方程为:

式中:Xn表示n 时刻的系统状态向量,A 表示状态转移矩阵是根节点对时间隔;Un是n 时刻对系统的控制量,因为采用等间隔对钟,不存在系统输入控制变量;B 为0;Wn是过程噪声。

测量方程主要是测量向量和同一时刻状态向量的联系[16]。

式中:Yn表示n 时刻的测量向量;H 表示测量矩阵,测量值只有从节点时钟计数,因此H=[1,0];Vn表示测量噪声。系统的过程噪声和测量噪声均认为是高斯白噪声。卡尔曼滤波迭代计算的过程如下:

式中:Xn,n-1是利用历史数据状态预测的结果;Xn-1,n-1是上一状态的最优结果;Xn,n是卡尔曼滤波输出的最终结果;Un是当前时刻状态的控制量,如果无控制量它可以为零,本设计中的控制量0;Q 是系统过程噪声Wn的协方差;R 是测量噪声Vn的协方差;Kg为卡尔曼增益。

卡尔曼增益代表输出结果中预测值和测量值的权重分配,调整Q 和R 值可以改变卡尔曼增益大小,在实际应用中常通过调整Q,R 值大小获得最佳滤波效果。

将卡尔曼滤波应用于时钟同步计算过程中,收到标签发射的信号后,应用Xn,n-1的预测值Kn进行时钟同步计算,不需要等到下一次时钟同步信号即可计算时间差,进而消除时间延迟。如果应用滤波输出Xn,n的Kn进行时钟同步计算,则可进一步提高时间差计算的精度。

3 测试结果

系统通信节点采用Decawave 公司推出的DW1000射频芯片。DW1000 采用的是IR⁃UWB 通信技术,典型带宽500 MHz。DW1000 射频芯片内置了63.897 6 GHz的采样时钟,计时分辨率为15.65 ps,高精度的时钟保证了信号飞行时间的测量精度。DW1000 支持6 个信道,频率范围为3.5~6.5 GHz,采用脉冲位置调制(Pulse Position Modulation,PPM)和二进制相移键控(Binary Phase Shift Keying,BPSK)调制方式[17]。

控制器采用意法半导体(ST)公司的STM32F107 32 位ARM 微控制器,其自带完整的串行外设接口(Serial Peripheral Interface,SPI)控制器,能够胜任对DW1000 射频芯片的控制及数据收发工作。STM32F107芯片的外围电路主要包括外部晶振、退耦电容、SPI 接口电路等。

主从基站的时钟频率是不断变换的,其主要受温度影响,也会随着供电电压波动而变化,为减少线性化处理带来的误差,可以采取以下两个措施:

1)使用高精度、高稳定度的晶振作为DW1000 的频率源,可采用有源温补晶振或恒温晶振。

2)缩短对钟的时间间隔,对钟时间间隔越短,线性化处理带来的误差越小。

分别在150 ms,300 ms,500 ms,800 ms 对钟时间间隔下,采用线性插值及引入卡尔曼滤波进行距离差测量,实验测得1 000 组数据,得到如下数据结果。

表1 中Max 一行中的数据表示从时钟的时钟计数间隔的最大值,Min 一行中的数据表示从时钟的时钟计数间隔的最小值,Max-Min 一行中的数据表示最大值与最小值之差。表1 反映了从时钟计数的波动情况,150 ms 对钟间隔所得数据稳定性更好。

表1 时钟计数波动表

利用实验测得的时钟计数数据,通过插值法、卡尔曼滤波预测k值、卡尔曼滤波法进行了距离差的计算,得到1 000组数据,分别对这3种方法所得的距离差数据进行方差计算,所得结果如表2所示。

表2 距离差测试结果

根据表2 中的数据可知,本次所设计的卡尔曼滤波器在150 ms 对钟时间间隔下效果较好,于是选择了对钟时间间隔为150 ms。

4 结 论

经过卡尔曼滤波后计算所得的距离差相比线性插值法的无线时钟同步计算所得的距离差的方差较小,因此说明了经过卡尔曼滤波后所得数据的稳定性较好,也进一步说明了本次的卡尔曼滤波器设计成功,可以提高TDOA 的定位精度。通过实验得出,本次所设计的卡尔曼滤波器使定位精度提高了1 cm,还有待进一步的改进使定位精度再次提高。

通过实验,利用设计的卡尔曼滤波器中的先验值进行计算,得到的距离差相比线性插值法的无线时钟同步计算所得的距离差的方差虽有差距,但相差并不是很大,在满足定位精度的同时,利用先验值的定位计算减小甚至消除了时间延迟,提高了定位速度,可满足高实时性定位要求的场合。

注:本文通讯作者为韦子辉。

猜你喜欢
时间差卡尔曼滤波时钟
别样的“时钟”
量子定位系统中符合计数与到达时间差的获取
古代的时钟
基于递推更新卡尔曼滤波的磁偶极子目标跟踪
基于BP网络的GIS局部放电声电联合检测故障定位方法
立体声音乐节目后期制作中声像定位的探讨
有趣的时钟
时钟会开“花”
基于模糊卡尔曼滤波算法的动力电池SOC估计
厘米级室内无线定位方法研究