发明内容
鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种传感器的滤波方法和相应的一种传感器的滤波装置。
本发明实施例公开了一种传感器的滤波方法,所述方法包括:
在采用预设卡尔曼滤波器模块对预设传感器的进行滤波过程中,在进行下一次迭代之前,获取在先多次迭代的多个新息协方差;
采用预设低通滤波器对所述多个新息协方差进行过滤,得到满足预设滤波条件的目标新息协方差;
根据所述目标新息协方差,确定卡尔曼自适应调节因子;所述卡尔曼自适应调节因子为新息协方差的计算值与估计值的比值;
根据所述卡尔曼自适应调节因子,确定下一次迭代的目标卡尔曼滤波增益;
根据所述目标卡尔曼滤波增益,进行下一次迭代得到估计结果。
可选地,所述根据所述卡尔曼自适应调节因子,确定下一次迭代的目标卡尔曼滤波增益,包括:
根据所述卡尔曼自适应调节因子,确定所述预设卡尔曼滤波器模块的下一次迭代的系统噪声方差:
根据调整后的下一次迭代的系统噪声方差,确定下一次迭代的目标卡尔曼滤波增益。
可选地,所述根据所述目标新息协方差,确定卡尔曼自适应调节因子,包括:
按照如下公式确定卡尔曼自适应调节因子α:
其中,R
k为量测噪声协方差矩阵,H
k为量测矩阵,
为状态协方差矩阵。
可选地,所述根据所述卡尔曼自适应调节因子,确定所述预设卡尔曼滤波器模块的下一次迭代的系统噪声方差,包括:
获取上一次迭代估计的系统噪声方差Qk-1;
根据预设关系式
所述卡尔曼自适应调节因子和所述上一次迭代估计的系统噪声方差Q
k1,确定系统噪声方差的估计值
将所述系统噪声方差的估计值
作为所述预设卡尔曼滤波器模块的下一次迭代的系统噪声方差。
本发明实施例还公开了一种传感器的滤波装置,所述装置包括:
新息协方差获取模块,用于在采用预设卡尔曼滤波器模块对预设传感器的进行滤波过程中,在进行下一次迭代之前,获取在先多次迭代的多个新息协方差;
新息协方差过滤模块,用于采用预设低通滤波器对所述多个新息协方差进行过滤,得到满足预设滤波条件的目标新息协方差;
调节因子确定模块,用于根据所述目标新息协方差,确定卡尔曼自适应调节因子;所述卡尔曼自适应调节因子为新息协方差的计算值与估计值的比值;
增益确定模块,用于根据所述卡尔曼自适应调节因子,确定下一次迭代的目标卡尔曼滤波增益;
迭代滤波模块,用于根据所述目标卡尔曼滤波增益,进行下一次迭代得到估计结果。
可选地,所述增益确定模块包括:
系统噪声方差确定子模块,用于根据所述卡尔曼自适应调节因子,确定所述预设卡尔曼滤波器模块的下一次迭代的系统噪声方差:
目标增益确定子模块,用于根据调整后的下一次迭代的系统噪声方差,确定下一次迭代的目标卡尔曼滤波增益。
可选地,所述调节因子确定模块包括:
新息协方差均值计算子模块,用于计算所述目标新息协方差的平均值
调节因子确定子模块,用于按照如下公式确定卡尔曼自适应调节因子α:
其中,R
k为量测噪声协方差矩阵,H
k为量测矩阵,
为状态协方差矩阵。
可选地,所述系统噪声方差确定子模块包括:
在先系统噪声方差获取子模块,用于获取上一次迭代估计的系统噪声方差Qk-1;
系统噪声方差估计值确定子模块,用于根据预设关系式
所述卡尔曼自适应调节因子和所述上一次迭代估计的系统噪声方差Q
k-1,确定系统噪声方差的估计值
目标系统噪声方差确定子模块,用于将所述系统噪声方差的估计值
作为所述预设卡尔曼滤波器模块的下一次迭代的系统噪声方差。
本发明实施例还公开了一种电子设备,包括:处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上所述的一种传感器的滤波方法的步骤。
本发明实施例还公开了一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如上所述的一种传感器的滤波方法的步骤。
本发明实施例包括以下优点:
在本发明实施例中,在采用预设卡尔曼滤波器模块对预设传感器的进行滤波过程中,在进行下一次迭代之前,可以获取在先多次迭代的多个新息协方差;采用预设低通滤波器对多个新息协方差进行过滤,得到满足预设滤波条件的目标新息协方差;根据目标新息协方差,确定卡尔曼自适应调节因子;根据卡尔曼自适应调节因子,确定下一次迭代的目标卡尔曼滤波增益;根据目标卡尔曼滤波增益,进行下一次迭代得到估计结果。本发明实施例中,通过使用低通滤波器来优化卡尔曼自适应调节因子的计算过程,可以节省所需的内存资源和计算资源,更加简洁高效。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
参照图1,示出了本发明实施例提供的一种传感器的滤波方法的步骤流程图,所述方法具体可以包括如下步骤:
步骤101,在采用预设卡尔曼滤波器模块对预设传感器的进行滤波过程中,在进行下一次迭代之前,获取在先多次迭代的多个新息协方差。
在本发明实施例中,在传感器所在的设备中,可以设置有卡尔曼滤波器模块对传感器进行滤波。卡尔曼滤波是一个迭代滤波的过程,每一次迭代都可以根据在先迭代的参数,都得到一个估计结果。
对于用于采集运动量(位置、速度、加速度)等单一信号的传感器,可以使用自适应卡尔曼滤波。自适应卡尔曼滤波是指在滤波过程中,不断根据环境参数修正卡尔曼滤波器的参数,从而保证滤波器的优良性能,使得卡尔曼滤波器不断适应环境。
卡尔曼滤波的系统状态方程为:Xk=Φk-1Xk-1+Wk-1,其中Xk为k时刻状态估计值,Xk-1为k-1时刻状态估计值,Φk-1为k-1时刻到k时刻的状态转移矩阵;Wk-1为系统噪声序列。
卡尔曼滤波器的量测方程为:ZK=HKXk+Vk,其中ZK为量测向量,HK为量测矩阵,Vk为量测噪声序列。
卡尔曼滤波器的更新方程包括:
其中,
为k时刻的状态估计值,
为k-1时刻的状态估计值。
其中
为k时刻的状态协方差矩阵,Qk-1为k-1时刻的系统噪声矩阵,
为k-1时刻的状态协方差矩阵。
其中,K
k为k时刻的卡尔曼滤波增益矩阵;R
k为k时刻量测噪声协方差矩阵。
卡尔曼滤波器的新息是指量测值减去估计值,可以用来衡量卡尔曼滤波器的滤波性能。
其中,d
k为新息,即量测向量Z
K减去估计值
进一步推导得到新息的协方差为
当滤波情况最优时,新息协方差的计算值应与新息协方差的估计值C(k)相等,即
根据该式可以知道状态协方差矩阵
或量测噪声矩阵R
k不准确会导致等号不成立,而量测噪声矩阵R
k可以认为是准确的,因此等号的不成立可以认为是由于状态协方差矩阵
的不准确引起。状态协方差矩阵
对该公式的影响程度可以用卡尔曼自适应调节因子α表示:
其中,trace()表示求解括号内矩阵的迹。卡尔曼自适应调节因子α可以表示新息协方差的计算值应与新息协方差的估计值的比值,直接将α作为自适应因子对
进行调整会影响滤波的平滑和参数的连贯性。
的不准确主要受系统噪声方差矩阵Q的影响,当系统噪声方差矩阵Q先验值不准确或状态模型出现误差时,
会呈现与Q相同趋势的误差变化。故可利用α对系统噪声方差阵Q进行调整,从而间接实现对
的调整,从而对卡尔曼滤波增益进行调整。
步骤102,采用预设低通滤波器对所述多个新息协方差进行过滤,得到满足预设滤波条件的目标新息协方差。
在自适应因子α的计算过程中,新息协方差的计算值可以按照
来计算,通常使用滑窗法来计算,其中m为滑动窗口的长度,利用滑窗法来计算新息协方差的计算值实质上是截取了新近一段长度为N的新息协方差序列,并对其进行算数平均。在实际中滑动窗口通常需要超过一定数值(如100)才比较稳定。卡尔曼滤波器模块通常使用嵌入式C语言来编写,而如果使用滑窗法来计算则会占用较多的内存资源和计算资源。因此在本发明实施例中,可以使用低通滤波器来筛选在先的新息协方差。
低通滤波器占用内存资源和计算资源可以忽略,并且可以设置其截止频率来调节其根据外界变化的灵敏度。低通滤波器的代替使其更加简洁高效,适宜在嵌入式设备中布置。
滤波条件可以针对不同的传感器对应设置,例如对应陀螺仪、里程计等传感器可以分别设置对应的滤波条件。
步骤103,根据所述目标新息协方差,确定卡尔曼自适应调节因子;所述卡尔曼自适应调节因子为新息协方差的计算值与估计值的比值。
在本发明实施例中,所述步骤103可以包括如下子步骤:
子步骤S12,按照如下公式确定卡尔曼自适应调节因子α:
其中,R
k为量测噪声协方差矩阵,H
k为量测矩阵,
为状态协方差矩阵。
步骤104,根据所述卡尔曼自适应调节因子,确定下一次迭代的目标卡尔曼滤波增益。
通过调整卡尔曼自适应调节因子α可以调整系统噪声矩阵Q,根据
可知,调整系统噪声矩阵Q可以调整状态协方差矩阵
根据
可知,调整状态协方差矩阵
可以调整下一次迭代的目标卡尔曼滤波增益K
k。
在本发明实施例中,所述步骤104可以包括如下子步骤:
子步骤S21,根据所述卡尔曼自适应调节因子,确定所述预设卡尔曼滤波器模块的下一次迭代的系统噪声方差。
在本发明实施例中,所述根据所述卡尔曼自适应调节因子,确定所述预设卡尔曼滤波器模块的下一次迭代的系统噪声方差,可以进一步包括:
子步骤S211,获取上一次迭代估计的系统噪声方差Qk-1;
子步骤S212,根据预设关系式
所述卡尔曼自适应调节因子和所述上一次迭代估计的系统噪声方差Q
k-1,确定系统噪声方差的估计值
子步骤S213,将所述系统噪声方差的估计值
作为所述预设卡尔曼滤波器模块的下一次迭代的系统噪声方差。
子步骤S22,根据调整后的下一次迭代的系统噪声方差,确定下一次迭代的目标卡尔曼滤波增益。
步骤105,根据所述目标卡尔曼滤波增益,进行下一次迭代得到估计结果。
每一次迭代都可以使用调整的目标卡尔曼滤波增益进行滤波,从而保证滤波效果。
在本发明实施例中,在采用预设卡尔曼滤波器模块对预设传感器的进行滤波过程中,在进行下一次迭代之前,可以获取在先多次迭代的多个新息协方差;采用预设低通滤波器对多个新息协方差进行过滤,得到满足预设滤波条件的目标新息协方差;根据目标新息协方差,确定卡尔曼自适应调节因子;根据卡尔曼自适应调节因子,确定下一次迭代的目标卡尔曼滤波增益;根据目标卡尔曼滤波增益,进行下一次迭代得到估计结果。本发明实施例中,通过使用低通滤波器来优化卡尔曼自适应调节因子的计算过程,可以节省所需的内存资源和计算资源,更加简洁高效。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图2,示出了本发明实施例提供的一种传感器的滤波装置的结构框图,具体可以包括如下模块:
新息协方差获取模块201,用于在采用预设卡尔曼滤波器模块对预设传感器的进行滤波过程中,在进行下一次迭代之前,获取在先多次迭代的多个新息协方差;
新息协方差过滤模块202,用于采用预设低通滤波器对所述多个新息协方差进行过滤,得到满足预设滤波条件的目标新息协方差;
调节因子确定模块203,用于根据所述目标新息协方差,确定卡尔曼自适应调节因子;所述卡尔曼自适应调节因子为新息协方差的计算值与估计值的比值;
增益确定模块204,用于根据所述卡尔曼自适应调节因子,确定下一次迭代的目标卡尔曼滤波增益;
迭代滤波模块205,用于根据所述目标卡尔曼滤波增益,进行下一次迭代得到估计结果。
在本发明实施例中,所述增益确定模块204可以包括:
系统噪声方差确定子模块,用于根据所述卡尔曼自适应调节因子,确定所述预设卡尔曼滤波器模块的下一次迭代的系统噪声方差:
目标增益确定子模块,用于根据调整后的下一次迭代的系统噪声方差,确定下一次迭代的目标卡尔曼滤波增益。
在本发明实施例中,所述调节因子确定模块203可以包括:
新息协方差均值计算子模块,用于计算所述目标新息协方差的平均值
调节因子确定子模块,用于按照如下公式确定卡尔曼自适应调节因子α:
其中,R
k为量测噪声协方差矩阵,H
k为量测矩阵,
为状态协方差矩阵。
在本发明实施例中,所述系统噪声方差确定子模块可以包括:
在先系统噪声方差获取子模块,用于获取上一次迭代估计的系统噪声方差Qk-1;
系统噪声方差估计值确定子模块,用于根据预设关系式
所述卡尔曼自适应调节因子和所述上一次迭代估计的系统噪声方差Q
k-1,确定系统噪声方差的估计值
目标系统噪声方差确定子模块,用于将所述系统噪声方差的估计值
作为所述预设卡尔曼滤波器模块的下一次迭代的系统噪声方差。
在本发明实施例中,在采用预设卡尔曼滤波器模块对预设传感器的进行滤波过程中,在进行下一次迭代之前,可以获取在先多次迭代的多个新息协方差;采用预设低通滤波器对多个新息协方差进行过滤,得到满足预设滤波条件的目标新息协方差;根据目标新息协方差,确定卡尔曼自适应调节因子;根据卡尔曼自适应调节因子,确定下一次迭代的目标卡尔曼滤波增益;根据目标卡尔曼滤波增益,进行下一次迭代得到估计结果。本发明实施例中,通过使用低通滤波器来优化卡尔曼自适应调节因子的计算过程,可以节省所需的内存资源和计算资源,更加简洁高效。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本发明实施例还提供了一种电子设备,包括:
包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,该计算机程序被处理器执行时实现上述传感器的滤波方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储计算机程序,计算机程序被处理器执行时实现上述传感器的滤波方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种传感器的滤波方法和一种传感器的滤波装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。