无线时间同步系统中滤波算法的研究
2019-04-10方安成罗正华
方安成,罗正华
(1.电信科学技术第五研究所,四川 成都 610062; 2.成都大学 信息科学与工程学院,四川 成都 610106)
0 引 言
时间作为服从线性变化的状态变量,而无线信道呈现非线性的系统模型,同时信号在近地传播不考虑电离层误差,那么选取合适的滤波算法对授时数据进行滤波处理将会极大地提高授时信号的稳定性及精度[1].对此,本研究通过选取某种滤波算法来完成对于授时信号的平滑滤波,使授时信号变得平滑且可靠,在深入探讨无线信道的特性及授时信号的特点后,对比了卡尔曼滤波算法和粒子滤波算法,并根据信道和信号特征选择了粒子滤波算法.通过仿真比较2种算法对于接收到的授时信号的优化效果,结果发现,非线性粒子滤波算法在本研究的无线时间同步系统中显明的效果优于卡尔曼滤波算法.
1 卡尔曼滤波算法
本研究选取了GPS接收机的信号作为参考.GPS授时信号由每颗卫星每秒发送1次,样本采集34 min的数据共计2 000个有效样本点,如图1所示.
图1中,横坐标为样本点排序,纵坐标为每个样本点偏离本地时钟的大小,单位为ns.尽管高精度GPS接收机对于卫星授时信号中包含的卫星钟差、电离层噪声、平流层噪声与相对论效应所产生的噪声等已经有了有效处理,但根据图像不难发现,授时信号仍然有较大的抖动和偏差.同时,一台高精度的GPS接收机十分昂贵且对使用环境有着高要求[2],所以对于近地面环境下的高精度无线时间同步,使用滤波算法对数据进行处理是十分必要的.
图1 GPS接收机数据
时间同步系统中,卡尔曼滤波器的滤波方程[3]如下:
1)状态一步预测.
(1)
2)状态估计.
(2)
3)滤波增益.
(3)
4)一步预测误差.
(4)
5)估计均方误差,
(5)
2 粒子滤波算法
由于许多现实问题都呈现非线性特性,即用来描述系统的状态方程并不符合高斯线性模型[5],故需要对系统状态方程进行变换.
2.1 非线性系统状态方程
假设非线性动态系统的状态空间模型[6]为,
xk=fk(xk-1,vk-1)
(6)
zk=hk(xk,uk)
(7)
式中,xk是系统在k时刻的状态,zk是系统在k时刻的观测量,fk是系统的状态转移函数,hk是系统的测量函数,vk和uk分别是系统的过程噪声和观测噪声.
设系统过程是一个m阶马尔科夫过程.根据对非线性滤波问题的理解,滤波系统的目的是利用夹杂有噪声的观测值来递归估计这个非线性系统状态的后验概率密度.序列P(x0:k|z1:k)X0:k={X0,X1,X2,…,Xk},表示系统到k时刻所产生的状态;序列Z1:k={Z1,Z2,Z3,…,Zk},表示系统的观测值序列.
在马尔科夫假设下,后验概率密度函数的更新递推式如下,
P(x0:k|z1:k)
P(zk|x0:k,z1:(k-1))P(xk|x0:k,z1:(k-1))
P(x0:(k-1)|z1:(k-1))
=P(zk|xk)P(xk|x(k-m):(k-1),z1:(k-1))
P(x0:(k-1)|z1:(k-1))
(8)
2.2 重要性采样及重采样
粒子滤波算法中十分关键的问题是如何防止粒子的退化现象[7-8].为了使算法不出现退化现象,本研究使用重采样方法,在每次迭代过程中将权重小的粒子舍弃掉,保留权重较大的粒子且继续利用重要性采样方法使其产生更多的粒子.
2.2.1 重要性采样密度函数.
本研究利用扩展卡尔曼滤波(Extended Kalman filter,EKF)算法对粒子退化问题进行优化.EKF是局部线性化算法,其利用系统方程的一阶泰勒展开,对所有的随机变量都进行高斯假设,将系统状态的后验概率近似为完美的高斯分布.
(9)
在粒子滤波的基础框架内,使用EKF作为重要性采样方法,给每个粒子都分配1个高斯分布,即,
2.2.2 重采样.
重采样的目的是为下次迭代重新选择粒子,将权值小的粒子淘汰,保留并再生权值较大的粒子.该方法可以明显降低滤波中出现的粒子退化现象.重采样后每个粒子的权值均为1/N.
算法步骤如下所述:
2)计算粒子的权值;
4)重采样得到新粒子集合;
5)k=k-1,继续算法迭代.
3 算法仿真
本研究利用MATLAB仿真软件中的Simulink工具生成本地时钟,同时加入信道中的噪声及时钟本身的抖动作为授时信号的传递源,然后由滤波器作为接收授时的一方来验证算法的有效性.未经处理的原仿真数据如图2所示.
图2原仿真数据
3.1 卡尔曼滤波
卡尔曼滤波算法的流程图如图3所示.
由图3可知,设定好滤波初值(一般设定为初始流入滤波器的数据)后,授时数据进入一步状态预测方程,求解滤波增益,然后送入状态更新方程,得出的结果作为对状态值的预测送入之前的一步状态预测,作为后续数据的预测值.经过卡尔曼滤波器后的仿真结果如图4所示.
图3卡尔曼滤波算法流程图
图4卡尔曼滤波仿真结果
图4中的数据随着时间的变化而呈现出无规律的发散状态.根据卡尔曼滤波的原理可知,卡尔曼滤波将整个系统作为一个线性系统,把信号视为在白噪声作用下的线性系统的输入,通过描述系统的状态方程使其联系起来.但是,无线信道中随各种因素变化的噪声不能简单地用线性方程来描述,因而将非线性系统的动态变化的值输入线性方程中求解,就将导致最终滤波结果的发散.
3.2 粒子滤波
粒子滤波算法流程图如图5所示.
由图5可知,各个时刻的观测值在粒子采样后进入权值计算,对于重要的粒子则赋予高权值,其他粒子则赋予较低的权值.当输入新的观测值时,算法根据上个时刻的粒子状态对本时刻的系统状态进行估计.为防止粒子退化,每次迭代都要对其进行重采样,取新的采样值输出状态及提供给下次观测的状态估计.算法如此循环迭代运行.粒子滤波算法仿真结果如图6所示.
图5粒子滤波算法流程图
图6粒子滤波仿真结果
从图6中可知,初始时,存在一些变化量非常巨大的数据点,但经过了粒子滤波的重要性采样和重采样处理后,这些点的权值会随着其后验概率函数的变小而逐渐变小,进而数据点被舍弃.后续的滤波数据由于粒子滤波根据观察值的后验概率分布对其估计计算,会随着处理过程的进行而在直线t1=t2附近波动,整体来说处于时钟调整的理想范围内.
3.3 结果分析
由仿真结果可知,对于无线授时系统来说,系统由于信道中噪声的不可控性而整体处于非线性的变化中,若使用经典的线性滤波算法处理,则会造成滤波结果的发散,那么时间同步也就无从谈起.然而当使用非线性滤波算法——粒子滤波算法对其进行处理时,其非线性的系统方程的设定结合其优秀的后验概率特性和重要性采样思路,对授时数据的平滑和去噪有明显的效果.
4 结 语
本研究经过对线性滤波算法——卡尔曼滤波算法和非线性滤波算法——粒子滤波算法的探讨,结合系统方程,分析了各自的特点,同时根据无线授时系统自身的需求和特点及无线信道的特性,对2种算法进行了仿真比较.结果证明,非线性算法在系统中有非常明显的效果.然而,在实际授时和被授时过程中,接收端时钟的比对和调整、发送端自身时钟的抖动等皆会影响授时的精度.后续的研究会进一步完善授时系统的模型并将全面分析对授时精度产生影响的各种因素.