一种自适应在线滤波方法与流程

文档序号:11251396阅读:802来源:国知局
一种自适应在线滤波方法与流程
本发明涉及信号处理
技术领域
,尤其涉及一种自适应在线滤波方法。
背景技术
:随着大数据时代的来临,各种各样的数据时时刻刻都会经由如手机、智能手环、共享单车等各式各样的传感器器件传输到数据中心中,与此同时,人们对数据的准确性和可靠性的要求也越来越高;但是,在实际系统中,错误的测量方式、传感器元件的老化、有缺陷的数据收集方式或外界的干扰等,都会造成测量数据中含有噪音,而任何噪音都有可能对数据的分析和使用造成严重的误差和错误的结果。因此如何实时的处理这些数据,实现在线去噪,提高数据精度具有重要的意义。在实际系统中,常常需要实时在线的处理传感器的测量数据,以达到实时数据传输,比如对行人车辆轨迹测量、土木结构的形变监测等等,所以需要大量离线数据的方法如小波变换滤波,频率域滤波并不适用。其次,传感器测到的很多测量数据都是具有强机动性的,所以,sg滤波方法、bise方法、平滑滤波法、指数平滑滤波法、经典的卡尔曼滤波等传统方法都无法保留数据迅速变化的特性,去噪效果不够精确。最后,由于测量过程中测量噪音的存在,会极大的影响数据精度,人们往往利用经验知识来给定测量噪音方差,这样的方法是不够准确的。在现有的研究成果和技术方法中,还没有能够同时解决上述三类问题的高精度在线去噪方法,导致现有方法的通用性较弱,精度较低。技术实现要素:基于此,本发明的目的在于提供一种自适应在线滤波的方法,利用多个自适应模型实时修正参数,解决了传感器测量数据的高精度在线去噪问题,其精度高,普适性强,具有良好的在线去噪效果。该方法是一种基于自适应当前统计模型的改进的卡尔曼滤波器的方法。首先,为了到达在线去噪的目的,采用了递归卡尔曼滤波;其次,运用自适应当前统计模型来抓取数据的波动特性,同时也去除估计过程中的有色噪音;最后,引入滑动窗口,并且运用一种自适应平滑滤波的误差补偿方法,将测量噪音收敛于真值,并去除测量噪音,从而使结果更加精确。具体实现步骤如下:步骤1:数据波动状态和系统自适应参数初始化;步骤2:建立具有系统自适应参数的自适应当前统计模型,求出符合数据波动特性的状态转移矩阵φ(k+1,k),输入矩阵u(k)以及有色过程噪音方差q(k);其中,系统自适应参数包括机动频率α和变化率方差步骤3:根据自适应当前统计模型和数据初始状态对数据进行一步预测,得出下一时刻数据的状态预测值步骤4:基于自适应当前统计模型和过程噪音计算向前一步估计方差p(k+1|k);步骤5:通过测量数据y(k+1)和状态预测值计算出估计过程中的残差e(k);步骤6:引入滑动窗口;步骤7:通过滑动窗口和残差计算出窗口内残差均值步骤8:通过残差均值和向前一步估计方差求出测量噪音r(k);步骤9:根据向前一步估计方差和测量噪音求出卡尔曼滤波增益k(k+1);步骤10:根据向前一步状态预测值,测量数据和卡尔曼滤波增益更新状态估计值步骤11:通过卡尔曼滤波增益和向前一步估计方差,得到更新后的估计方差p(k+1|k+1);步骤12:利用yule-walker方法,通过状态估计值更新系统自适应参数,进而更新自适应当前统计模型。步骤13:重复步骤2至步骤12,直至所有测量数据全部执行完毕,则结束。在上述技术方案的基础上,本发明还可以做如下改进。进一步地,步骤1中数据波动状态和系统自适应参数初始化包括:设置数据波动状态的初始值设置估计方差初值p(0|0)=p0;设置自适应当前统计模型参数初值:α(0)=α0、设置过程噪音方差初值q(0)=q0;设置测量噪音方差初值r(0)=r0。进一步地,步骤2中建立具有系统自适应参数的自适应当前统计模型,包括:将系统的状态向量设置成:x,分别表示位移、速度和加速度;建立反应数据波动特性的离散时间方程:式中,x(k+1)为k+1时刻数据的状态向量,k为采样时刻;φ(k+1,k)表示状态转移矩阵;x(k)为k时刻数据的状态向量,u(k)表示输入矩阵,为0时刻开始至k时刻数据的加速度均值;w(k)表示过程噪音,其均值为0,方差为q(k);φ(k+1,k)、u(k)和q(k)中含有机动频率α和变化率方差随着系统自适应参数的变化而变化。进一步地,步骤5的计算公式如下:式中,e(k+1)为估计过程中的残差,y(k+1)为测量数据,h(k)表示k时刻的测量矩阵,表示k时刻预测目标在k+1时刻的状态,k为采样时刻,|表示条件操作符。进一步地,步骤7的计算公式如下:其中,表示k+1时刻的残差均值,k为采样时刻,表示k时刻的残差均值,e(k+1)表示估计过程中的残差,n为残差的个数。进一步地,步骤8的计算公式如下:其中,e(k+1)表示估计过程中的残差,表示k+1时刻的残差均值,k为采样时刻;h(k+1)表示k+1时刻的测量矩阵,p(k+1|k)表示向前一步估计方差,|表示条件操作符;h(k+1)表示k+1时刻的测量矩阵,n为残差的个数。进一步地,步骤9的计算公式如下:k(k+1)=p(k+1|k)ht(k+1)[h(k+1)p(k+1|k)ht(k+1)+r]-1式中,k(k+1)为k+1时刻的卡尔曼滤波增益,k为采样时刻,p(k+1|k)表示向前一步估计方差,|表示条件操作符;h(k+1)表示k+1时刻的测量矩阵,ht(k+1)表示k+1时刻的测量矩阵的装置,r为高斯测量白噪音的方差。进一步地,步骤10的计算公式如下:其中,表示状态估计值,y(k+1)为测量数据,表示k时刻预测目标在k+1时刻的状态,k为采样时刻,|表示条件操作符;k(k+1)表示k+1时刻的卡尔曼滤波增益,h(k+1)表示k+1时刻的测量矩阵。进一步地,步骤11的计算公式如下:p(k+1|k+1)=[i-k(k+1)h(k+1)]p(k+1|k)其中,i是3维矩阵,p(k+1|k+1)表示k+1时刻的目标状态估计方差,k为采样时刻,k(k+1)为k+1时刻的卡尔曼滤波增益,p(k+1|k)表示向前一步估计方差,|表示条件操作符,h(k+1)表示k+1时刻的测量矩阵。进一步地,步骤12的计算公式如下:式中,lk(1)为k时刻的状态向量中变化率分量的向前一步相关函数,lk(0)为k时刻状态向量中变化率分量自相关函数;为k时刻的计算中间变量,为k时刻的变化率方差;表示k时刻数据波动加速度估计值,表示k-1时刻数据波动加速度估计值;ln为以e取对数计算,α(k)为k时刻的机动频率,α(k)和为系统自适应参数,k为采样时刻,t为采样间隔。本发明的有益效果是:本发明的自适应在线滤波方法,利用多个自适应模型实时修正参数,解决了传感器测量数据的高精度在线去噪问题,具有以下优点:1.针对传感器数据实时处理的问题,利用卡尔曼递归估计算法实现在线去噪。2.针对数据机动性强的问题,利用自适应当前统计模型来抓取数据的波动特性,与此同时,去除估计过程中的有色噪音。3.针对不同测量数据的测量噪音不同的问题,引入滑动窗口,利用一种自适应平滑滤波的误差补偿方法,将测量方差收敛于真值。4.实验证明本发明的去噪方法精度高,普适性强,具有良好的在线去噪效果。附图说明图1是本发明的自适应在线滤波方法的流程图;图2是实施例1的真实值和测量值的对比图;图3是实施例1的测量值和去噪后的值的对比图;图4是实施例1的真实值和去噪后的值的对比图;图5是实施例1的测量噪音方差的收敛图。具体实施方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例对本发明的自适应在线滤波方法进行进一步详细说明。需要说明的是,在不冲突的情况下,以下各实施例及实施例中的特征可以相互组合。应当理解,此处所描述的具体实施例仅用于解释本发明,并不用于限定本发明。参照图1,本发明一实施例的自适应在线滤波方法,包括以下步骤:步骤s1:数据波动状态和系统自适应参数初始化;步骤s2:建立具有系统自适应参数的自适应当前统计模型,求出符合数据波动特性的状态转移矩阵φ(k+1,k),输入矩阵u(k)以及有色过程噪音方差q(k);其中,系统自适应参数包括机动频率α和变化率方差步骤s3:根据自适应当前统计模型和数据初始状态对数据进行一步预测,得出下一时刻数据的状态预测值步骤s4:基于自适应当前统计模型和过程噪音计算向前一步估计方差p(k+1|k);步骤s5:通过测量数据y(k+1)和状态预测值计算出估计过程中的残差e(k);步骤s6:引入滑动窗口;步骤s7:通过滑动窗口和残差计算出窗口内残差均值步骤s8:通过残差均值和向前一步估计方差求出测量噪音r(k);步骤s9:根据向前一步估计方差和测量噪音求出卡尔曼滤波增益k(k+1);步骤s10:根据向前一步状态预测值,测量数据和卡尔曼滤波增益更新状态估计值步骤s11:通过卡尔曼滤波增益和向前一步估计方差,得到更新后的估计方差p(k+1|k+1);步骤s12:利用yule-walker方法,通过状态估计值更新系统自适应参数,进而更新自适应当前统计模型。步骤s13:重复步骤s2至步骤s12,直至所有测量数据全部执行完毕,则结束。以上各步骤具体如下:步骤s1:设置初值:设置数据波动状态的初始值设置估计方差初值p(0|0)=p0;设置自适应当前统计模型参数初值:α(0)=α0、设置过程噪音方差初值q(0)=q0;设置测量噪音方差初值r(0)=r0。本实例中:x0=0;p0=100*eye(3);α0=1/20;q0=anyvalue;r0=anyvalue。步骤s2:建立自适应当前统计模型:为了更好的抓取数据的波动特性,将系统的状态向量设置成:其中x,分别表示位移、速度和加速度;其次,为了去除估计过程中的有色噪音,设数据的波动特性为非零均值的时间相关随机过程:其中为加速度均值,v(t)为零均值指数相关有色噪音模型,其相关函数为:式中:rv(τ)表示相关函数,表示的方差,α为机动频率,反应数据的波动特性。接着对有色噪音v(t)做白化处理,得到:式中:表示有色噪音v(t)的一阶导数;w(t)为零均值白噪音,方差为综上所述,以周期t采样,可以得到如下的反应数据波动特性的离散时间方程:式中,φ(k+1,k)表示状态转移矩阵,u(k)表示输入矩阵,w(k)表示过程噪音;x(k+1)为k+1时刻数据的状态向量,k为采样时刻;φ(k+1,k)表示状态转移矩阵;x(k)为k时刻数据的状态向量,u(k)表示输入矩阵,为0时刻开始至k时刻数据的波动加速度均值;w(k)表示过程噪音,其均值为0,方差为q(k);φ(k+1,k)、u(k)和q(k)中含有机动频率α和变化率方差随着系统自适应参数的变化而变化。则:其中:步骤s3:根据自适应当前统计模型和系统状态初值计算下一时刻的状态预测值其中,表示k时刻预测数据在k+1时刻的状态,k为采样时刻,|表示条件操作符,φ(k+1,k)表示状态转移矩阵,u(k)表示输入矩阵,为加速度均值;表示数据在k时刻的状态估计值,特别的在k=0时刻为初值步骤s4:基于自适应当前统计模型和过程噪音计算向前一步估计方差p(k+1|k):p(k+1|k)=φ(k+1,k)p(k|k)φt(k+1,k)+q(k)式中,p(k+1|k)表示向前一步估计方差,即k时刻预测数据在k+1时刻的状态协方差,k为采样时刻,|表示条件操作符;φ(k+1,k)表示状态转移矩阵,u(k)表示输入矩阵,p(k|k)表示k时刻数据的状态协方差的估计值,q(k)为过程噪音协方差。步骤s5:通过测量数据y(k+1)和一步预测值计算估计过程中的残差e(k):计算公式如下:式中,e(k+1)为估计过程中的残差,y(k+1)为测量数据,h(k)表示k时刻的测量矩阵,表示k时刻预测数据在k+1时刻的状态,k为采样时刻,|表示条件操作符。步骤s6:引入滑动窗口,需取一个较大的数,这个窗口的大小对结果影响不大,本实验中滑动窗口长度取100。步骤s7:优化残差值,得到残差均值计算公式如下:其中,表示k+1时刻的残差均值,k为采样时刻,表示k时刻的残差均值,e(k+1)表示估计过程中的残差,n为残差的个数。步骤s8:通过残差均值和向前一步方差求出测量噪音r(k+1),计算公式如下:其中,e(k+1)表示估计过程中的残差,表示k+1时刻的残差均值,k为采样时刻;h(k+1)表示k+1时刻的测量矩阵,p(k+1|k)表示向前一步估计方差,|表示条件操作符;h(k+1)表示k+1时刻的测量矩阵,n为残差的个数,残差的个数与样本中数据的数量相等。步骤s9:根据向前一步估计方差和测量噪音求出卡尔曼滤波增益k(k+1),计算公式如下:k(k+1)=p(k+1|k)ht(k+1)[h(k+1)p(k+1|k)ht(k+1)+r]-1式中,k(k+1)为k+1时刻的卡尔曼滤波增益,k为采样时刻,p(k+1|k)表示向前一步估计方差,|表示条件操作符;h(k+1)表示k+1时刻的测量矩阵,ht(k+1)表示k+1时刻的测量矩阵的装置,r为高斯测量白噪音的方差。步骤s10:根据向前一步状态预测值、测量数据和卡尔曼增益更新状态估计值计算公式如下:其中,表示状态估计值,y(k+1)为测量数据,表示k时刻预测数据在k+1时刻的状态,k为采样时刻,|表示条件操作符;k(k+1)表示k+1时刻的卡尔曼滤波增益,h(k+1)表示k+1时刻的测量矩阵。步骤s11:通过卡尔曼增益和向前一步估计方差得到更新后的估计方差,计算公式如下:p(k+1|k+1)=[i-k(k+1)h(k+1)]p(k+1|k)其中,i是3维矩阵,p(k+1|k+1)表示k+1时刻的数据状态估计方差,k为采样时刻,k(k+1)为k+1时刻的卡尔曼滤波增益,p(k+1|k)表示向前一步估计方差,|表示条件操作符,h(k+1)表示k+1时刻的测量矩阵。步骤s12:利用yule-walker方法,通过状态估计值更新自适应当前模型参数,计算公式如下:式中,lk(1)为k时刻的状态向量中变化率分量的向前一步相关函数,lk(0)为k时刻状态向量中变化率分量自相关函数;为k时刻的计算中间变量,为k时刻的变化率方差;表示k时刻数据加速度估计值,表示k-1时刻数据加速度估计值;ln为以e取对数计算,α(k)为k时刻的机动频率,α(k)和为系统自适应参数,t为采样间隔。从而实时更新自适应当前统计模型中的参数。步骤s13:重复步骤s2至步骤s12,直至所有测量数据全部执行完毕,则结束。实施例1:本实施例将自适应在线滤波方法应用于传感器数据的在线去噪,在未知过程噪声及测量噪声的方差的情况下,自适应滤波仍然可以获得很好的去噪效果。实验选用了10000组试验测量数据对本发明进行计算,时间步长为0.01s,数据见表1。表1实验1测量数据和真实数据序号t(s)测试值(mm)真实值(mm)序号t(s)测试值(mm)真实值(mm)1000426342.6200.26040.156120.0100.07300426442.6301.35710.152230.0200.7186-0.0009426542.640-1.60700.155940.0300.7905-0.0058426642.650-0.17950.155850.040-0.0331-0.0139426742.660-0.67360.147360.0500.7105-0.0147426842.670-0.35650.146570.060-0.6498-0.0006…………80.0700.69860.0172999699.950-0.34660.4242…………999799.9600.69600.4145426042.590-0.25930.1731999899.9700.34600.4117426142.600-0.63450.1687999999.980-0.26870.4118426242.6100.00600.16231000099.990-0.29350.4156按上述具体实施方式的步骤进行仿真验证,验证结果见附图2-附图5。附图2是实施例1的真实值和测量值的对比图;附图3是实施例1的测量值和去噪后的值的对比图;附图4是实施例1的真实值和去噪后的值的对比图;附图5是实施例1的测量噪音方差的收敛图。在附图2-附图4中:横坐标表示时间,单位为s(秒);纵坐标表示位移,单位为mm(毫米)。附图2中,中部的一条连续折线表示真实值;附图3中,中部的一条连续折线表示去噪后的值;附图4中,连续折线101表示真实值,连续折线102表示去噪后的值。在附图5中:横坐标表示离散采样点,纵坐标表示测量噪音方差,单位为mm(毫米)。从附图2至附图5可以看出,采用本发明的自适应在线滤波方法可以对数据有效进行实时在线去噪,将测量方差收敛于真值,其精度高,具有良好的在线去噪效果,解决了传感器测量数据的高精度在线去噪问题。此外,该方法具有普适性,可拓展运用于各种具有动力学特性的数据的实时在线去噪,可以广泛的应用于实际系统中具有强机动性和有色噪音的数据预处理中。以上各实施例的自适应在线滤波方法,利用多个自适应模型实时修正参数,解决了传感器测量数据的高精度在线去噪问题,具有以下优点:1.针对传感器数据实时处理的问题,利用卡尔曼递归估计算法实现在线去噪。2.针对数据机动性强的问题,利用自适应当前统计模型来抓取数据的波动特性,与此同时,去除估计过程中的有色噪音。3.针对不同测量数据的测量噪音不同的问题,引入滑动窗口,利用一种自适应平滑滤波的误差补偿方法,将测量方差收敛于真值。4.实验证明本发明的去噪方法精度高,普适性强,具有良好的在线去噪效果。以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1