小波变换

申明:小波变换完美通俗解读,是《小波变换和motion信号处理》系列中的第一篇。

并非本站原创,经多方查找,原创作者可能为windstorm,本文深入浅出的讲解了小波变换,是学习小波的过程中,必看之作!

《小波变换和motion信号处理》系列共包含三篇:

第一篇:基础普及(小波变换完美通俗解读)

第二篇:深入小波

第三篇:小波应用

限于篇幅关系,这里我们只介绍第一部分。以下是正文:

记得我还在大四的时候,在申请出国和保研中犹豫了好一阵,骨子里的保守最后让我选择了先保研。当然后来也退学了,不过这是后话。当时保研就要找老板,实验室,自己运气还不错,进了一个在本校很牛逼的实验室干活路。我们实验室主要是搞图像的,实力在全国也是很强的,进去后和师兄师姐聊,大家都在搞什么小波变换,H264之类的。当时的我心思都不在这方面,尽搞什么操作系统移植,ARM+FPGA这些东西了。对小波变换的认识也就停留在神秘的“图像视频压缩算法之王”上面。

后来我才发现,在别的很广泛的领域中,小波也逐渐开始流行。比如话说很早以前,我们接触的信号频域处理基本都是傅立叶和拉普拉斯的天下。但这些年,小波在信号分析中的逐渐兴盛和普及。这让人不得不感到好奇,是什么特性让它在图象压缩,信号处理这些关键应用中更得到信赖呢?说实话,我还在国内的时候,就开始好奇这个问题了,于是放狗搜,放毒搜,找遍了中文讲小波变换的科普文章,发现没几个讲得清楚的,当时好奇心没那么重,也不是搞这个研究的,懒得找英文大部头论文了,于是作罢。后来来了这边,有些项目要用信号处理,不得已接触到一些小波变换的东西,才开始硬着头皮看。看了一些材料,听了一些课,才发现,还是那个老生常谈的论调:国外的技术资料和国内真TNND不是一个档次的。同样的事情,别人说得很清楚,连我这种并不聪明的人也看得懂; 国内的材料则绕来绕去讲得一塌糊涂,除了少数天才没几个人能在短时间掌握的。

牢骚就不继续发挥了。在这个系列文章里,我希望能简单介绍一下小波变换,它和傅立叶变换的比较,以及它在移动平台做motion detection的应用。如果不做特殊说明,均以离散小波为例子。考虑到我以前看中文资料的痛苦程度,我会尽量用简单,但是直观的方式去介绍。有些必要的公式是不能少的,但我尽量少用公式,多用图。另外,我不是一个好的翻译者,所以对于某些实在翻译不清楚的术语,我就会直接用英语。我并不claim我会把整个小波变换讲清楚,这是不可能的事,我只能尽力去围绕要点展开,比如小波变换相对傅立叶变换的好处,这些好处的原因是什么,小波变换的几个根本性质是什么,背后的推导是什么。我希望达到的目的就是一个小波变换的初学者在看完这个系列之后,就能用matlab或者别的工具对信号做小波变换的基本分析并且知道这个分析大概是怎么回事。

最后说明,我不是研究信号处理的专业人士,所以文中必有疏漏或者错误,如发现还请不吝赐教。

要讲小波变换,我们必须了解傅立叶变换。要了解傅立叶变换,我们先要弄清楚什么是”变换“。很多处理,不管是压缩也好,滤波也好,图形处理也好,本质都是变换。变换的是什么东西呢?是基,也就是basis。如果你暂时有些遗忘了basis的定义,那么简单说,在线性代数里,basis是指空间里一系列线性独立的向量,而这个空间里的任何其他向量,都可以由这些个向量的线性组合来表示。那basis在变换里面啥用呢?比如说吧,傅立叶展开的本质,就是把一个空间中的信号用该空间的某个basis的线性组合表示出来,要这样表示的原因,是因为傅立叶变换的本质,是。小波变换自然也不例外的和basis有关了。再比如你用Photoshop去处理图像,里面的图像拉伸,反转,等等一系列操作,都是和basis的改变有关。

既然这些变换都是在搞基,那我们自然就容易想到,这个basis的选取非常重要,因为basis的特点决定了具体的计算过程。一个空间中可能有很多种形式的basis,什么样的basis比较好,很大程度上取决于这个basis服务于什么应用。比如如果我们希望选取有利于压缩的话,那么就希望这个basis能用其中很少的向量来最大程度地表示信号,这样即使把别的向量给砍了,信号也不会损失很多。而如果是图形处理中常见的线性变换,最省计算量的完美basis就是eigenvector basis了,因为此时变换矩阵T对它们的作用等同于对角矩阵( Tv_n=av_n,a是eigenvalue)。总的来说,抛开具体的应用不谈,所有的basis,我们都希望它们有一个共同的特点,那就是,容易计算,用最简单的方式呈现最多的信号特性。

好,现在我们对变换有了基本的认识,知道他们其实就是在搞基。当然,搞基也是分形式的,不同的变换,搞基的妙处各有不同。接下来先看看,傅立叶变换是在干嘛。

傅立叶级数最早是Joseph Fourier 这个人提出的,他发现,这个basis不仅仅存在与vector space,还存在于function space。这个function space本质上还是一个linear vector space,可以是有限的,可以是无限的,只不过在这个空间里,vector就是function了,而对应的标量就是实数或者复数。在vector space里,你有vector v可以写成vector basis的线性组合,那在function space里,functionf(x)也可以写成对应function basis的线性组合,也有norm。你的vector basis可以是正交的,我的function basis也可以是正交的(比如sin(t)和sin(2t))。唯一不同的是,我的function basis是无穷尽的,因为我的function space的维度是无穷的。好,具体来说,那就是现在我们有一个函数,f(x)。我们希望将它写成一些cos函数和一些sin函数的形式,像这样

again,这是一个无限循环的函数。其中的1,cosx, sinx, cos2x…..这些,就是傅立叶级数。傅立叶级数应用如此广泛的主要原因之一,就是它们这帮子function basis是正交的,这就是有趣的地方了。为什么function basis正交如此重要呢?我们说两个vector正交,那就是他俩的内积为0。那对于function basis呢?function basis怎么求内积呢?

现在先复习一下vector正交的定义。我们说两个vector v,w如果正交的话,应符合:

那什么是function正交呢?假设我们有两个函数f(x)和g(x),那是什么?我们遵循vector的思路去想,两个vector求内积,就是把他们相同位置上对应的点的乘积做一个累加。那移过来,就是对每一个x点,对应的f和g做乘积,再累加。不过问题是,f和g都是无限函数阿,x又是一个连续的值。怎么办呢?向量是离散的,所以累加,函数是连续的,那就是…….积分!

我们知道函数内积是这样算的了,自然也就容易证明,按照这个形式去写的傅立叶展开,这些级数确实都是两两正交的。证明过程这里就不展开了。好,下一个问题就是,为什么它们是正交basis如此重要呢?这就牵涉到系数的求解了。我们研究了函数f,研究了级数,一堆三角函数和常数1,那系数呢?a0,a1,a2这些系数该怎么确定呢?好,比如我这里准备求a1了。我现在知道什么?信号f(x)是已知的,傅立叶级数是已知的,我们怎么求a1呢?很简单,把方程两端的所有部分都求和cosx的内积,即:

然后我们发现,因为正交的性质,右边所有非a1项全部消失了,因为他们和cosx的内积都是0!所有就简化为

这样,a1就求解出来了。到这里,你就看出正交的奇妙性了吧:)

好,现在我们知道,傅立叶变换就是用一系列三角波来表示信号方程的展开,这个信号可以是连续的,可以是离散的。傅立叶所用的function basis是专门挑选的,是正交的,是利于计算coefficients的。但千万别误解为展开变换所用的basis都是正交的,这完全取决于具体的使用需求,比如泰勒展开的basis就只是简单的非正交多项式。

有了傅立叶变换的基础,接下来,我们就看看什么是小波变换。首先来说说什么是小波。所谓波,就是在时间域或者空间域的震荡方程,比如正弦波,就是一种波。什么是波分析?针对波的分析拉(囧)。并不是说小波分析才属于波分析,傅立叶分析也是波分析,因为正弦波也是一种波嘛。那什么是小波呢?这个“小 ”,是针对傅立叶波而言的。傅立叶所用的波是什么?正弦波,这玩意以有着无穷的能量,同样的幅度在整个无穷大区间里面振荡,像下面这样:

那小波是什么呢?是一种能量在时域非常集中的波。它的能量是有限的,而且集中在某一点附近。比如下面这样:

这种小波有什么好处呢?它对于分析瞬时时变信号非常有用。它有效的从信号中提取信息,通过伸缩和平移等运算功能对函数或信号进行多尺度细化分析,解决了傅立叶变换不能解决的许多困难问题。恩,以上就是通常情况下你能在国内网站上搜到的小波变换文章告诉你的。但为什么呢?这是我希望在这个系列文章中讲清楚的。不过在这篇文章里,我先点到为止,把小波变换的重要特性以及优点cover了,在下一篇文章中再具体推导这些特性。

小波变换的本质和傅立叶变换类似,也是用精心挑选的basis来表示信号方程。每个小波变换都会有一个mother wavelet,我们称之为母小波,同时还有一个scaling function,中文是尺度函数,也被成为父小波。任何小波变换的basis函数,其实就是对这个母小波和父小波缩放和平移后的集合。下面这附图就是某种小波的示意图:

从这里看出,这里的缩放倍数都是2的级数,平移的大小和当前其缩放的程度有关。这样的好处是,小波的basis函数既有高频又有低频,同时还覆盖了时域。对于这点,我们会在之后详细阐述。

小波展开的形式通常都是这样(注意,这个只是近似表达,严谨的展开形式请参考第二篇):

其中的

就是小波级数,这些级数的组合就形成了小波变换中的基basis。和傅立叶级数有一点不同的是,小波级数通常是orthonormal basis,也就是说,它们不仅两两正交,还归一化了。小波级数通常有很多种,但是都符合下面这些特性:

1. 小波变换对不管是一维还是高维的大部分信号都能cover很好。这个和傅立叶级数有很大区别。后者最擅长的是把一维的,类三角波连续变量函数信号映射到一维系数序列上,但对于突变信号或任何高维的非三角波信号则几乎无能为力。

2. 围绕小波级数的展开能够在时域和频域上同时定位信号,也就是说,信号的大部分能量都能由非常少的展开系数,比如a_{j,k},决定。这个特性是得益于小波变换是二维变换。我们从两者展开的表达式就可以看出来,傅立叶级数是

,而小波级数是

3.从信号算出展开系数a需要很方便。普遍情况下,小波变换的复杂度是O(Nlog(N)),和FFT相当。有不少很快的变换甚至可以达到O(N),也就是说,计算复杂度和信号长度是线性的关系。小波变换的等式定义,可以没有积分,没有微分,仅仅是乘法和加法即可以做到,和现代计算机的计算指令完全match。

可能看到这里,你会有点晕了。这些特性是怎么来的?为什么需要有这些特性?具体到实践中,它们到底是怎么给小波变换带来比别人更强的好处的?计算简单这个可能好理解,因为前面我们已经讲过正交特性了。那么二维变换呢?频域和时域定位是如何进行的呢?恩,我完全理解你的感受,因为当初我看别的文章,也是有这些问题,就是看不到答案。要说想完全理解小波变换的这些本质,需要详细的讲解,所以我就把它放到下一篇了。

接下来,上几张图,我们以一些基本的信号处理来呈现小波变换比傅立叶变换好的地方,我保证,你看了这个比较之后,大概能隐约感受到小波变换的强大,并对背后的原理充满期待:)

假设我们现在有这么一个信号:

看到了吧,这个信号就是一个直流信号。我们用傅立叶将其展开,会发现形式非常简单:只有一个级数系数不是0,其他所有级数系数都是0。好,我们再看接下来这个信号:

简单说,就是在前一个直流信号上,增加了一个突变。其实这个突变,在时域中看来很简单,前面还是很平滑的直流,后面也是很平滑的直流,就是中间有一个阶跃嘛。但是,如果我们再次让其傅立叶展开呢?所有的傅立叶级数都为非0了!为什么?因为傅立叶必须用三角波来展开信号,对于这种变换突然而剧烈的信号来讲,即使只有一小段变换,傅立叶也不得不用大量的三角波去拟合,就像这样:

看看上面这个图。学过基本的信号知识的朋友估计都能想到,这不就是Gibbs现象么?Exactly。用比较八股的说法来解释,Gibbs现象是由于展开式在间断点邻域不能均匀收敛所引起的,即使在N趋于无穷大时,这一现象也依然存在。其实通俗一点解释,就是当变化太sharp的时候,三角波fit不过来了,就凑合出Gibbs了:)

接下来我们来看看,如果用刚才举例中的那种小波,展开之后是这样的:

看见了么?只要小波basis不和这个信号变化重叠,它所对应的级数系数都为0!也就是说,假如我们就用这个三级小波对此信号展开,那么只有3个级数系数不为0。你可以使用更复杂的小波,不管什么小波,大部分级数系数都会是0。原因?由于小波basis的特殊性,任何小波和常量函数的内积都趋近于0。换句话说,选小波的时候,就需要保证母小波在一个周期的积分趋近于0。正是这个有趣的性质,让小波变换的计算以及对信号的诠释比傅立叶变换更胜一筹!原因在于,小波变换允许更加精确的局部描述以及信号特征的分离。一个傅立叶系数通常表示某个贯穿整个时间域的信号分量,因此,即使是临时的信号,其特征也被强扯到了整个时间周期去描述。而小波展开的系数则代表了对应分量它当下的自己,因此非常容易诠释。

小波变换的优势不仅仅在这里。事实上,对于傅立叶变换以及大部分的信号变换系统,他们的函数基都是固定的,那么变换后的结果只能按部就班被分析推导出来,没有任何灵活性,比如你如果决定使用傅立叶变换了,那basis function就是正弦波,你不管怎么scale,它都是正弦波,即使你举出余弦波,它还是移相后的正弦波。总之你就只能用正弦波,没有任何商量的余地。而对于小波变换来讲,基是变的,是可以根据信号来推导或者构建出来的,只要符合小波变换的性质和特点即可。也就是说,如果你有着比较特殊的信号需要处理,你甚至可以构建一个专门针对这种特殊信号的小波basis function集合对其进行分析。这种灵活性是任何别的变换都无法比拟的。总结来说,傅立叶变换适合周期性的,统计特性不随时间变化的信号;而小波变换则适用于大部分信号,尤其是瞬时信号。它针对绝大部分信号的压缩,去噪,检测效果都特别好。

看到这里,你应该大概了解了小波变换针对傅立叶变换的优点了。

卡尔曼滤波讲解(一)

简单来说,卡尔曼滤波器是一个“optimal recursive data processing algorithm(最优化自回归数据处理算法)”。对于解决很大部分的问题,他是最优,效率最高甚至是最有用的。他的广泛应用已经超过30年,包括机器人导航,控制,传感器数据融合甚至在军事方面的雷达系统以及导弹追踪等等。近年来更被应用于计算机图像处理,例如头脸识别,图像分割,图像边缘检测等等。

在学**卡尔曼滤波器之前,首先看看为什么叫“卡尔曼”。跟其他著名的理论(例如傅立叶变换,泰勒级数等等)一样,卡尔曼也是一个人的名字,而跟他们不同的是,他是个现代人!学过控制的应该都知道,卡尔曼是现代控制理论的奠基人!

卡尔曼全名Rudolf Emil Kalman,匈牙利数学家,1930年出生于匈牙利首都布达佩斯。1953,1954年于麻省理工学院分别获得电机工程学士及硕士学位。1957年于哥伦比亚大学获得博士学位。我们现在要学**的卡尔曼滤波器,正是源于他的博士论文和1960年发表的论文《A New Approach to Linear Filtering and Prediction Problems》(线性滤波与预测问题的新方法)。

为了给大家能讲解清楚卡尔曼滤波器,我们找到两篇关于卡尔曼滤波器非常好的文章:

第一篇来源于CSDN博客,为大家详细的讲解了卡尔曼的原理及应用,算作“深入”

第二篇来源于知乎,用一个简单的例子,通俗易懂的讲解了卡尔曼滤波,算作“浅出”

此外,关于卡尔曼滤波的仿真程序在EETOP论坛里有很多,大家可以登录论坛后搜索“卡尔曼”来查找。这里我们给大家提供了一个Matlab仿真程序,可以通过点击左下角的“阅读原文”进入论坛下载。

第一篇

来源: lanbing510 的 CSDN博客

原文地址:http://blog.csdn.net/lanbing510/article/details/40936343

1.卡尔曼滤波器的介绍(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=5^2/(5^2+4^2),所以Kg=0.6098,我们可以估算出k时刻的实际温度值是:23+0.6098*(25-23)=24.22度。可以看出,因为温度计的covariance比较小(比较相信温度计),所以估算出的最优温度值偏向温度计的值。

现在我们已经得到k时刻的最优温度值了,下一步就是要进入k+1时刻,进行新的最优估算。到现在为止,好像还没看到什么自回归的东西出现。对了,在进入k+1时刻之前,我们还要算出k时刻那个最优值(24.22度)的偏差。算法如下:

((1-Kg)*5^2)^0.5=3.12。这里的5就是上面的k时刻你预测的那个23度温度值的偏差,得出的3.12就是进入k+1时刻以后k时刻估算出的最优温度值的偏差(对应于上面的3)。

就是这样,卡尔曼滤波器就不断的把covariance递归,从而估算出最优的温度值。他运行的很快,而且它只保留了上一时刻的covariance。上面的Kg,就是卡尔曼增益(Kalman Gain)。他可以随不同的时刻而改变他自己的值,是不是很神奇!

下面就要言归正传,讨论真正工程系统上的卡尔曼。

2. 卡尔曼滤波器算法(The Kalman Filter Algorithm)
在这一部分,我们就来描述源于Dr Kalman 的卡尔曼滤波器。下面的描述,会涉及一些基本的概念知识,包括概率(Probability),随即变量(Random Variable),高斯或正态分配(Gaussian Distribution)还有State-space Model等等。但对于卡尔曼滤波器的详细证明,这里不能一一描述。

首先,我们先要引入一个离散控制过程的系统。该系统可用一个线性随机微分方程(Linear Stochastic Difference equation)来描述,我们结合下面PPT截图进行说明:


上两式子中,x(k)是k时刻的系统状态,u(k)是k时刻对系统的控制量。A和B是系统参数,对于多模型系统,他们为矩阵。y(k)是k时刻的测量值,H是测量系统的参数,对于多测量系统,H为矩阵。q(k)和r(k)分别表示过程和测量的噪声。他们被假设成高斯白噪声(White Gaussian Noise),他们的covariance分别是Q,R(这里我们假设他们不随系统状态变化而变化)。

对于满足上面的条件(线性随机微分系统,过程和测量都是高斯白噪声),卡尔曼滤波器是最优的信息处理器。先给出KF算法的流程和五个核心更新方程如下:

KF算法

五个更新方程为:

编写公式不方便,所以写成了PDF然后做了截图粘在了下面,下面就上面的例子和五个核心的公式对Kalman算法进行下说明:

就这样,算法就可以自回归的运算下去。

看到这聪明的同学可能已经看出来了,问道卡尔曼增益为什么会是第三步中那样求,现在只大致说一下原理,具体推到比较复杂,有兴趣的同学可以参考这文献去推一推。
还记得前面我们说的误差协方差矩阵$P_k$么,即求第k次最优温度的误差协方差矩阵,对应于上例中的3和3.12….这些值。看下面PPT,我们最小化P即可得到卡尔曼增益K,对应上例求解K只最小化最优温度值的偏差,即最小化P(K):

我们由第四步可以看出,k时刻系统的最优温度值=k-1时刻状态估计值(由上一状态的最优温度值加上过程误差)+带卡尔曼增益权值项的偏差。如果观测误差远远大于估计误差,那么K就很小,k时刻的预测值约等于k时刻的状态估计值,如果对i时刻的状态估计值误差远远大于观测误差,此时相应的q较大,K较大,i时刻的状态估计值更倾向于观察的数据。

卡尔曼滤波器的原理基本描述就完成了,希望能帮助大家理解这这5个公式,其算法可以很容易的用计算机的程序实现。下面,我会用程序举一个实际运行的例子。
3. 简单例子(A Simple Example)
这里我们结合第二第三节,举一个非常简单的例子来说明卡尔曼滤波器的工作过程。所举的例子是进一步描述第二节的例子,而且还会配以程序模拟结果。
根第二节的描述,把房间看成一个系统,然后对这个系统建模。当然,我们见的模型不需要非常地精确。我们所知道的这个房间的温度是跟前一时刻的温度相同的,所以A=1。没有控制量,所以u(k)=0。因此得出:
x(k|k-1)=x(k-1|k-1) ……… (6)
式子(2)可以改成:
P(k|k-1)=P(k-1|k-1) +Q ……… (7)
因为测量的值是温度计的,跟温度直接对应,所以H=1。式子3,4,5可以改成以下:
X(k|k)= X(k|k-1)+Kg(k) (Z(k)-X(k|k-1)) ……… (8)
Kg(k)= P(k|k-1) / (P(k|k-1) + R) ……… (9)
P(k|k)=(1-Kg(k))P(k|k-1) ……… (10)

第二篇

来源:知乎

作者:肖畅
链接:https://www.zhihu.com/question/239****01/answer/464****23

考虑轨道上的一个小车,无外力作用,它在时刻t的状态向量只与相关:
(状态向量就是描述它的t=0时刻所有状态的向量,比如:
[速度大小5m/s, 速度方向右, 位置坐标0],反正有了这个向量就可以完全预测t=1时刻小车的状态)

那么根据t=0时刻的初值,理论上我们可以求出它任意时刻的状态。
当然,实际情况不会这么美好。
这个递推函数可能会受到各种不确定因素的影响(内在的外在的都算,比如刮风下雨地震,小车结构不紧密,轮子不圆等等)导致并不能精确标识小车实际的状态。
我们假设每个状态分量受到的不确定因素都服从正态分布。
现在仅对小车的位置进行估计
请看下图:t=0时小车的位置服从红色的正态分布。

根据小车的这个位置,我们可以预测出t=1时刻它的位置:

分布变“胖”了,这很好理解——因为在递推的过程中又加了一层噪声,所以不确定度变大了。
为了避免纯估计带来的偏差,我们在t=1时刻对小车的位置坐标进行一次雷达测量,当然雷达对小车距离的测量也会受到种种因素的影响,于是测量结果告诉我们,小车t=1时的位置服从蓝色分布:

好了,现在我们得到两个不同的结果。前面有人提过加权,Kalman老先生的牛逼之处就在于找到了相应权值,使红蓝分布合并为下图这个绿色的正态分布(啰嗦一句,这个绿色分布均值位置在红蓝均值间的比例称为Kalman增益(比如下图中近似0.8),就是各种公式里的K(t))
你问为什么牛逼?
绿色分布不仅保证了在红蓝给定的条件下,小车位于该点的概率最大,而且,而且,它居然还是一个正态分布!
正态分布就意味着,可以把它当做初值继续往下算了!这是Kalman滤波能够迭代的关键。
最后,把绿色分布当做第一张图中的红色分布对t=2时刻进行预测,算法就可以开始循环往复了。
你又要问了,说来说去绿色分布是怎么得出的呢?
其实可以通过多种方式推导出来。我们课上讲过的就有最大似然法、Ricatti方程法,以及上面参考文献中提及的直接对高斯密度函数变形的方法,这个不展开说了。
另外,由于我只对小车位移这个一维量做了估计,因此Kalman增益是标量,通常情况下它都是一个矩阵。而且如果估计多维量,还应该引入协方差矩阵的迭代,我也没有提到。如果楼主有兴趣,把我提及那篇参考文献吃透,就明白了。
Kalman滤波算法的本质就是利用两个正态分布的融合仍是正态分布这一特性进行迭代而已。