没有合适的资源?快使用搜索试试~ 我知道了~
卡尔曼滤波入门、简介及其算法MATLAB实现代码.docx
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
4星 · 超过85%的资源 7 下载量 180 浏览量
2023-03-09
19:21:20
上传
评论
收藏 723KB DOCX 举报
温馨提示
试读
16页
。
资源推荐
资源详情
资源评论
卡尔曼滤波入门:
卡尔曼滤波是用来进行数据滤波用的,就是把含噪声的数据进行处理之后得出相对真
值。卡尔曼滤波也可进行系统辨识。
卡尔曼滤波是一种基于统计学理论的算法,可以用来对含噪声数据进行在线处理,对噪
声有特殊要求,也可以通过状态变量的增广形式实现系统辨识。
用上一个状态和当前状态的测量值来估计当前状态,这是因为上一个状态估计此时状态
时会有误差,而测量的当前状态时也有一个测量误差,所以要根据这两个误差重新估计一个
最接近真实状态的值。
信号处理的实际问题,常常是要解决在噪声中提取信号的问题,因此,我们需要寻找一种所
谓有最佳线性过滤特性的滤波器。这种滤波器当信号与噪声同时输入时,在输出端能将信号
尽可能精确地重现出来,而噪声却受到最大抑制。
维纳(Wiener)滤波与卡尔曼(Kalman)滤波就是用来解决这样一类从噪声中提取信号问题的
一种过滤(或滤波)方法。
(1)过滤或滤波 - 从当前的和过去的观察值 x(n),x(n-1),x(n-2),„估计当前的信号值称为过
滤或滤波;
(2)预测或外推 - 从过去的观察值,估计当前的或将来的信号值称为预测或外推; (3)平滑或内
插 - 从过去的观察值,估计过去的信号值称为平滑或内插;
因此,维纳过滤与卡尔曼过滤又常常被称为最佳线性过滤与预测或线性最优估计。这里所谓
“最佳”与“最优”是以最小均方误差为准则的。
维纳过滤与卡尔曼过滤都是解决最佳线性过滤和预测问题,并且都是以均方误差最小为准则
的。因此在平稳条件下,它们所得到的稳态结果是一致的。然而,它们解决的方法有很大区
别。
维纳过滤是根据全部过去的和当前的观察数据来估计信号的当前值,它的解是以均方误差最
小条件下所得到的系统的传递函数 H(z)或单位样本响应 h(n)的形式给出的,因此更常称这种
系统为最佳线性过滤器或滤波器。
而卡尔曼过滤是用前一个估计值和最近一个观察数据 (它不需要全部过去的观察数据 )来估
计信号的当前值,它是用状态方程和递推的方法进行估计的,它的解是以估计值(常常是状
态变量值)形式给出的。因此更常称这种系统为线性最优估计器或滤波器。
维纳滤波器只适用于平稳随机过程,而卡尔曼滤波器却没有这个限制。维纳过滤中信号和噪
声是用相关函数表示的,因此设计维纳滤波器要求已知信号和噪声的相关函数。
卡尔曼过滤中信号和噪声是状态方程和量测方程表示的,因此设计卡尔曼滤波器要求已知状
态方程和量测方程(当然,相关函数与状态方程和量测方程之间会存在一定的关系。卡尔曼
过滤方法看来似乎比维纳过滤方法优越,它用递推法计算,不需要知道全部过去的数据,从
而运用计算机计算方便,而且它可用于平稳和不平稳的随机过程(信号),非时变和时变的系
统。
但从发展历史上来看维纳过滤的思想是 40 年代初提出来的,1949 年正式以书的形式出版。
卡尔曼过滤到 60 年代初才提出来,它是在维纳过滤的基础上发展起来的,虽然如上所述它
比维纳过滤方法有不少优越的地方,但是最佳线性过滤问题是由维纳过滤首先解决的,维纳
过滤的物理概念比较清楚,也可以认为卡尔曼滤波仅仅是对最佳线性过滤问题提出的一种新
的算法。
卡尔曼滤波在数学上是一种统计估算方法,通过处理一系列带有误差的实际量测数据而得到
的物理参数的最佳估算。例如在气象应用上,根据滤波的基本思想,利用前一时刻预报误差
的反馈信息及时修正预报方程,以提高下一时刻预报精度。作温度预报一般只需要连续两个
月的资料即可建立方程和递推关系。
EKF(扩展卡尔曼滤波)仅仅利用了非线性函数 Taylor 展开式的一阶偏导部分(忽略高阶项),
常常导致在状态的后验分布的估计上产生较大的误差,影响滤波算法的性能,从而影响整个
跟踪系统的性能。最近,在自适应滤波领域又出现了新的算法——无味变换Kalman 滤波器
(Unscented Kalman Filter-UKF)。UKF 的思想不同于 EKF 滤波,它通过设计少量的σ点,
由σ点经由非线性函数的传播,计算出随机向量一、二阶统计特性的传播。因此它比 EKF
滤波能更好地逼近状态方程的非线性特性,从而比EKF 滤波具有更高的估计精度。
上面这段文字所体现出的 UKF 与 EFK 的具体区别能否详细的总结一下。
另外还想请教一下,无味卡尔曼的具体算法时什么?以及与扩展卡尔曼以及卡尔曼的区别。
我在 GOOGLE 上搜了很多,基本都时卡尔曼滤波的算法,很少涉及UKF 方面的具体算法,
一些论文网站的部分论文还收费,所以对于UKF 还是非常不明白。另外还想请教一下UKF
的发展历程以及目前国内外研究现状。
EKF 是对非线性系统模型(方程)进行的线性化近似,以利用 KF 算法进行滤波估计。而
UKF 是对状态的概率统计近似,即设计少量的σ点,由σ点经由非线性函数的传播,计算
出随机向量一、二阶统计特性的传播,对于高斯噪声的假设,UKF 能够达到三阶估计精度,
而 EKF 只能达到二阶精度,但其算法仍然是利用 KF 的算法。
现在国内外的文献大都是对 UKF 算法的改进和应用进行论述,但对算法的稳定性等没有系
统的论述。我了解得沈阳自动化所做的这方面的工作很多。
参考资料:The Unscented Kalman Filter for Nonlinear Estimation.pdf
卡尔曼滤波算法简介
最佳线性滤波理论起源于40年代美国科学家Wiener和前苏联科学家Kолмогоров
等人的研究工作,后人统称为维纳滤波理论。从理论上说,维纳滤波的最大缺点是必须用到
无限过去的数据,不适用于实时处理。 为了克服这一缺点,60 年代 Kalman 把状态空间模
型引入滤波理论,并导出了一套递推估计算法,后人称之为卡尔曼滤波理论。
卡尔曼滤波是以最小均方误差为估计的最佳准则,来寻求一套递推估计的算法,其基本思想
是:采用信号与噪声的状态空间模型,利用前一时刻地估计值和现时刻的观测值来更新对状
态变量的估计,求出现时刻的估计值。它适合于实时处理和计算机运算。
卡尔曼滤波简介说明及其算法 MATLAB 实现代码
卡尔曼滤波算法实现代码(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》(线性滤波与预测问题的新方法)。
如果对这编论文有兴趣,可以到这里的地址下载: 。
简单来说,卡尔曼滤波器是一个“optimal recursive data processing algorithm(最优化自
回归数据处理算法)”。对于解决很大部分的问题,他是最优,效率最高甚至是最有用的。他的
广泛应用已经超过 30 年,包括机器人导航,控制,传感器数据融合甚至在军事方面的雷达系统
以及导弹追踪等等。近年来更被应用于计算机图像处理,例如头脸识别,图像分割,图像边缘检
测等等。
2.卡尔曼滤波器的介绍
(Introduction to the Kalman Filter)
为了可以更加容易的理解卡尔曼滤波器,这里会应用形象的描述方法来讲解,而不是像大多数参
考书那样罗列一大堆的数学公式和数学符号。但是,他的 5 条公式是其核心内容。结合现代的计
算机,其实卡尔曼的程序相当的简单,只要你理解了他的那 5 条公式。
在介绍他的 5 条公式之前,先让我们来根据下面的例子一步一步的探索。
假设我们要研究的对象是一个房间的温度。根据你的经验判断,这个房间的温度是恒定的,也就
是下一分钟的温度等于现在这一分钟的温度(假设我们用一分钟来做时间单位)。假设你对你的
经验不是 100%的相信,可能会有上下偏差几度。我们把这些偏差看成是高斯白噪声( White
Gaussian Noise),也就是这些偏差跟前后时间是没有关系的而且符合高斯分配(Gaussian
Distribution)。另外,我们在房间里放一个温度计,但是这个温度计也不准确的,测量值会比
实际值偏差。我们也把这些偏差看成是高斯白噪声。
好了,现在对于某一分钟我们有两个有关于该房间的温度值:你根据经验的预测值(系统的预测
值)和温度计的值(测量值)。下面我们要用这两个值结合他们各自的噪声来估算出房间的实际
温度值。
假如我们要估算 k 时刻的是实际温度值。首先你要根据 k-1 时刻的温度值,来预测 k 时刻的温度。
因为你相信温度是恒定的,所以你会得到 k 时刻的温度预测值是跟 k-1 时刻一样的,假设是 23
度,同时该值的高斯噪声的偏差是 5 度(5 是这样得到的:如果 k-1 时刻估算出的最优温度值的
偏差是 3,你对自己预测的不确定度是 4 度,他们平方相加再开方,就是 5)。然后,你从温度
计那里得到了 k 时刻的温度值,假设是 25 度,同时该值的偏差是 4 度。
由于我们用于估算 k 时刻的实际温度有两个温度值,分别是 23 度和 25 度。究竟实际温度是多少
呢?相信自己还是相信温度计呢?究竟相信谁多一点,我们可以用他们的 covariance 来判断。
因为 Kg^2=5^2/(5^2+4^2),所以 Kg=0.78,我们可以估算出 k 时刻的实际温度值是:23+0.78*
(25-23)=24.56 度。可以看出,因为温度计的 covariance 比较小(比较相信温度计),所以估
算出的最优温度值偏向温度计的值。
现在我们已经得到 k 时刻的最优温度值了,下一步就是要进入 k+1 时刻,进行新的最优估算。到
现在为止,好像还没看到什么自回归的东西出现。对了,在进入 k+1 时刻之前,我们还要算出 k
时刻那个最优值(24.56 度)的偏差。算法如下:((1-Kg)*5^2)^0.5=2.35。这里的 5 就是上面
的 k 时刻你预测的那个 23 度温度值的偏差,得出的 2.35 就是进入 k+1 时刻以后 k 时刻估算出的
最优温度值的偏差(对应于上面的 3)。
就是这样,卡尔曼滤波器就不断的把 covariance 递归,从而估算出最优的温度值。他运行的很
快,而且它只保留了上一时刻的 covariance。上面的 Kg,就是卡尔曼增益(Kalman Gain)。他
可以随不同的时刻而改变他自己的值,是不是很神奇!
下面就要言归正传,讨论真正工程系统上的卡尔曼。
3.
卡尔曼滤波器算法
(The Kalman Filter Algorithm)
在这一部分,我们就来描述源于 Dr Kalman 的卡尔曼滤波器。下面的描述,会涉及一些基本的
概念知识,包括概率(Probability),随即变量(Random Variable),高斯或正态分配(Gaussian
Distribution)还有 State-space Model 等等。但对于卡尔曼滤波器的详细证明,这里不能一一
描述。
首先,我们先要引入一个离散控制过程的系统。该系统可用一个线性随机微分方程(Linear
Stochastic Difference equation)来描述:
X(k)=A X(k-1)+B U(k)+W(k)
再加上系统的测量值:
Z(k)=H X(k)+V(k)
上两式子中,X(k)是 k 时刻的系统状态,U(k)是 k 时刻对系统的控制量。A 和 B 是系统参数,对
于多模型系统,他们为矩阵。Z(k)是 k 时刻的测量值,H 是测量系统的参数,对于多测量系统,
H 为矩阵。W(k)和 V(k)分别表示过程和测量的噪声。他们被假设成高斯白噪声 (White Gaussian
Noise),他们的 covariance 分别是 Q,R(这里我们假设他们不随系统状态变化而变化)。
对于满足上面的条件(线性随机微分系统,过程和测量都是高斯白噪声 ),卡尔曼滤波器是最优的
信息处理器。下面我们来用他们结合他们的 covariances 来估算系统的最优化输出(类似上一
节那个温度的例子)。
首先我们要利用系统的过程模型,来预测下一状态的系统。假设现在的系统状态是 k,根据系统
剩余15页未读,继续阅读
คิดถึง643
- 粉丝: 3895
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页