APP下载

基于自适应容积卡尔曼滤波的矢量跟踪算法

2019-01-03邹晓军廉保旺丹泽升

西北工业大学学报 2018年6期
关键词:鉴别器协方差载波

邹晓军, 廉保旺, 丹泽升

(西北工业大学 电子信息学院, 陕西 西安 710072)

随着用户对导航定位需求的日益提高,对GNSS(global navigation satellite system)接收机性能的要求越来越高,传统的GNSS信号接收技术越来越难以满足要求。矢量跟踪技术作为下一代GNSS接收机的关键接收技术[1]之一,以其潜在的性能优势,近年来受到越来越多国内外学者的关注。相对于传统接收机中使用的标量跟踪技术,矢量跟踪技术在没有外部设备辅助的情况下,通过挖掘卫星信号之间的相关信息,能够有效提高跟踪能力,具有跟踪更加微弱的卫星信号、桥接被瞬时遮挡的卫星信号以及忍受更大的用户动态等优势[2-3]。

在当前的矢量跟踪环路中,通过鉴别器[4-6]获得码相位误差和载波频率误差,然后以此为观测量来求解用户位置和速度。这种方式结构简单,计算复杂度低,但是,由于噪声的影响,容易进入鉴别器的非线性区域,使得鉴别器的输出存在较大误差,尤其是在弱信号的情况下,这种现象更加明显。为了解决这个问题,可以对相关积分累加之后的I/Q支路数据进行滤波处理,这样既可以降低噪声的影响,同时还可以规避鉴别器的非线性问题。鉴于I/Q支路数据的非线性特征,需要采用可处理非线性数据的滤波算法。容积卡尔曼滤波算法[7](CKF),是近年来新提出的一种非线性滤波算法,它基于三阶球面-相径容积规则,能精确到泰勒展开的三阶精度,并具有严格的理论推导和证明。CKF避免了扩展卡尔曼滤波算法(EKF)对非线性函数的线性化处理,所以滤波精度更高,较无迹卡尔曼滤波算法(UKF)减少了一个采样点,且采样点权值均为正,具有更好的数值稳定性和计算效率[8]。但是,CKF算法存在一个问题,它完全依赖于初始化配置,不能够根据环境的变化自适应地调整自身参数,这样会出现参数的配置与实际应用不匹配的情况,导致滤波器性能下降甚至发散。针对这一问题,使用新息[9]协方差能够实时估计量测噪声的协方差矩阵,自适应地调整量测噪声的大小,进而提高CKF算法应对环境变化的能力。

本文采用上述具有自适应调节能力的CKF算法对I/Q支路数据进行滤波处理,然后将滤波输出的码相位误差和载波频率误差作为导航滤波器的观测量。导航滤波器集中处理所有接收通道的数据,进行用户位置和速度的解算,并同时输出各个接收通道的NCO(numerical controlling oscillator)控制参数,完成各个接收通道卫星信号的跟踪。最后,将本文算法与基于鉴别器方式的矢量跟踪算法进行了对比测试,验证了算法改进后的有效性。

1 矢量跟踪环路结构

1.1 系统结构模型

对于采用标量跟踪环路的GNSS接收机来说,每颗卫星信号的载波频率和码相位都由一个独立的通道进行跟踪锁定,通道之间相互没有联系。矢量跟踪环路与之最明显的区别就是各通道间的数据都汇聚到导航滤波器进行集中处理,从而实现各个通道间的信息共享。这种结构的好处是强信号能够辅助弱信号的接收,实现微弱信号的跟踪。矢量跟踪环路的结构如图1所示。

图1 基于CKF的矢量跟踪结构模型

图1中,CKF代替码相位鉴别器和载波频率鉴别器,同时输出码相位误差Δτi和载波频率误差Δfi,作为导航滤波器的输入数据使用。i∈[1,N],表示第i个接收通道,N为卫星的总个数。只有当Δτi和Δfi足够小的时候,导航滤波器才可能输出准确的位置和速度,以及各环路的控制量。所以说,Δτi和Δfi的误差大小,直接影响着整个矢量跟踪环路的性能。

1.2 信号模型

第i颗卫星的信号经接收机射频前端处理后,其中频信号的信号模型可以由(1)式表示

(1)

式中,AIF,i表示中频信号的幅度;C(t-τi)表示伪码;D(t-τi)为调制的数据码;τi表示信号的传播延时,单位为s;fc为载波频率,单位为Hz;fd,i为信号的多普勒频移,单位为Hz;θi表示载波相位,单位为rad。

信号被捕获后,接着进入跟踪阶段。如图1所示,接收信号首先与本地产生的2路相位相差90°的载波信号相乘,实现载波剥离,然后再分别与本地产生的3路伪码数据相乘,实现伪码的剥离,最后完成积分累加后输出到CKF滤波器。经过上述步骤的处理,第i个接收通道6路I/Q数据的数学表达式如下所示:

式中,Ai表示信号幅度;R(Δτi+δ)表示伪码的自相关函数;Δτi表示码相位误差;δ表示本地伪码超前和滞后的间隔,一般设置为二分之一个码片长度;Tcoh表示积分累加的时间;Δfi表示载波频率误差;Δθi表示载波相位误差。

2 基于自适应容积卡尔曼滤波的矢量跟踪算法

2.1 滤波器模型

一个卫星信号对应一个接收通道,对于任意一个接收通道,CKF的状态量定义为:

(8)

鉴于载波频率、载波相位、码相位之间的关系,滤波器在k+1时刻的状态方程可表示为:

(9)

式中,fcode表示伪码频率,Wk为过程噪声向量,其协方差矩阵为Qk。

以6路I/Q数据作为观测量,量测方程可表示为:

(10)

2.2 CKF算法

CKF算法是一种确定性采样非线性算法,基于容积规则选取一组容积点,容积点经非线性函数传递后,来近似非线性高斯滤波中的高斯积分。

为了提高滤波的稳定度,避免误差协方差矩阵失去正定性,采用奇异值分解[10](SVD)代替原算法中的Cholesky分解。CKF算法包含时间更新和测量更新2个部分,计算步骤如下:

2.2.1 时间更新

1) 对k-1时刻的状态误差协方差矩阵Pk-1作SVD分解,有

(11)

式中,Sk-1为对角阵,Sk-1=diag{s1,k-1,s2,k-1,…sn,k-1},sn,k-1为奇异值,Uk-1和Vk-1的列向量为对应的奇异向量。

2) 计算容积点

(12)

(13)

式中,i=1,2,…,m,m表示容积点个数,等于状态量维数n的2倍。文中,m=10。[1]i表示点集[1]中的第i列,[1]表示完整全对称点集。

3) 计算经状态方程传递后的容积点

(14)

4) 估计k时刻的状态预测值

(15)

5)发计算误差协方差阵的预测值

(16)

2.2.2 测量更新

1) 对矩阵Pk|k-1作SVD分解,有

(17)

2) 计算容积点

(18)

3) 计算经量测方程传递后的容积点

Zi,k|k-1=h(Xi,k|k-1,uk)

(19)

4) 估计k时刻的观测量预测值

(20)

5) 计算新息协方差阵:

(21)

6) 计算互相关协方差阵

(22)

7) 计算k时刻的滤波增益

(23)

8) 计算k时刻的状态估计值

(24)

式中,zk表示的是观测量。

9) 计算k时刻的状态误差协方差矩阵

(25)

2.3 自适应CKF算法

(21)式中的Rk是量测误差的协方差矩阵,表示的是观测量的量测噪声,其初始值可表示为:

(26)

在实际应用中,环境是不断变化的,量测误差也会随之发生变化,如果Rk始终使用固定的初始值R0,那么CKF会因为不能够适应环境的变化而降低性能甚至发散,所以,需要根据环境的变化动态调整Rk的值。基于新息的自适应卡尔曼滤波方法能够实时估计Rk,而且理论清晰,计算简单。该方法是基于线性的卡尔曼滤波算法推导而来的,所以不能够直接套用其公式,本文针对CKF算法进行了适配修改。

定义新息为

(27)

新息的理论协方差矩阵为:

(28)

利用一段新息样本数据可对新息的协方差矩阵进行近似估计,有:

(29)

式中,L表示样本数据的个数。

而在CKF算法[7]中,新息的协方差矩阵又可表示为:

(30)

所以,结合(29)式和(30)式,Rk的递推估计值为

(31)

2.4 导航滤波器

导航滤波器作为整个矢量跟踪环路的核心,基于EKF算法,为了方便建立滤波器模型,选取系统状态的误差信息作为EKF的状态变量ΔX,定义如下:

(32)

对于低速运动物体,一般常使用Position Velocity(PV)模型[11],对应的状态方程如下所示:

ΔXk+1=FΔXk+Yk

(33)

(34)

式中,F为状态转移矩阵,T为相邻状态间的时间间隔,Yk为过程噪声向量。

(35)

(36)

式中,fi,code为伪码频率,fi,carr为载波频率,c为光速。

于是,量测方程可表示为:

(37)

(38)

3 实验及结果

3.1 实验方法

本文主要针对GPS L1信号进行测试,实验方法是先采用中频采集器将数据收集起来,然后使用基于Matlab平台的软件接收机对数据进行处理。中频采集器的型号为NordNav R30,中频为4.02 MHz,采样速率为20 MHz。设置相关器的积分累加时间为10 ms。信号模拟器型号为HWA-RNSS-7300,使用该信号模拟器作为信号源,生成高低2种功率的GPS数据,验证算法在这2种情况下的静态跟踪误差。

同时,采用相同的数据,将本文算法与基于鉴别器的矢量跟踪算法进行对比测试,以验证二者跟踪性能的差异。其中,码相位鉴别器采用非相干超前减滞后幅值法[12],载波频率鉴别器采用叉积鉴频[12]的方法。

3.2 实验结果

1) 高功率信号测试

使用信号模拟器输出载噪比C/N0为45 dB/Hz的数据,该信号强度模拟卫星信号正常到达地面时的情况。接收机共有8个接收通道,每个通道的信号处理方式相同,不一一赘述,只以通道1的接收情况为例进行说明。

图2和图3分别描述的是2种算法输出的码相位误差和载波频率误差,从图中可以看出,自适应CKF(ACKF)算法输出的码相位误差集中在0.02个码片以内,载频频率误差集中在2 Hz以内,相对于鉴别器的输出,幅度明显减小,说明了跟踪精度有所提高。

图2 载噪比为45 dB/Hz时的码相位误差图3 载噪比为45 dB/Hz时的载波频率误差

图4 载噪比为45 dB/Hz时的位置误差曲线图 图5 载噪比为45 dB/Hz时的速度误差曲线图

表1给出了2种算法输出的各项误差数据的均方根误差(RMSE),它衡量的是各项误差的波动情况,客观地反映了2种算法受噪声影响的程度。

表1 载噪比为45 dB/Hz时各项误差的RMSE

2) 低功率信号测试

使用信号模拟器输出载噪比C/N0为30 dB/Hz的数据,该信号强度相对于正常卫星信号的强度,有较大程度的衰减,模拟卫星信号经过遮挡、多径等因素干扰后的情况。

如图6和图7所示,由于信号功率降低,受噪声影响加剧,2种算法输出的码相位误差和载波频率误差都明显增大,ACKF算法的码相位误差的集中在0.06个chip以内,载波频率误差增加到7 Hz左右。但是,ACKF算法仍然能够保持对信号的跟踪,而且误差比鉴别器小。说明ACKF算法能够根据信号功率的变化,自动地调整量测噪声的协方差阵Rk,维持滤波器对输入信号的稳定处理。

图6 载噪比为30 dB/Hz时的码相位误差 图7 载噪比为30 dB/Hz时的载波频率误差

导航滤波器输出的位置误差和速度误差分别如图8和图9所示,卫星信号的功率降低后,导航解的精度也有所降低,但是,ACKF算法的精度仍然优于鉴别器。

图8 载噪比为30 dB/Hz时的位置误差曲线图 图9 载噪比为30 dB/Hz时的速度误差曲线图

通过对比表1和表2的数据还可以发现,虽然信号功率降低后,两者算法各项误差的RMSE都有所增加,但是,增加幅度并不相同,ACKF相对要小一些。最为明显的是载波频率误差,ACKF算法的载波频率误差只增加了约1.6 Hz,而鉴别器却增加了9.2 Hz,增加的比例分别是2.8倍和3.3倍,说明了载波频率鉴别器在弱信号时的误差较大,ACKF算法更适合在弱信号环境中应用。

表2 载噪比为30 dB/Hz时各项误差的RMSE

4 结 论

本文不仅根据I/Q支路数据的特征建立了合适的滤波器模型,而且采用数值稳定性更好的SVD分解替换原CKF算法中的Cholesky分解,提升了数据处理的稳定度。利用新息协方差实时修正量测噪声的协方差矩阵,自适应地估计量测噪声的方差,使得算法对环境的变化具有鲁棒性。将本文算法与基于鉴别器的矢量跟踪算法进行了对比测试,测试结果表明,无论是高功率信号还是低功率信号,算法改进后输出结果的RMSE都更小,尤其是在低载噪比的情况下,改进效果更加明显,说明该算法更加有利于弱信号的接收,具有一定的应用价值。

猜你喜欢

鉴别器协方差载波
基于多鉴别器生成对抗网络的时间序列生成模型
水声单载波扩频均衡技术研究
基于双鉴别器生成对抗网络的单目深度估计方法
历元间载波相位差分的GPS/BDS精密单点测速算法
高效秩-μ更新自动协方差矩阵自适应演化策略
用于SAR与通信一体化系统的滤波器组多载波波形
低载波比下三电平NPC逆变器同步SVPWM算法
用于检验散斑协方差矩阵估计性能的白化度评价方法
二维随机变量边缘分布函数的教学探索
不确定系统改进的鲁棒协方差交叉融合稳态Kalman预报器