ad 卡尔曼_卡尔曼滤波剪影__Kalman Filtering · Make Intuitive

卡尔曼滤波是一种最优滤波算法,广泛应用于通信、定位、图像处理等领域。它通过对观测值的处理,得到最优估计。在非线性系统中,可采用扩展卡尔曼滤波(EKF)。该算法在火箭燃料温度预测等实际问题中展现出优势,但对非线性处理的复杂度较高。
摘要由CSDN通过智能技术生成

铺垫用の引论

Kalman Filtering 算法是一种最优滤波估计算法,有了它之后,就算只知道观测对象的少量不准确观测信息也有可能对这一对象实现完全控制,它的Advantages和Disadvantages(Constraints)在下面分别以标黑"匚"以及普通"匚"记录下来。

(DIS)Advantages总览

Can be operated on a continuous function or a discrete function;

Can handle not only stationary processes, but also non-stationary and multidimensional processes;

Faster speed;

Well suited for embedded systems, and real time problems;

Smaller memory requirements;

When information about the initial state is unknown and no prior knowledge is available, KF can be extended to EKF, thus solve the problem;

It is expected to be mixed with artificial neural networks, to gain some newer properties;

The object must be in the time domain, and the discrete model can be constructed;

The runtime is limited by the computer hardware, which leads to the singularity of the covariance matrix in the process of calculation transfer, so there will be great instability in the numerical calculation, these can be avoided by its extension such as Singular Value Filter, UD Decomposition Filter, Particle Filter;

Ordinary filtering must be recursive and applied to linear systems, while non-linearity needs to be replaced by EKF with high complexity. Recursion is also not conducive to stack management in C++.

利用分而治之的思想,可以分两步理解这个算法:

"Filtering"的理解

这个词由Telecommunication的信号处理工程引入,在信息传输过程中,噪声使信息很难从信源准确无误地到达信宿因此,怎样除去噪声的影响[1],从所获得的信息(含有噪声等干扰因素故不准确)中提取出人们想要的那一部分就成了一个重要的课题,就是专门用来解决这一问题的操作。这种除掉噪声的目的,可以通过

1.时域中进行某些奇异的运算提取出想要的信息;

频域中将处于某些频段信息分量提取出来;

两种方法实现,它们都可以反过来看做是将观测得到的数据处理后得到相应参数的估计值,被叫做“滤波估计”,第二类滤波方法在早期滤波估计中较为常见,它们大多是基于Fourier变换的一些应用方法并且在信号处理领域大显身手,其中,于1940被提出的Wiener滤波作为一种基于频域的统计最优滤波器,开启了对于随机信号进行处理的先河,然而它因为频域的限制,只能处理一维平稳随机信号。而第一类滤波方法是近代才兴起的,它们有更加广泛的应用范围以及更优良的性能,即如何从已知的(不精确)数据中估计出准确信息,具有代表性且最为常用的就是Kalman Filtering算法。

综上,可以将滤波这件事总结为:

滤波的实质, Vernacularism

为最大限度上降低信息在传输过程中收到的噪声干扰,对于所接收到的各种随机信号的混合信号进行处理,并得到此条件下最优估计信号的方法,就是滤波.🚀

"KF"的应用

但话说回来,Kalman Filtering[2]一经发明,就成为了应用范围最广泛的滤波算法,其最早的工程应用是在Apollo moon landing program,在这个登月项目中,需要通过温度传感器测得的火箭燃料温度进行动力控制,然而火箭燃料温度

math?formula=T_%7Bfuel%7D超高,一般的温度传感器在里面根本不能生存,这时Kalman Filtering就派上用场了,温度传感器可以用来间接地测量火箭外围的温度

math?formula=T_%7BOutside%7D,根据观测到的这一数据,Kalman Filtering就能预测到真实的燃料温度

math?formula=T_%7Bfuel%7D,如下图所示。

8a8977f795eb

Rocket_Draft.jpg

想要切实地解决掉一个最优估计问题,需要的大多不仅仅是所测量得到的数据们,也需要如下这些部分(可以看作是最优估计问题的组分):<1>先验知识,即已知的一些问题相关的物理量;<2>约束条件,即问题中某些参数或系统必须满足的条件;<3>估计准则函数,用来评判一个估计解决方案的优劣。领会Kalman Filtering就是在学习求解最优估计问题,有必要形成一个遇到问题后将<1><2><3>分别对号入座的意识。

下面列举出来了这种滤波算法超广泛的应用场景,可以见到,它几乎覆盖了所有与信息处理有些许关联的领域... ...会Kalman Filtering的人理论上真就能解决所有的观测信号

math?formula=%5Cto真实信号的转换问题。

通信

定位、跟踪

图像处理领域

卫星导航等速度方向的估计

语音信息重建领域

地质勘探,有效整合各种传感器送来的信息

天气、地震预报

证券和股票行情预测

医疗行业,这种估计方式能参与诊断某些具有统计特征的病症

Kalman Filtering****の详述

根据上述铺垫,KF在这里所解决的问题是:求解一种Operation它以"随机信号的观测值"作为输入,以"信息处理后得到的估计参数/研究对象当前的状态"作为输出。🆗,为清楚起见,可以用下图来表示Kalman Filtering所充当的角色,就算不了解算法的真正原理,你也可以把它当作一个黑匣子无脑使用。

8a8977f795eb

Apollo_machine.png

可以看到,原则上来说,我们往Kalman Filter这个滤波机器内投入每一个观测时刻的观测值,它就能以你投入观测值的频率不断吐出你想要的对应时刻的系统参数或者对象状态了。接下来就要具体看一看这个算法到底是怎样一回事了。

Assumption, 事前設定

要想用KF来解决之前说的最优估计问题,此问题需要满足以下预设条件:[3]-[5]

1.系统状态的变量是随机变量,且满足Gaussian Distribution

系统可能受到的外界影响是满足叠加定律且已知的

测量噪声存在,且为高斯白噪声

只适用于线性系统,非线性则采用Extended Kalman Filtering

Modeling Formulation, 実体、正規化

首先,对于研究对象进行建模,观测系统在第

math?formula=k个时间段所在的状态,可以由一个状态向量来描述,例如说一个车站就是研究对象,那它的状态向量

math?formula=%5Ccolor%7Bdeeppink%7D%7B%5Cmathbf%7B%5Chat%7Bx%7D%7D_%7Bk%7D%7D可能就是下面这个样子:

math?formula=%5Ccolor%7Bdeeppink%7D%7B%5Cmathbf%7B%5Chat%7Bx%7D%7D_%7Bk%7D%7D%20%5Ccolor%7Bblack%7D%7B%3D%20%5Cbegin%7Bbmatrix%7D%20%E8%BB%8A%E4%B8%A1%E5%8F%B0%E6%95%B0%5C%20%5C%20%5C%20%5C%20%5C%20%5C%20%5C%20%5C%20%5C%20%5C%20%5C%20%5C%20%5C%20%5C%20%5C%20%5C%20%5C%20%5C%20%5C%20%5C%20%5C%20Num%5C%5C%20%E8%BB%8A%E4%B8%A1%E3%81%AE%E6%B5%81%E3%82%8C%5C%20%5C%20%5C%20%5C%20%5C%20%5C%20%5C%20%5C%20%5C%20%5C%20%5C%20%5C%20%5C%20%5C%20%5C%20%5C%20%5C%20%5C%20%5C%20%5CPhi_%7BCar%7D%5C%5C%20%5Cvdots%5C%20%5C%20%5C%20%5C%20%5C%20%5C%20%5C%20%5C%20%5C%20%5C%20%5C%20%5C%20%5C%20%5C%20%5C%20%5C%20%5C%20%5C%20%5C%20%5C%20%5C%20%5C%20%5C%20%5C%20%5C%20%5C%20%5C%20%5C%20%5C%20%5C%20%5C%20%5C%20%5C%20%5Cvdots%20%5Cend%7Bbmatrix%7D%7D

更详细一些的话,一个对象的状态向量是一个包裹,里面装了你想在

math?formula=k时刻了解到的属于对象的所有有关信息(精确的),例如

math?formula=k时的车辆数

math?formula=%5C%20Num_k%5Capprox🚗+🚘+🚚+🚐+🚕+🚛

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值