当前位置:文档之家› 有色噪声下的卡尔曼滤波

有色噪声下的卡尔曼滤波

有色噪声下的卡尔曼滤波
有色噪声下的卡尔曼滤波

有色噪声下的卡尔曼滤波

摘要

Kalman滤波技术是一种高效率的递归滤波器(自回归滤波器),它是现代信息处理中的重要工具。但是基本的Kalman滤波基本方程中要求系统噪声和量测噪声必须为互不相关的均值为零的白噪声过程, 限制了应用的范围。本文研究了在系统噪声和量测噪声都是有色噪声条件下的Kalman滤波方法, 并推导了全套的滤波方程。最后以GPS多天线三维姿态测量系统为例,根据推导出的动态噪声、观测噪声为有色噪声的线性系统滤波公式,在MATLAB环境下进行了仿真实验。

关键词:有色噪声,卡尔曼滤波,白噪声

ABSTRACT

Kalman filtering technology is a kind of efficient algorithm.on filter (autoregressive filter), it is an important tool in modern information processing. But the basic Kalman filtering basic equations of noise and measurement requirements system for irrelevant noise must be zero of white noise process, limit the scope of application. In this paper we studied system noises and measurement noise are colored noise Kalman filtering method under the conditions, and derived full set of filter equation. Finally for example with GPS multi-antenna 3d pose measurement system, Carried out in MATLAB simulation experiment according to the dynamic noise is deduced, observation noise for colored noise linear system filtering formula.

Key Words:Colored Noise, Kalman Filter, White Noise

一、引言

卡尔曼滤波技术是20世纪60年代在现代控制理论的发展过程中产生的一种最优估计技术。它不要求保存过去的测量数据,而是根据新的数据和前一时刻的诸量估计值,借助系统本身的状态转移方程(即动态方程),按照一套递推公式,即可算出新的诸量的估计值。因此,这种方法十分适合于动态测量,即目标是运动的,如飞机、船舶、人造卫星以及导弹等运载体[1],Kalman滤波最成功的工程应用在于高精度组合导航系统的设计,并发展出了分散滤波理论和联邦滤波理论等[2]。

在基本Kalman滤波方程中,要求系统噪声矢量和量测噪声矢量都是互不相关的零均值的白噪声过程。实际工程系统中,系统噪声和量测噪声往往都不是白噪声;噪声均值即使为零,2种噪声在不同历元的协方差函数也不为零。如果按照理想状态进行处理,必将造成滤波发散,使滤波器无法正常工作。本文在此基础上进一步推导了系统噪声和量测噪声都为有色噪声情况下的滤波方程。

二、卡尔曼滤波

在卡尔曼滤波方法出现以前,采用的是线性最小方差估计,它适用于随机变量是个平稳的随机过程,其确定性部分的变化在观测值采集期间是不变的或变化很慢,所以是一种静态估计。为了提高观测精度和减少噪声的影响,常需要将观测次数K增大,这样就降低了实时性。在工程实践中,经常会碰到待估的随机量(状态变量)是确定性部分变化比较快的非平稳随机过程,这时用静态的线性最小方差估计显然是不合适的。

随着空间技术的发展,60年代初,卡尔曼(Kalman)、布西(Bucy)等人提出了一种递推式滤波方法,即卡尔曼滤波,它可以满足要求的,它不是为了寻求最优解,而是在数字计算机上得出递推的数字解,这是由于下一时刻(K+1)的数值估计是利用了上一时刻的估计值和实时观测值,而上一时刻的估计是建立在上一时刻和上一时刻以前的所有时刻的估计基础上,所以它具有递推性;其次,卡尔曼滤波把被估计的随机量作为系统的状态,用系统状态方程来描述状态的转移过程,各时刻之间的状态相关函数,可用状态方程的转移特性来描述,从而解决了非平稳随机过程估计困难的问题,因此卡尔曼滤波具有动态性[2]。

卡尔曼滤波的对象是用状态方程描述的随机线性系统。它按照估计误差的方差最小的原则,从被观测噪声污染了的观测值中实时估计出系统的各个状态值。卡尔曼滤波的最优准则是无偏最小方差估计,即在滤波过程中,噪声方差必须是收敛的,最终达到接近于无偏的最优状态。

随机线性离散系统的状态方程和量测方程为[3]:

k

k k k k k k k k k V X H Z W X X +=Γ+Φ=----1111, (1)

式中:

k

X :状态方程;

1

-Φk k :状态转移矩阵;

1-k X :前一时刻的状态量;

1

-Γk :系统噪声矩阵;

1-k W :输入信号,是高斯白噪声;

k Z :系统的量测数据;

k H :系统量测值的矩阵;

k V :输出信号的观测噪声,是高斯白噪声;

Kalman 滤波基本方程为[3]:

()

(

)

()1

/1

1

,1.1/1

1,1/1/1/1

1,1/?????--------------=+Φ

Φ=+=-+=Φ=k k k k k k T

k k k k k k k k T k

k k k T k

k k k k k k k k k k k k k k k k P H K I P Q P P R H P H H P K X H Z K X X X X (2)

式中:

1

?-k X 为前一步计算的状态估计;

k

R 为量测噪声方差阵; 1

-k P 为前一时刻估值均方差;

1

-k Q 为系统上一时刻的噪声方差阵;

I 为单位矩阵。

在上面的基本Kalman 滤波方程中,要求系统噪声矢量k W 和量测噪声矢量

k V 都是互不相关的、零均值的白噪声过程[3]。

三、有色噪声下的卡尔曼滤波

1、系统噪声为有色噪声

有色噪声可以看成是由白噪声通过一个动态系统形成的,k W 可以描述成为:

111,---+∏=k k k k k W W ξ (3)

式中:k ξ为零均值的白噪声序列。

在设计滤波器时可以将k W 看成系统状态进行处理,可以得到系统的状态方程和量测方程:

k

a k a k k a

k a k a k a k k a k V X H Z W X X +=Γ+Φ=----1

111, (4)

式中:()

k a

k a k W W ξ=是零均值的白噪声序列,方差为a

k Q 。

2、量测噪声为有色噪声

有色量测噪声k V 可以描述成:

111,---+ψ=k k k k k V V ζ (5)

方差k R ,k ζ与k W 不相关。 由(4)中量测方程可得:

a k a k k k X H Z V -= (6)

由(5)、(6)可得:

[]

k

a k a k a k a

k a k k k a k k a k k k k k W H X H H Z Z ζψψ+Γ+

-Φ=-++++++1,1,11,11 (7)

令: k k k k k Z Z Z ,11++*

ψ-= (8)

a k k k a k k a k k H H H ,1,11+++*ψ-Φ= (9)

k a k a k a k k W H V ζ+Γ=+*1 (10)

可以得到状态方程和量测方程:

***----+=Γ+Φ=k

a k k k a

k a k q k a k k a k V

X H Z W X X 1

111, (11)

方差为 k T a k aT k

a k a k

a k k

R H

Q H

R

+ΓΓ=++*

1

1 (12)

*k V

a k

W 相关,且T a k aT k

a k k H

Q S 1

+Γ=。

根据白噪声条件下一步预测的一般方程[4],有:

()***+++-+Φ=k k k k a k a k k a k X H Z K X X ???1,11 (13)

(

)(

)

1

,11-****+++Γ+Φ

=k

T

k

k

k k a k

T k

k a k

k k R

H

P H S H

P K (14) (

)

T a k

T k T a k k k

k k T a k

a k

a k

T a k

k k a

k

k k S P H K Q P P Γ

-

ΓΓ+Φ

Φ

=+*++++,11,1,11 (15)

由此就可以确定系统噪声有量测噪声都为有色噪声时的Kalman 滤波方程。

四、实验仿真

对于GPS 多天线三维姿态测量系统,当考虑该系统为随机系统时,要采用状态反馈控制,必须对状态进行估计,常用的状态估计器就是卡尔曼滤波器。通过卡尔曼滤波器对三维姿态角(偏航角、俯仰角、横滚角)进行测量估计。

有色噪声可以看作是白色噪声通过具有某个传输函数的网络时的响应,所以,我们就可以对有色噪声建立数学模型。也就是说,不论是连续信号还是离散信号我们总是有办法将有色噪声白色化,从而可以用卡尔曼滤波器对其进行所需的处理。

根据测姿原理,可列出如下系统方程和量测方程:

k

k k k k k k k k k H Z W G ν+Φ=Γ+Φ=Φ----1111, (16)

当1-k W 是有色噪声时,对其建模,有下式:

111,---+=k k k k k S W F W (17)

1-k S 为零均值白噪声。

对系统噪声1-k W 做白色化处理,即将1-k W 也列为状态,得到状态方程和量测方程:

k k k

k k k k k k

k X H Z W X G X ν+'='Γ'+'=----1111, (18)

式中:??

?

???Γ='----1,11

,1

,0

k k k k k k k F G G

??

?

???=Γ'-I k 01

11--='k k S W

[]011--='k k

H H 因为系统噪声中11--='k k S W ,即1-'k W 为零均值白噪声,量测方程中k ν也

为零均值白噪声,所以(18)式符合卡尔曼滤波基本方程。因此,就完成了对原系统有色噪声的白色化处理。对(18)式应用卡尔曼滤波方程,则有:

状态一步预测:

1

1,1/??---'=k k k k k X G X 状态估计:

()

1

/1/???--'-+=k k k k k k k k X H Z K X X

滤波增益:

[][]()

1

1/1/---+'''=k T

k k k k T

k

k k k R H P H H P K

一步预测均方误差:

[][]T

k k k T

k k k k k

k k Q G P G P 1111,11,1/-------Γ'Γ'+''=

估计均方误差:

()()()1/1/--'-=+'-'-=k k k

k T

k k k T

k k k k k

k k P H K I K R K H K I P H K I P

本文仿真以风云一号气象卫星-C 星(FY-1C )为模型。当取初始条件,通过计算机仿真,可以得出结果:

由图(1)可以看出,三维姿态角的仿真曲线均能迅速收敛,达到稳态值,没有出现发散现象。可以说明该卡尔曼滤波模型是成功的,能有效的应用于系统的数值估计。

010203040

5060708090100

-1

-0.5

0t/s

航向角(d e g )

010203040

5060708090100

-2

2t/s

俯仰角(d e g )

010203040

5060708090100

-5

5t/s

横滚角(d e g )

图1 仿真结果

五、小结

本文研究了在系统噪声和量测噪声都是有色噪声条件下的Kalman 滤波方法, 运用状态扩充法和量测扩增法推导了全套的滤波方程, 拓宽了Kalman 滤波器在工程中的应用范围。算法中,由于滤波器维数的增加,且每步滤波必须计算*

k H 、

*k R 和k S ,增加了计算量。

参考文献

[1] 彭丁聪,卡尔曼滤波的基本原理及应用,软件导刊2009年11月第8卷第11期 [2] 宋文尧、张牙,卡尔曼滤波,科学出版社,1991 [3] 王慧南,GPS 导航原理与应用,科学出版社,2003

[4] 秦永元,张洪钺,汪叔华, Kalman 滤波与组合导航原理[M ]. 西安:西北工业大学出版社, 1998.

维纳滤波的应用综述

基于维纳滤波的应用综述 一、维纳滤波概述 维纳(wiener)滤波是用来解决从噪声中提取信号问题的一种过滤(或滤波)的方法。实际上这种线性滤波问题,可以看成是一种估计问题或一种线性估计问题。一个线性系统,如果它的单位样本响应为h (n ),当输入一个随机信号x (n ),且 x (n )=s (n )+v (n ) (1.1) 其中s(n)表示信号,v(n)表示噪声,则输出y(n)为 ()=()()m y n h m x n m -∑ (1.2) 我们希望x (n )通过线性系统h (n )后得到的y (n )尽量接近于s (n ),因此称y (n )为s (n )的估计值,用^ s 表示,即 ^ ()()y n s n = (1.3) 实际上,式(1.2)的卷积形式可以理解为从当前和过去的观察值x (n ),x (n -1),x (n -2)…x (n -m ),来估计信号的当前值^()s n 。因此,用h (n )进行过滤的问题可以看成是一个估计问题。由于现在涉及的信号是随机信号,所以这样一种过滤问题实际上是一种统计估计问题。 维纳滤波器的优点是适应面较广,无论平稳随机过程是连续的还是离散的,是标量的还是向量的,都可应用。对某些问题,还可求出滤波器传递函数的显式解,并进而采用由简单的物理元件组成的网络构成维纳滤波器。维纳滤波器的缺点是,要求得到半无限时间区间内的全部观察数据的条件很难满足,同时它也不能用于噪声为非平稳的随机过程的情况,对于向量情况应用也不方便。因此,维纳滤波在实际问题中应用不多,更多的是基于维纳滤波器发展而来的滤波方式。 二、基于维纳滤波的应用 2.1在飞机盲降着陆系统中的应用 盲降着陆系统(ILS)又译为仪表着陆系统。它的作用是由地面发射的两束无线电信号实现航向道和下滑道指引,建立一条由跑道指向空中的虚拟路径。飞机通过机载接收设备确定自身与该路径的相对位置,使飞机沿正确方向飞向跑道并且平稳下降高度。最终实现安全着陆。在飞机盲降着陆时,飞机以较慢的恒定速度沿着一个无线电波束下降。为了自动对准跑道,通常要为盲目着陆系统提供两个信号。一个是由无线电波束提供的信号,由航向台提供,它与飞机航向滑离跑道方向的大小成正比;另一个信号由飞机通过自身方位的测量来提供。在这两个信号中,前者是飞机位置信号与高频噪声的叠加,作为前面分系统的x 1(n );后者由于飞机下降过程中风向的改变而在信号中引入了低频噪声,作为x 2(n )。为了对飞机的位置信号进行最佳估计,采用互补维纳滤波器去除无用噪声信号,提高信噪比。由此,增强了飞机着陆时的精度,提高了飞机自身的安全。 2.2在图像处理中的应用 在图像处理中,噪声问题是经常会遇到的问题,它使得图像信息受损,降低了信噪比。如何尽可能地滤去噪声,恢复真实的信号,是图像处理中关键的问题。几类简单、常用的滤

卡尔曼滤波算法总结

Kalman_Filter(float Gyro,float Accel) { Angle+=(Gyro - Q_bias) * dt; Pdot[0]=Q_angle - PP[0][1] - PP[1][0]; Pdot[1]= - PP[1][1]; Pdot[2]= - PP[1][1]; Pdot[3]=Q_gyro; PP[0][0] += Pdot[0] * dt; PP[0][1] += Pdot[1] * dt; PP[1][0] += Pdot[2] * dt; PP[1][1] += Pdot[3] * dt; Angle_err = Accel - Angle; PCt_0 = C_0 * PP[0][0]; PCt_1 = C_0 * PP[1][0]; E = R_angle + C_0 * PCt_0; K_0 = PCt_0 / E; K_1 = PCt_1 / E; t_0 = PCt_0; t_1 = C_0 * PP[0][1]; PP[0][0] -= K_0 * t_0; PP[0][1] -= K_0 * t_1; PP[1][0] -= K_1 * t_0; PP[1][1] -= K_1 * t_1; Angle += K_0 * Angle_err; Q_bias += K_1 * Angle_err; Gyro_x = Gyro - Q_bias; } 首先是卡尔曼滤波的5个方程: -=--+(1)先验估计 X k k AX k k Bu k (|1)(1|1)() -=--+(2)协方差矩阵的预测(|1)(1|1)' P k k AP k k A Q

卡尔曼滤波和粒子滤波最直白的解释

卡尔曼滤波本来是控制系统课上学的,当时就没学明白,也蒙混过关了,以为以后也不用再见到它了,可惜没这么容易,后来学计算机视觉和图像处理,发现用它的地方更多了,没办法的时候只好耐心学习和理解了。一直很想把学习的过程记录一下,让大家少走弯路,可惜总也没时间和机会,直到今天。。。 我一直有一个愿望,就是把抽象的理论具体化,用最直白的方式告诉大家--不提一个生涩的词,不写一个数学公式,像讲故事一样先把道理说明白,需要知道细节的同学可以自己去查所有需要知道的一切。因为学习的过程告诉我,最难的其实是最初和这个理论和应用背景亲和的过程--这些理论它究竟是做什么的,又是怎么做到的。可惜我们能看到的关于这些理论的资料大多数都是公式的堆砌并且假定我们明白许多“基本的道理”,其实这些“基本的道理”往往是我们最难想象和超越的。以卡尔曼滤波为例,让我们尝试一种不同的学习方法。 相信所有学习卡尔曼滤波的同学首先接触的都是状态方程和观测方程,学过控制系统的同学可能不陌生,否则,先被那两个看起来好深奥的公式给吓跑了,关键是还不知道他们究竟是干什么的,什么是状态,什么是观测。。。。。。如果再看到后面的一大串递归推导增益,实在很晕很晕,更糟糕的是还没整明白的时候就已经知道卡尔曼滤波其实已经不够使了,需要extended kalmanfilter和particle filter了。。。 其实我们完全不用理会这些公式。先来看看究竟卡尔曼滤波是做什么的,理解了卡尔曼滤波,下面的就顺其自然了。 用一句最简单的话来说,卡尔曼滤波是来帮助我们做测量的,大家一定不明白测量干嘛搞那么复杂?测量长度拿个尺子比一下,测量温度拿温度表测一下不就完了嘛。的确如此,如果你要测量的东西很容易测准确,没有什么随机干扰,那真的不需要劳驾卡尔曼先生。但在有的时候,我们的测量因为随机干扰,无法准确得到,卡尔曼先生就给我们想了个办法,让我们在干扰为高斯分布的情况下,得到的测量均方误差最小,也就是测量值扰动最小,看起来最平滑。 还是举例子最容易明白。我最近养了只小兔子,忍不住拿小兔子做个例子嘻嘻。 每天给兔子拔草,看她香甜地吃啊吃地,就忍不住关心一下她的体重增长情况。那么我们就以小兔子的体重作为研究对象吧。假定我每周做一次观察,我有两个办法可以知道兔子的体重,一个是拿体重计来称:或许你有办法一下子就称准兔子的体重(兽医通常都有这办法),但现在为了体现卡尔曼先生理论的魅力,我们假定你的称实在很糟糕,误差很大,或者兔子太调皮,不能老实呆着,弹簧秤因为小兔子的晃动会产生很大误差。尽管有误差,那也是一个不可失去的渠道来得到兔子的体重。还有一个途径是根据书本上的资料,和兔子的年龄,我可以估计一下我的小兔子应该会多重,我们把用称称出来的叫观察量,用资料估计出来的叫估计值,无论是观察值还是估计值显然都是有误差的,假定误差是高斯分布。现在问题就来了,按照书本上说我的兔子该3公斤重,称出来却只有2.5公斤,我究竟该信哪个呢?如果称足够准,兔子足够乖,卡尔曼先生就没有用武之地了呵呵,再强调一下是我们的现状是兔兔不够乖,称还很烂呵呵。在这样恶劣的情景下,卡尔曼先生告诉我们一个办法,仍然可以估计出八九不离十的兔兔体重,这个办法其实也很直白,就是加权平均,把称称出来的结果也就是观测值和按照书本经验估算出来的结果也就是估计值分别加一个权值,再做平均。当然这两个权值加起来是等于一的。也就是说如果你有0.7分相信称出来的体重,那么就只有0.3分相信书上的估计。说到这里大家一定更着急了,究竟该有几分相信书上的,有几分相信我自己称的呢?都怪我的称不争气,没法让我百分一百信赖它,还要根据书上的数据来做调整。好在卡尔曼先生也体会到了我们的苦恼,告诉我们一个办法来决定这个权值,这个办法其实也很直白,就是根据以往的表现来做决定,这其实听起来挺公平的,你以前表现好,我就相信你多一点,权值也就给的高一点,以前表现不好,我就相信你少一点,权值自然给的低一点。那么什么是表现好表现不好呢,表现好意思就是测量结果稳定,方差很小,

卡尔曼滤波器在PID控制器中的应用

卡尔曼滤波器在PID控制器中的应用 学生姓名:潘培哲 学号: 12013002347 专业:控制工程 指导教师:李鹏 云南大学信息学院

一、引言 传统的倒立摆系统采用单纯的PID 控制模式,这种控制模式虽然可以在一定程度上满足系统的要求,但是具有精度差,响应时间长,稳定性不高等不足之处.造成这种情况的一个原因是控制信号中含有噪声干扰,噪声干扰会在很大程度上影响系统的性能.另外,除了以上提到的外界干扰外,系统内部也存在干扰,主要包括建模时因抽象和简化而引入的结构干扰以及实际系统中因参数变化而引入的参数干扰.因此,为了提高系统的稳定性,使之具有较短的响应时间和控制精度,本文设计了一种基于卡尔曼滤波器的PID 控制系统,通过卡尔曼滤波器对系统的一些噪声进行滤波处理之后,对系统的随机误差进行了比普通PID 更进一步的补偿,获得了更为精确的系统模型,从而使系统的稳定性和精度以及响应时间都得到了有效的提高.本文以直线小车倒立摆为例,研究了卡尔曼滤波器在倒立摆控制系统中的应用. 二、卡尔曼滤波器原理 在现代随机最优控制和随机信号处理技术中,信号和噪声往往是多维非平稳随机过程,因其时变性,功率谱不固定.在1960年卡尔曼提出了卡尔曼滤波理论,该理论采用时域上的递推算法在计算机上进行数据滤波处理. 对于离散域系统:

离散卡尔曼滤波器递推算法为: 图1 卡尔曼滤波器结构图 三、基于卡尔曼滤波器的PID 控制器工作过程 下面便以直线小车倒立摆为被控对象,来进一步研究卡尔曼滤波技术在倒立摆系统中的应用. 3.1 倒立摆系统的数学模型 对直线小车的倒立摆系统的数学建模. 对于倒立摆系统,由于其本身是自不稳定的非线性系统,实验建模存在一定的困难.但经过小心的假设忽略掉一些次要的因素后,倒立摆系统就是一个典型的运动的刚体系统,可以在惯性坐标系内应用经典力学理论建立系统的动力学方程. 对一级倒立摆线性化后得到系统的近似模型如下

卡尔曼滤波的应用步骤

具体步骤分述如下 1、确定系统的模型 根据对系统的充分了解,建立一个真实系统的完整模型,并用状态空间描述之。这里包括选择状态变量,观察量,建立系统的动力方程和观察方程,以及建立误差的统计模型。同时建立地面计算机模拟试验用的“模拟器”。这些“模拟器”实质上是一套计算机程序。它模拟了噪声发生,传感器信息产生 及传递过程以及研究对象的运动等等。模拟器是滤波器模拟分析的工具和鉴别标准。2、建立完整滤波器及模拟试验 根据系统的完整模型建立一个最佳的完整滤波器。它包括了所有的误差源。其维数一般较高。完整滤波器用来反映一个精确工作的最佳滤波器性能,并作为鉴定简化滤波器的标准。同时建立一个地面计算机模拟分析程序工,对完整滤波器进行模拟鉴定。这种程序包括了详细的模拟器,并模拟了完整滤波器方程。模拟目的是鉴定一个精确工作滤波器所能达到的理论精度,当然它应该超过系统所希望的精度,否则就没有必要继续进行设计了。 3、建立简化滤波器及模拟试验 这项工作主要是简化系统。系统的完整模型一般比较复杂,完整滤波器的维数较高。例如,飞机导航方程可达、个变量。因此运算要求较高。实际应用中必须简化模型。先根据工程经验简化模型,设计出相应的简化滤波器,然后作理论上的模型误差分析,但更重要的是通过计算机模拟分析来完成设计和鉴定。这里同样要借助于地面计算机模拟分析程序。程序既包括了多种模拟器,反映了真实系统,又能方便地模拟简化滤波器方程。通过程序鉴定分析简化滤波器,并与完整滤波器结果作比机一边模拟分析,一边删去对总系统影响不大的状态量,最后完成了一个维数较少且能满足性能要求的简化滤波器,这阶段的工作反映了一个不完整滤波器在精确运算时的理论精度,它至少要达到系统所希望的精度。 4、建立确定性滤波器及模拟试验 这项工作是建立一个能在实际工作环境下实时完成系统任务的确定性滤波器。建立过程中要用各种滤波技术,使得滤波器对传感器误差恶化不灵敏,并能符合计算机实时要求、容量要求以及精度限制,而又能满足系统性能的要求。建立确定性滤波器,先是根据工程经验作理论上的设计和分析,而更重要的是利用了地面计算机模拟分析程序。

几种卡尔曼滤波算法理论

自适应卡尔曼滤波 卡尔曼滤波发散的原因 如果卡尔曼滤波是稳定的,随着滤波的推进,卡尔曼滤波估计的精度应该越来越高,滤波误差方差阵也应趋于稳定值或有界值。但在实际应用中,随着量测值数目的增加,由于估计误差的均值和估计误差协方差可能越来越大,使滤波逐渐失去准确估计的作用,这种现象称为卡尔曼滤波发散。 引起滤波器发散的主要原因有两点: (1)描述系统动力学特性的数学模型和噪声估计模型不准确,不能直接真实地反映物理过程,使得模型与获得的量测值不匹配而导致滤波发散。这种由于模型建立过于粗糙或失真所引起的发散称为滤波发散。 (2)由于卡尔曼滤波是递推过程,随着滤波步数的增加,舍入误差将逐渐积累。如果计算机字长不够长,这种积累误差很有可能使估计误差方差阵失去非负定性甚至失去对称性,使滤波增益矩阵逐渐失去合适的加权作用而导致发散。这种由于计算舍入误差所引起的发散称为计算发散。 针对上述卡尔曼滤波发散的原因,目前已经出现了几种有效抑制滤波发散的方法,常用的有衰减记忆滤波、限定记忆滤波、扩充状态滤波、有限下界滤波、平方根滤波、和自适应滤波等。这些方法本质上都是以牺牲滤波器的最优性为代价来抑制滤波发散,也就是说,多数都是次优滤波方法。 自适应滤波 在很多实际系统中,系统过程噪声方差矩阵Q和量测误差方差阵R事先是不知道的,有时甚至连状态转移矩阵 或量测矩阵H也不能确切建立。如果所建立的模型与实际模型不符可能回引起滤波发散。自适应滤波就是这样一种具有抑制滤波发散作用的滤波方法。在滤波过程中,自适应滤波一方面利用量测值修正预测值,同时也对未知的或不确切的系统模型参数和噪声统计参数进行估计修正。自适应滤波的方法很多,包括贝叶斯法、极大似然法、相关法与协方差匹配法,其中最基本也是最重要的是相关法,而相关法可分为输出相关法和新息相关法。

卡尔曼滤波算法(C--C++两种实现代码)

卡尔曼滤波算法实现代码 C++实现代码如下: ============================kalman.h================= =============== // kalman.h: interface for the kalman class. // ////////////////////////////////////////////////////////////////////// #if !defined(AFX_KALMAN_H__ED3D740F_01D2_4616_8B74_8BF57636F2C0__IN CLUDED_) #define AFX_KALMAN_H__ED3D740F_01D2_4616_8B74_8BF57636F2C0__INCLU DED_ #if _MSC_VER > 1000 #pragma once #endif// _MSC_VER > 1000 #include #include "cv.h" class kalman { public: void init_kalman(int x,int xv,int y,int yv); CvKalman* cvkalman; CvMat* state; CvMat* process_noise; CvMat* measurement; const CvMat* prediction; CvPoint2D32f get_predict(float x, float y);

kalman(int x=0,int xv=0,int y=0,int yv=0); //virtual ~kalman(); }; #endif// !defined(AFX_KALMAN_H__ED3D740F_01D2_4616_8B74_8BF57636F2C 0__INCLUDED_) ============================kalman.cpp=============== ================= #include "kalman.h" #include /* tester de printer toutes les valeurs des vecteurs*/ /* tester de changer les matrices du noises */ /* replace state by cvkalman->state_post ??? */ CvRandState rng; const double T = 0.1; kalman::kalman(int x,int xv,int y,int yv) { cvkalman = cvCreateKalman( 4, 4, 0 ); state = cvCreateMat( 4, 1, CV_32FC1 ); process_noise = cvCreateMat( 4, 1, CV_32FC1 ); measurement = cvCreateMat( 4, 1, CV_32FC1 ); int code = -1;

基于维纳滤波的应用综述

基于维纳滤波的应用综述 摘要:介绍了维纳滤波的基本概念,列举了基于维纳滤波的滤波方式在飞机盲降着陆系统、在图像处理、桩基检测、超声物位计、地震数据信号处理和抗多址干扰盲检测中的应用。 一、维纳滤波概述 维纳(wiener)滤波是用来解决从噪声中提取信号问题的一种过滤(或滤波)的方法。实际上这种线性滤波问题,可以看成是一种估计问题或一种线性估计问题。一个线性系统,如果它的单位样本响应为h(n),当输入一个随机信号x(n),且 (1.1) 其中s(n)表示信号,v(n)表示噪声,则输出y(n)为 (1.2) 我们希望x(n)通过线性系统h(n)后得到的.y(n)尽量接近于s(n),因此称y(n)为s(n)的 估计值,用表示,即 (1.3) 如图1.1所示。这个线性系统h(n)称为对于s(n)的一种估计器。 实际上,式(1.2)的卷积形式可以理解为从当前和过去的观察值x(n),x(n一1),x(n一2)…x(n-m),来估计信号的当前值。因此,用h(n)进行过滤的问题可以看成是一个估计问题。由于现在涉及的信号是随机信号,所以这样一种过滤问题实际上是一种统计估计问题[1]。 维纳滤波器的优点是适应面较广,无论平稳随机过程是连续的还是离散的,是标量的还是向量的,都可应用。对某些问题,还可求出滤波器传递函数的显式解,并进而采用由简单的物理元件组成的网络构成维纳滤波器。维纳滤波器的缺

点是,要求得到半无限时间区间内的全部观察数据的条件很难满足,同时它也不能用于噪声为非平稳的随机过程的情况,对于向量情况应用也不方便。因此,维纳滤波在实际问题中应用不多,更多的是基于维纳滤波器发展而来的滤波方式。 二、基于维纳滤波的应用 2.1在飞机盲降着陆系统中的应用 盲降着陆系统(Instrument Landing System.ILS)又译为仪表着陆系统。是目前应用最为广泛的飞机精密进近和着陆引导系统。它的作用是由地面发射的两束无线电信号实现航向道和下滑道指引。建立一条由跑道指向空中的虚拟路径。飞机通过机载接收设备.确定自身与该路径的相对位置,使飞机沿正确方向飞向跑道并且平稳下降高度。最终实现安全着陆。由于是仪表指针引导飞行员按预定下滑线着陆,无需目视。故又称为盲降着陆系统。该系统为飞行员提供相对预定下滑线的水平和垂直面内的修正指示以及到跑道端口的距离指示。 在飞机盲目着陆系统的实际应用中。盲降着陆时,飞机以较慢的恒定速度沿着一个无线电波束下降。为了自动对准跑道,通常要为盲目着陆系统提供两个信号。一个是由无线电波束提供的信号。由航向台提供,它与飞机航向滑离跑道方向的大小成正比;另一个信号由飞机通过自身方位的测量来提供。在这两个信号中,前者是飞机位置信号与高频噪声的叠加。作为前面分系统的x1(n)后者由于飞机下降过程中风向的改变而在信号中引入了低频噪声,作为x2(n)。为了对飞机的位置信号进行最佳估计,采用互补维纳滤波器去除无用噪声信号[2],提高信噪比。由此,增强了飞机着陆时的精度,提高了飞机自身的安全。 2.2在图像处理中的应用 在图像处理中,噪声问题是经常会遇到的问题,它使得图像信息受损,降低了信噪比。如何尽可能地滤去噪声,恢复真实的信号.是图像处理中关键的问题。几类简单、常用的滤波器如维纳滤波器和卡尔曼滤波器等都是假定噪声是高斯的且是加性的,噪声和信号相互独立,这样能得到最小均方误差意义下的最优滤波。对于实际问题中遇到的非加性噪声,也能通过基于维纳滤波器的思想计算,求出适合的滤波器算式[3]。比如在处理乘性噪声时使用的方法就是基于维纳滤波器的思想[4],还有在处理图像运动模糊复原时的频域估计算法中也使用到基于维纳滤波器的一些推广算法[5]。同时,维纳滤波还是一种常见的图像复原方法,其思想是使复原的图像与原图像的均方误差最小原则采复原图像[6]。 2.3在桩基检测中的应用[7] 高层建筑、桥梁、海工结构及特殊建筑结构,都需采用深桩基础,即使普通

卡尔曼滤波算法总结

卡尔曼滤波算法总结-标准化文件发布号:(9556-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII

2015.12.12 void Kalman_Filter(float Gyro,float Accel) { Angle+=(Gyro - Q_bias) * dt; Pdot[0]=Q_angle - PP[0][1] - PP[1][0]; Pdot[1]= - PP[1][1]; Pdot[2]= - PP[1][1]; Pdot[3]=Q_gyro; PP[0][0] += Pdot[0] * dt; PP[0][1] += Pdot[1] * dt; PP[1][0] += Pdot[2] * dt; PP[1][1] += Pdot[3] * dt; Angle_err = Accel - Angle; PCt_0 = C_0 * PP[0][0]; PCt_1 = C_0 * PP[1][0]; E = R_angle + C_0 * PCt_0; K_0 = PCt_0 / E; K_1 = PCt_1 / E; t_0 = PCt_0; t_1 = C_0 * PP[0][1]; PP[0][0] -= K_0 * t_0; PP[0][1] -= K_0 * t_1; PP[1][0] -= K_1 * t_0; PP[1][1] -= K_1 * t_1; Angle += K_0 * Angle_err; Q_bias += K_1 * Angle_err; Gyro_x = Gyro - Q_bias; }

首先是卡尔曼滤波的5个方程: (|1)(1|1)() X k k AX k k Bu k -=--+(1)先验估计 (|1)(1|1)'P k k AP k k A Q -=--+(2)协方差矩阵的预测 ()(|1)'/(|1)')Kg k P k k H HP k k H R =--+(3)计算卡尔曼增益 (|)(|1)()(()(|1))X k k X k k Kg k Z k HX k k =-+--(4)进行修正 5个式子比较抽象,现在直接用实例来说: 一、卡尔曼滤波第一个式子 对于角度来说,我们认为此时的角度可以近似认为是上一时刻的角度值加上上一时刻陀螺仪测得的角加速度值乘以时间,因为d dt θω=?,角度微分等于时间的微分乘以角速度。但是陀螺仪有个静态漂移(而且还是变化的),静态漂移就是静止了没有角速度然后陀螺仪也会输出一个值,这个值肯定是没有意义的,计算时要把它减去。 由此我们得到了当前角度的预测值Angle Angle=Angle+(Gyro - Q_bias) * dt; 其中等号左边Angle 为此时的角度,等号右边Angle 为上一时刻的角度,Gyro 为陀螺仪测的角速度的值,dt 是两次滤波之间的时间间隔,我们的运行周期是4ms 或者6ms 。 同时 Q_bias 也是一个变化的量。 但是就预测来说认为现在的漂移跟上一时刻是相同的,即 Q_bias=Q_bias 将上面两个式子写成矩阵的形式 1_0 1_0 Angle dt Angle dt Q bias Q bia o s Gyr -= + 得到上式,这个式子对应于卡尔曼滤波的第一个式子 (|1)(1|1)() X k k AX k k Bu k -=--+ (|)(|1) P k k I Kg k H P k k =--(())(5)更新协方差阵

卡尔曼滤波简介及其算法实现代码

卡尔曼滤波简介及其算法实现代码 卡尔曼滤波算法实现代码(C,C++分别实现) 卡尔曼滤波器简介 近来发现有些问题很多人都很感兴趣。所以在这里希望能尽自己能力跟大家讨论一些力所能及的算法。现在先讨论一下卡尔曼滤波器,如果时间和能力允许,我还希望能够写写其他的算法,例如遗传算法,傅立叶变换,数字滤波,神经网络,图像处理等等。 因为这里不能写复杂的数学公式,所以也只能形象的描述。希望如果哪位是这方面的专家,欢迎讨论更正。 卡尔曼滤波器– Kalman Filter 1.什么是卡尔曼滤波器 (What is the Kalman Filter?) 在学习卡尔曼滤波器之前,首先看看为什么叫“卡尔曼”。跟其他著名的理论(例如傅立叶变换,泰勒级数等等)一样,卡尔曼也是一个人的名字,而跟他们不同的是,他是个现代人! 卡尔曼全名Rudolf Emil Kalman,匈牙利数学家,1930年出生于匈牙利首都布达佩斯。1953,1954年于麻省理工学院分别获得电机工程学士及硕士学位。1957年于哥伦比亚大学获得博士学位。我们现在要学习的卡尔曼滤波器,正是源于他的博士论文和1960年发表的论文《A New Approach to Linear Filtering and Prediction Problems》(线性滤波与预测问题的新方法)。如果对这编论文有兴趣,可以到这里的地址下载: https://www.doczj.com/doc/1110699367.html,/~welch/media/pdf/Kalman1960.pdf。 简单来说,卡尔曼滤波器是一个“optimal recursive data processing algorithm(最优化自回归数据处理算法)”。对于解决很大部分的问题,他是最优,效率最高甚至是最有用的。他的广泛应用已经超过30年,包括机器人导航,控制,传感器数据融合甚至在军事方面的雷达系统以及导弹追踪等等。近年来更被应用于计算机图像处理,例如头脸识别,图像分割,图像边缘检测等等。 2.卡尔曼滤波器的介绍 (Introduction to the Kalman Filter) 为了可以更加容易的理解卡尔曼滤波器,这里会应用形象的描述方法来讲解,而不是像大多数参考书那样罗列一大堆的数学公式和数学符号。但是,他的5条公式是其核心内容。结合现代的计算机,其实卡尔曼的程序相当的简单,只要你理解了他的那5条公式。 在介绍他的5条公式之前,先让我们来根据下面的例子一步一步的探索。 假设我们要研究的对象是一个房间的温度。根据你的经验判断,这个房间的温度是恒定的,也就

卡尔曼滤波简介及其实现(附C代码)

卡尔曼滤波简介及其算法实现代码(C++/C/MATLAB) 卡尔曼滤波器简介 近来发现有些问题很多人都很感兴趣。所以在这里希望能尽自己能力跟大家讨论一些力所能及的算法。现在先讨论一下卡尔曼滤波器,如果时间和能力允许,我还希望能够写写其他的算法,例如遗传算法,傅立叶变换,数字滤波,神经网络,图像处理等等。 因为这里不能写复杂的数学公式,所以也只能形象的描述。希望如果哪位是这方面的专家,欢迎讨论更正。 卡尔曼滤波器– Kalman Filter 1.什么是卡尔曼滤波器 (What is the Kalman Filter?) 在学习卡尔曼滤波器之前,首先看看为什么叫“卡尔曼”。跟其他著名的理论(例如傅立叶变换,泰勒级数等等)一样,卡尔曼也是一个人的名字,而跟他们不同的是,他是个现代人! 卡尔曼全名Rudolf Emil Kalman,匈牙利数学家,1930年出生于匈牙利首都布达佩斯。1953,1954年于麻省理工学院分别获得电机工程学士及硕士学位。1957年于哥伦比亚大学获得博士学位。我们现在要学习的卡尔曼滤波器,正是源于他的博士论文和1960年发表的论文《A New Approach to Linear Filtering and Prediction Problems》(线性滤波与预测问题的新方法)。如果对这编论文有兴趣,可以到这里的地址下载: https://www.doczj.com/doc/1110699367.html,/~welch/media/pdf/Kalman1960.pdf。 简单来说,卡尔曼滤波器是一个“optimal recursive data processing algorithm(最优化自回归数据处理算法)”。对于解决很大部分的问题,他是最优,效率最高甚至是最有用的。他的广泛应用已经超过30年,包括机器人导航,控制,传感器数据融合甚至在军事方面的雷达系统以及导弹追踪等等。近年来更被应用于计算机图像处理,例如头脸识别,图像分割,图像边缘检测等等。 2.卡尔曼滤波器的介绍 (Introduction to the Kalman Filter) 为了可以更加容易的理解卡尔曼滤波器,这里会应用形象的描述方法来讲解,而不是像大多数参考书那样罗列一大堆的数学公式和数学符号。但是,他的5 条公式是其核心内容。结合现代的计算机,其实卡尔曼的程序相当的简单,只要你理解了他的那5条公式。 在介绍他的5条公式之前,先让我们来根据下面的例子一步一步的探索。

Kalman滤波算法

Kalman 滤波算法 姓名:刘金强 专业:控制理论与控制工程 学号:2007255 ◆实验目的: (1)、掌握klman 滤波实现的原理和方法 (2)、掌握状态向量预测公式的实现过程 (3)、了解Riccati 差分方程实现的过程和新息的基本性质和过程的计算 ◆实验要求: 问题: F=[a1,a2,a3],其中a1=[1.0 0 0]的转置,a2=[0.3 1.0 0]的转置,a3=[0.1 0.2 0.4]的转置,x(0)=[3,-1,2]的转置;C=[b1,b2,b3],其中b1=[0.3 0.5]的转置,b2=[1,0.4]的转置,b3=[0.8 -0.7]的转置;V1(n)=[0 0 n1(n)sin(0.1n)]的转置,V2(n)=[n2(n) n3(n)];n1(n)为均值为零,方差为1的均匀分布白噪声;n2(n),n3(n)为均值为0,方差为0.1的均匀分布白噪声,n1(n),n2(n),n3(n)相互独立,试用卡尔曼滤波器算法估计x^(n). ◆实验原理: 初始条件: 1?(1)x =E{x(1)} K(1,0)=E{[x(1)- (1)x ][x(1)- (1)H x ]},其中(1)x =E{x(1)} 输入观测向量过程: 观测向量序列={y(1),…………y(n)} 已知参数: 状态转移矩阵F(n+1,n) 观测矩阵C(n) 过程噪声向量的相关矩阵1()Q n 观测噪声向量的相关矩阵2()Q n 计算:n=1,2,3,………………. G(n)=F(n+1,n)K(n,n+1) ()H C n 12[()(,1)()()]H C n K n n C n Q n --+ Kalman 滤波器是一种线性的离散时间有限维系统。Kalman 滤波器的估计性能是:它使滤波后的状态估计误差的相关矩阵P(n)的迹最小化。这意味着,kalman 滤波器是状态向量x(n)的线性最小方差估计。 ◆实验结果: ◆程序代码: (1)主程序

扩展卡尔曼滤波和粒子滤波算法比较

扩展卡尔曼滤波和粒子滤波算法比较上海大学2013 , 2014学年秋季学期 研究生课程小论文 课程名称: 随机信号导论课程编号: 07SB17002 论文题目: 扩展卡尔曼滤波和粒子滤波算法比较 研究生姓名: 班孝坤 (33%) 学号: 13720843 研究生姓名: 倪晴燕 (34%) 学号: 13720842 研究生姓名: 许成 (33%) 学号: 13720840 论文评语: 成绩: 任课教师: 刘凯 评阅日期: 扩展卡尔曼滤波和粒子滤波算法比较 第一章绪论 在各种非线性滤波技术中, 扩展卡尔曼滤波是一种最简单的算法, 它将卡尔曼滤波局部线性化,适用于弱非线性、高斯环境下。卡尔曼滤波用一系列确定样本来逼近状态的后验概率密度, 适用于高斯环境下的任何非线性系统。粒子滤波用随机样本来近似状态的后验概率密度, 适用于任何非线性非高斯环境, 但有时选择的重要性分布函数与真实后验有较大差异, 从而导致滤波结果存在较大误差, 而粒子滤

波正好克服了这一不足, 它先通过UKF产生重要性分布, 再运用PF 算法。通过仿真实验, 对其的性能进行比较。 严格说来,所有的系统都是非线性的,其中许多还是强非线性的。因此,非线性系统估计问题广泛存在于飞行器导航、目标跟踪及工业控制等领域中,具有重要的理论意义和广阔的应用前景。 系统的非线性往往成为困扰得到最优估计的重要因素,为此,人们提出了大量次优的近似估计方法。包括EKF,基于UT变换的卡尔曼滤波(UKF),粒子滤波,等等。 第二章扩展卡尔曼滤波介绍 2.1 扩展卡尔曼滤波的理论(EKF) 设非线性状态空间模型为: xfxv,(,)(1)ttt,,11 yhxn,(,)(2)ttt 式中和分别表示在t时刻系统的状态和观测,和 xR,yR,vR,nR,tttt分别表示过程噪声和观测噪声,f和h表示非线性函数。 扩展卡尔曼滤波(Extended kalman filter,以下简称EKF)是传统非线性估计的代表,其基本思想是围绕状态估值对非线性模型进行一阶Taylor展开,然后应用线性系统Kalman滤波公式。 EKF是用泰勒展开式中的一次项来对式(1)和 ( 2 ) 中的非线性函数f和h 进行线性化处理, 即先计算f和h 的雅克比矩阵, 然后再在标准卡尔曼滤波框架下进行递归滤波。和均为零均值的高斯白噪声。 vntt 2.2 扩展卡尔曼滤波的算法 EKF的算法同KF 一样, 也可分为两步预测和更新。如图2.1所示

卡尔曼滤波的基本原理及应用

卡尔曼滤波的基本原理及应用卡尔曼滤波在信号处理与系统控制领域应用广泛,目前,正越来越广泛地应用于计算机应用的各个领域。为了更好地理解卡尔曼滤波的原理与进行滤波算法的设计工作,主要从两方面对卡尔曼滤波进行阐述:基本卡尔曼滤波系统模型、滤波模型的建立以及非线性卡尔曼滤波的线性化。最后,对卡尔曼滤波的应用做了简单介绍。 卡尔曼滤波属于一种软件滤波方法,其基本思想是:以最小均方误差为最佳估计准则,采用信号与噪声的状态空间模型,利用前一时刻的估计值和当前时刻的观测值来更新对状态变量的估计,求出当前时刻的估计值,算法根据建立的系统方程和观测方程对需要处理的信号做出满足最小均方误差的估计。 最初的卡尔曼滤波算法被称为基本卡尔曼滤波算法,适用于解决随机线性离散系统的状态或参数估计问题。卡尔曼滤波器包括两个主要过程:预估与校正。预估过程主要是利用时间更新方程建立对当前状态的先验估计,及时向前推算当前状态变量和误差协方差估计的值,以便为下一个时间状态构造先验估计值;校正过程负责反馈,利用测量更新方程在预估过程的先验估计值及当前测量变量的基础上建立起对当前状态的改进的后验估计。这样的一个过程,我们称之为预估-校正过程,对应的这种估计算法称为预估-校正算法。以下给出离散卡尔曼滤波的时间更新方程和状态更新方程。 时间更新方程: 状态更新方程: 在上面式中,各量说明如下: A:作用在X k-1上的n×n 状态变换矩阵 B:作用在控制向量U k-1上的n×1 输入控制矩阵 H:m×n 观测模型矩阵,它把真实状态空间映射成观测空间 P k-:为n×n 先验估计误差协方差矩阵 P k:为n×n 后验估计误差协方差矩阵 Q:n×n 过程噪声协方差矩阵 R:m×m 过程噪声协方差矩阵 I:n×n 阶单位矩阵K k:n×m 阶矩阵,称为卡尔曼增益或混合因数 随着卡尔曼滤波理论的发展,一些实用卡尔曼滤波技术被提出来,如自适应滤波,次优滤波以及滤波发散抑制技术等逐渐得到广泛应用。其它的滤波理论也迅速发展,如线性离散系统的分解滤波(信息平方根滤波,序列平方根滤波,UD 分解滤波),鲁棒滤波(H∞波)。 非线性样条自适应滤波:这是一类新的非线性自适应滤波器,它由一个线性组合器后跟挠性无记忆功能的。涉及的自适应处理的非线性函数是基于可在学习

维纳滤波与卡尔曼滤波

第二章 维纳滤波与卡尔曼滤波 § 引言 信号处理的实际问题,常常是要解决在噪声中提取信号的问题,因此,我们需要寻找一种所谓有最佳线性过滤特性的滤波器。这种滤波器当信号与噪声同时输入时,在输出端能将信号尽可能精确地重现出来,而噪声却受到最大抑制。 维纳(Wiener)滤波与卡尔曼(Kalman)滤波就是用来解决这样一类从噪声中提取信号问题的一种过滤(或滤波)方法。 实际上这种线性滤波问题,可以看成是一种估计问题或一种线性估计问题。 一个线性系统,如果它的单位样本响应为h (n ),当输入一个随机信号x (n ),且 )()()(n n s n x υ+= 其中s (n )表示信号,)(n υ表示噪声,则输出y (n )为 ∑-=m m n x m h n y )()()( 我们希望x (n )通过线性系统h (n )后得到的y (n )尽量接近于s (n ),因此称y (n )为s (n )的估计值,用 )(?n s 表示,即 )(?)(n s n y = 图 维纳滤波器的输入—输出关系 如图所示。这个线性系统)(?h 称为对于s (n )的一种估计器。 实际上,式的卷积形式可以理解为从当前和过去的观察值x (n ),x (n -1),x (n -2)…x (n -m ),… 来估计信号的当前值)(?n s 。因此,用)(?h 进行过滤的问题可以看成是一个估计问题。由于我们现在涉及的信号是随机信号,所以这样一种过滤问题实际上是一种统计估计问题。 一般,从当前的和过去的观察值x (n ),x (n -1),x (n -2),…估计当前的信号值)(?)(n s n y =称为过滤或滤波;从过去的观察值,估计当前的或将来的信号值)0)((?)(≥+=N N n s n y 称为预测或外推;从过去的观察值,估计过去的信号值)1)((?)(>-=N N n s n y 称为平滑或内插。因此维纳过滤与卡尔曼过滤又常常被称为最佳线性过滤与预测或线性最优估计。这里所谓“最佳”与“最优”是以最小均方误差为准则的。本章仅讨论过滤与预测问题。 如果我们以s s ?与分别表示信号的真值与估计值,而用e (n )表示它们之间的误差,即 )(?)()(n s n s n e -= 显然,e (n )可能是正的,也可能是负的,并且它是一个随机变量。因此,用它的均方值来表达误差是合理的,所谓均方误差最小即它的平方的统计平均值最小:

粒子滤波的基本原理笔记

粒子滤波的基本原理 粒子滤波算法广泛应用在视觉跟踪领域、通信与信号处理领域、机器人、图像处理、金融经济、以及目标定位、导航、跟踪领域,其本质是利用当前和过去的观测量来估计未知量的当前值。在粒子滤波算法中使用了大量随机样本,采用蒙特卡洛仿真来完成递推贝叶斯滤波过程,其核心是使用一组具有相应权值的随机样本(粒子)来表示状态的后验分布。该方法的基本思路是选取一个重要性概率密度函数并从中进行随机抽样,得到一些带有相应权值的随机样本后,在状态观测的基础上调节权值的大小和粒子的位置,再使用这些样本来逼近状态后验分布,最后通过这组样本的加权求和作为状态的估计值。粒子滤波不受系统模型的线性和高斯假设约束,采用样本形式而不是函数形式对状态概率密度进行描述,使其不需要对状态变量的概率分布作过多的约束,适用于任意非线性非高斯动态系统,是目前最适合于非线 性、非高斯系统状态的滤波方法【Arulampalam M S, Maskell S, Gordon N, et al. A tutorial on particle filters for online nonlinear/non-Gaussian Bayesian tracking[J]. IEEE Transactions on Signal Processing, 2002, 50(2):174-188.】 1 动态系统的状态空间模型 状态空间模型包括系统状态方程和观测方程,其通用的表示方法分别为【梁军. 粒子滤波算法及其应用研究[D]. 哈尔滨工业大学, 2009.】【黄小平, 王岩, 廖鹏程. 粒子滤波原理及应用——MATLAB 仿真[M].电子工业出版社. 2017】 ()1,k k k f -=X X W (1) (),k k k h =Z X V (2) 其中()f ?和()h ?为已知函数, k W 和k V 是概率密度已知的随机变量,k X 代表k 时刻的状态量,k Z 代表k 时刻的观测量,k W 和k V 是相互独立的。 关于系统的状态方程和观测方程,通常也可用()1k k p -X X 表示状态转移模型;()k k p Z X 表示观测似然模型;()0p X 表示初始状态的先验分布;()0:1:k k p X Z 表示系统的后验密度; ()1:k k p X Z 表示边沿后验密度,或称为后验滤波密度。卡尔曼滤波以及粒子滤波算法的本质即是利用观测序列1:k Z 对当前状态进行优化,从而得到k 时刻的后验滤波密度,进而得到k 时刻的状态值。【Merwe R V D, Doucet A, Freitas N D, et al. The unscented particle filter[C]// International Conference on Neural Information Processing Systems. MIT Press, 2000:563-569.】

卡尔曼(kalman)滤波算法特点及其应用

Kalman滤波算法的特点: (1)由于Kalman滤波算法将被估计的信号看作在白噪声作用下一个随机线性系统的输出,并且其输入/输出关系是由状态方程和输出方程在时间域内给出的,因此这种滤波方法不仅适用于平稳随机过程的滤波,而且特别适用于非平稳或平稳马尔可夫序列或高斯-马尔可夫序列的滤波,所以其应用范围是十分广泛的。 (2)Kalman滤波算法是一种时间域滤波方法,采用状态空间描述系统。系统的过程噪声和量测噪声并不是需要滤除的对象,它们的统计特征正是估计过程中需要利用的信息,而被估计量和观测量在不同时刻的一、二阶矩却是不必要知道的。 (3)由于Kalman滤波的基本方程是时间域内的递推形式,其计算过程是一个不断地“预测-修正”的过程,在求解时不要求存储大量数据,并且一旦观测到了新的数据,随即可以算的新的滤波值,因此这种滤波方法非常适合于实时处理、计算机实现。 (4)由于滤波器的增益矩阵与观测无关,因此它可预先离线算出,从而可以减少实时在线计算量。在求滤波器增益矩阵时,要求一个矩阵的逆,它的阶数只取决于观测方程的维数,而该维数通常很小,这样,求逆运算是比较方便的。另外,在求解滤波器增益的过程中,随时可以算出滤波器的精度指标P,其对角线上的元素就是滤波误差向量各分量的方差。 Kalman滤波的应用领域 一般地,只要跟时间序列和高斯白噪声有关或者能建立类似的模型的系统,都可以利用Kalman滤波来处理噪声问题,都可以用其来预测、滤波。Kalman滤波主要应用领域有以下几个方面。 (1)导航制导、目标定位和跟踪领域。 (2)通信与信号处理、数字图像处理、语音信号处理。 (3)天气预报、地震预报。 (4)地质勘探、矿物开采。 (5)故障诊断、检测。 (6)证券股票市场预测。 具体事例: (1)Kalman滤波在温度测量中的应用; (2)Kalman滤波在自由落体运动目标跟踪中的应用; (3)Kalman滤波在船舶GPS导航定位系统中的应用; (4)Kalman滤波在石油地震勘探中的应用; (5)Kalman滤波在视频图像目标跟踪中的应用;

相关主题
文本预览
相关文档 最新文档