最新中文第二章卡尔曼滤波器
- 格式:ppt
- 大小:646.00 KB
- 文档页数:20
一片绿油油的草地上有一条曲折的小径,通向一棵大树。
一个要求被提出:从起点沿着小径走到树下。
“很简单。
”A说,于是他丝毫不差地沿着小径走到了树下。
现在,难度被增加了:蒙上眼。
“也不难,我当过特种兵。
” B说,于是他歪歪扭扭地走到了树……….旁。
“唉,好久不练,生疏了。
”“看我的,我有DIY 的GPS!” C说,于是他像个醉汉似地走到了树……….旁。
“唉,这个GPS 软件没做好,漂移太大。
”“我来试试。
” 旁边一人拿过GPS, 蒙上眼,居然沿着小径走到了树下。
“这么厉害!你是什么人?”“卡尔曼! ”“卡尔曼?!你是卡尔曼?”众人大吃一惊。
“我是说这个GPS 卡而慢。
”这段时间研究了一下卡尔曼滤波器,有一些心得,写出来与大家分享。
卡尔曼滤波器与我以前讲过的FIR, IIR 滤波器完全不一样,与其说属于滤波器,不如说是属于最优控制的范畴。
下面的内容涉及相当多的控制理论知识,对于在这方面不足的同学可能有些吃力。
不过不要紧,大家关注结果,会应用就够了, 那些晦涩的理论和推导可以忽略。
我也会用图片让大家更直观的理解卡尔曼滤波器首先回顾一下传统数字滤波器。
对于一个线性时不变系统,施加一个输入 u(t) ,我们可以得到一个输出 y(t) . 如果输入是一个冲击,则输出y(t) 被称作冲击响应,用 h(t) 来表示,是系统的内核。
对于任意u(t), 输出 y(t) 可以通过 u(t) 与冲击响应 h(t) 的卷积得到,这是 FIR 滤波器的基本原理。
我们还可以通过系统微分方程转换为差分方程,或是通过 laplace 传递函数转换到差分方程,最后得到一个递推公式,这种形式的滤波器就是IIR 滤波器。
以前讲过,一个系统可以用时域的微分方程来建立,然后可以用laplace 的传递函数来处理,把解微分方程变为多项式乘法,可以简单的求解。
还有另外一种处理形式就是状态空间,以矩阵形式来处理微分方程或微分方程组,利用矩阵变换求解,类同齐次方程组的矩阵形式。
10.6 卡尔曼滤波器简介本节讨论如何从带噪声的测量数据把有用信号提取出来的问题。
通常,信号的频谱处于有限的频率范围内,而噪声的频谱则散布在很广的频率范围内。
如前所述,为了消除噪声,可以把 FIR滤波器或IIR滤波器设计成合适的频带滤波器,进行频域滤波。
但在许多应用场合,需要进行时域滤波,从带噪声的信号中提取有用信号。
虽然这样的过程其实也算是对信号的滤波,但所依据的理论,即针对随机信号的估计理论,是自成体系的。
人们对随机信号干扰下的有用信号不能“确知”,只能“估计”。
为了“估计”,要事先确定某种准则以评定估计的好坏程度。
最小均方误差是一种常用的比较简单的经典准则。
典型的线性估计器是离散时间维纳滤波器与卡尔曼滤波器。
对于平稳时间序列的最小均方误差估计的第一个明确解是维纳在1942年2月首先给出的。
当时美国的一个战争研究团体发表了一个秘密文件,其中就包括维纳关于滤波问题的研究工作。
这项研究是用于防空火力控制系统的。
维纳滤波器是基于最小均方误差准则的估计器。
为了寻求维纳滤波器的冲激响应,需要求解著名的维纳-霍夫方程。
这种滤波理论所追求的是使均方误差最小的系统最佳冲激响应的明确表达式。
这与卡尔曼滤波(Kalman filtering)是很不相同的。
卡尔曼滤波所追求的则是使均方误差最小的递推算法。
在维纳进行滤波理论研究并导出维纳-霍夫方程的十年以前,在1931年,维纳和霍夫在数学上就已经得到了这个方程的解。
对于维纳-霍夫方程的研究,20世纪五十年代涌现了大量文章,特别是将维纳滤波推广到非平稳过程的文章甚多,但实用结果却很少。
这时正处于卡尔曼滤波问世的前夜。
维纳滤波的困难问题,首先在上世纪五十年代中期确定卫星轨道的问题上遇到了。
1958年斯韦尔林(Swerling)首先提出了处理这个问题的递推算法,并且立刻被承认和应用。
1960年卡尔曼进行了比斯韦尔林更有意义的工作。
他严格地把状态变量的概念引入到最小均方误差估计中来,建立了卡尔曼滤波理论。
3 卡尔曼滤波器的简介3.1 卡尔曼滤波器的概述卡尔曼滤波器[4]由一系列递归数学公式描述,它们提供了一种高效可计算的方法来估计过程的状态,并使估计均方误差最小。
卡尔曼滤波器应用广泛且功能强大,它可以估计信号的过去和当前状态,甚至能估计将来的状态,即使并不知道模型的确切性质。
假设我们要研究的对象是一个房间的温度。
根据你的经验判断,这个房间的温度是恒定的,也就是下一分钟的温度等于现在这一分钟的温度(假设我们用一分钟来做时间单位)。
假设你对你的经验不是100%的相信,可能会有上下偏差几度。
我们把这些偏差看成是高斯白噪声(White Gaussian Noise ),也就是这些偏差跟前后时间是没有关系的而且符合高斯分配(Gaussian Distribution )。
另外,我们在房间里放一个温度计,但是这个温度计也不准确的,测量值会比实际值偏差。
我们也把这些偏差看成是高斯白噪声。
现在对于某一分钟我们有两个有关于该房间的温度值:你根据经验的预测值(系统的预测值)和温度计的值(测量值)。
下面我们要用这两个值结合他们各自的噪声来估算出房间的实际温度值。
假如我们要估算k 时刻的是实际温度值。
首先你要根据1k -时刻的温度值,来预测k 时刻的温度。
因为你相信温度是恒定的,所以你会得到k 时刻的温度预测值是跟1k -时刻一样的,假设是23度,同时该值的高斯噪声的偏差是5度(5是这样得到的:如果1k -时刻估算出的最优温度值的偏差是3,你对自己预测的不确定度是4度,他们平方相加再开方,就是5)。
然后,你从温度计那里得到了k 时刻的温度值,假设是25度,同时该值的偏差是4度。
由于我们用于估算k 时刻的实际温度有两个温度值,分别是23度和25度。
究竟实际温度是多少呢?相信自己还是相信温度计呢?究竟相信谁多一点,我们可以用他们的协方差来判断。
因为252(5242)Kg ∧∧∧∧=+,所以0.78Kg =,我们可以估算出k 时刻的实际温度值是:230.78(2523)24.56+*-=度。
1.绪论1.1 概述在滤波器的发展过程中,早期的维纳滤波器涉及到对不随时间变化的统计特性的处理,即静态处理。
在这种信号处理过程中,有用信号和无用噪声的统计特性可与它们的频率特性联系起来,因此与经典滤波器在概念上还有一定的联系。
由于军事上的需要,维纳滤波器在第二次世界大战期间得到了广泛的应用。
但是,维纳滤波器有如下不足之处:第一,必须利用全部的历史观测数据,存储量和计算量都很大;第二,当获得新的观测数据时,没有合适的递推算法,必须进行重新计算;第三,很难用于非平稳过程的滤波。
为了克服维纳滤波器的上述不足之处,卡尔曼等人在维纳滤波的基础上,与60年代初提出了一种递推滤波方法,称为卡尔曼滤波。
与维纳滤波不同,卡尔曼滤波是对时变统计特性进行处理。
他不是从频域,而是从时域的角度出发来考虑问题。
30多年来。
卡尔曼已在各个领域得到了广泛的应用,包括机器人导航、控制、传感器数据融合甚至军事方面的雷达系统以及导弹追踪等。
近年来更被应用于计算机图象处理,例如头脸识别、图象分割、图象边缘检测等等。
1.2滤波器的发展滤波器最初是指某种具有选频特性的电子网络,一般由线圈、电容器和电阻器等元件组成。
滤波器将使它所容许通过的频率范围(即通带)内的电信号产生较小的衰减,而使它所阻止通过的频率范围(即阻带)内的电信号产生较大衰减。
划分通带和阻带的频率,称为滤波器的截止频率。
按组成电路的元件,滤波器可分为LC、RLC、RC、晶体和陶瓷滤波器等。
我们也可以用机械元件代替电子元件,制成机械式滤波器,或利用物质的铁磁共振原理制成可点电调谐的滤波器。
按容器通过的频率范围,滤波器可分为低通,高通,带阻和带通滤波器等。
具有选频特性的串联或并联谐振回路,是一种常用的滤波器。
收音机或其他差式接收机中的中频放大器,也是一中滤波器。
也是一种滤波器。
各级中频放大器中回路靠放大器和变压器来耦合,形成一定的通带和阻带。
信号在通过中放级时,通带内的成分将被放大,而阻带内的成分将大大衰减,而且对通带内的信号还有放大作用。
随机线性系统卡尔曼滤波器Kalman滤波是R.E.Kalman于1960年首次提出的。
它是一种线性最小方差估计,使用状态空间法在时域内设计滤波器,算法具有递推性,适于对多维随机过程(平稳的、非平稳的)进行估计,具有连续和离散两类算法,便于在计算机上实现。
1 离散系统数学模型随机线性离散系统的一般模型如下:()()()()()()()()()11111++++=++=+k k k H k k k G k k A k v x z w x x式中,为维状态列向量,为维过程噪声列向量;x n w p z 为维测量列向量,为测量噪声列向量。
m v m 我们的目的是要建立一种递推算法,在给定测量序列()(){}k k z z Z ,,0L =的情况下能够得到()k x 的最优估值。
这种算法称为卡尔曼滤波器。
假设1:(){}k w 和(){}k v 是互不相关的高斯白噪声序列,且()[]0w =k E , ()[]0v =k E ()()[]()kj T k Q j k E δ=w w , 0≥Q ()()[]()kj T k R j k E δ=v v , 0>R ()()[]0=j k E T v w ,对于所有的k 和j 假设2:初始状态()0x 是一个高斯随机向量,且已知均值和方差()[]00m x =E()()(){}(){}[]000000P E Var T =−−=m x m x x假设3:初始状态()0x 和噪声序列(){}k w 和(){}k v 是不相关的,即()()[]00=k E T w x , 对所有k ()()[]00=k E Tv x , 对所有k 假设4:系统的矩阵()k A 、()k G 和()k H 是已知的。
在上述假定下,系统状态()k x 是高斯随机向量,(){}k x 则是高斯随机序列,也是马尔柯夫随机序列。
换句话说,一个线性系统,在高斯白噪声的驱动下,在任一时刻,系统的状态是高斯随机向量,由系统状态所构成的随机序列是高斯随机序列,且是高斯—马尔柯夫序列。
卡尔曼滤波器介绍Greg Welch1and Gary Bishop2TR95-041Department of Computer ScienceUniversity of North Carolina at Chapel Hill3Chapel Hill,NC27599-3175翻译:姚旭晨更新日期:2006年7月24日,星期一中文版更新日期:2007年1月8日,星期一摘要1960年,卡尔曼发表了他著名的用递归方法解决离散数据线性滤波问题的论文。
从那以后,得益于数字计算技术的进步,卡尔曼滤波器已成为推广研究和应用的主题,尤其是在自主或协助导航领域。
卡尔曼滤波器由一系列递归数学公式描述。
它们提供了一种高效可计算的方法来估计过程的状态,并使估计均方误差最小。
卡尔曼滤波器应用广泛且功能强大:它可以估计信号的过去和当前状态,甚至能估计将来的状态,即使并不知道模型的确切性质。
这篇文章介绍了离散卡尔曼理论和实用方法,包括卡尔曼滤波器及其衍生:扩展卡尔曼滤波器的描述和讨论,并给出了一个相对简单的带图实例。
1welch@,/˜welch2gb@,/˜gb3北卡罗来纳大学教堂山分校,译者注。
1Welch&Bishop,卡尔曼滤波器介绍21离散卡尔曼滤波器1960年,卡尔曼发表了他著名的用递归方法解决离散数据线性滤波问题的论文[Kalman60]。
从那以后,得益于数字计算技术的进步,卡尔曼滤波器已成为推广研究和应用的主题,尤其是在自主或协助导航领域。
[Maybeck79]的第一章给出了一个非常“友好”的介绍,更全面的讨论可以参考[Sorenson70],后者还包含了一些非常有趣的历史故事。
更广泛的参考包括[Gelb74,Grewal93,Maybeck79,Lewis86,Brown92,Jacobs93]。
被估计的过程信号卡尔曼滤波器用于估计离散时间过程的状态变量x∈ n。
这个离散时间过程由以下离散随机差分方程描述:x k=Ax k−1+Bu k−1+w k−1,(1.1)定义观测变量z∈ m,得到量测方程:z k=Hx k+v k.(1.2)随机信号w k和v k分别表示过程激励噪声1和观测噪声。
第二章 估计的一般方法2.1 概 述2.1.1 估计问题考虑一个动态系统,它的状态是一个时间的函数,以n 维时间随机过程(){}k X 表示,{} ,2,1,0=∈t I k 。
假定我们已经完成一个序列的测量()()()m Z Z Z ,,1,0 ,以一个与()k X 有关的测量系统,顺序地测量完成的。
我们希望以某种方法利用测量值提供()k X 。
我们的假定序列(){}m j j Z ,,0, =是一个离散时间随机过程。
给定测量记录()(){}m Z Z ,,0 ,我们据这些测量值表示()k X 的一个估值,以符号()m k Xˆ表示。
作为一个测量的函数,确定状态的估值为 ()()[]m j j Z q m k X k,,0,ˆ == (2-1) 可以说成:估值问题是以某种方法确定[]*k q 的问题。
在本质上,估值问题的解就是要开发一个适当的算法,采用这种算法,人们能够产生噪声系统状态的近似表达形式。
可以分为三种类型:1. 滤波问题在(2-1)式中,令m k =,将得到滤波问题。
是利用直到k 时刻的测量数据,估计()k X ,将估值记为()k k Xˆ。
可以指出三点: ① 我们希望得到在k 时刻的()k X 值; ② 测量数据采集到k 时刻,没有以后的数据; ③ 直到k 时刻的测量记录被用来估计状态。
2. 平滑问题在(2-1)式中,当m k <时,前述的估值问题就变为平滑问题。
平滑问题区别于滤波问题,在于关于()k X 的信息。
在测量数据的形式中,在时刻k 的测量值,变为可以不采用。
特点:① 在产生状态值上,有延迟; ② 比滤波问题所用数据多。
3. 预测问题在(2-1)式中,当m k >时,估值问题变成预测问题。
预测问题的目的,是在k 时刻得到有关()s k X +,0>s 的信息。
因此,表示了一种预测,预估计()*X 是怎样的值。
综上所述,有:当m k =时,()m k Xˆ叫做()k X 的最优滤波值; 当m k <时,()m k Xˆ叫做()k X 的平滑值; 当m k >时,()m k Xˆ叫做()k X 的预测值。