卡尔曼滤波-α滤波器

标准卡尔曼滤波也就是系统模型是线性的,理解了标准卡尔曼滤波后,其他的也就理解了

概述

从网上看了很多很多关于卡尔曼滤波的文章,最容易理解的居然是国外的一个教程
https://www.kalmanfilter.net/default.aspx
在这里插入图片描述
英文不好的也可以切换到中文版哦!!!
当然国内也有翻译过后的版本https://zhuanlan.zhihu.com/c_1149619223558012928,这两篇文章几乎从无到有的过程给你讲述了什么是卡尔曼滤波,我下面写到的大多也是基于上述两篇文章,再加上自己的一些理解,有很多不正确的地方,还妄多多纠正。
在整个学习的过程中我们会用到很多基础线性代数,概率的知识,比如说期望、方差、正态分布、协方差、矩阵、微积分等这些基础知识你可以在B站上的3Blue1Brown上快速掌握它的核心要点即可。
参考文章:
https://blog.csdn.net/u010720661/article/details/63253509
https://www.jianshu.com/p/f6ce8943560c?from=singlemessage
http://blog.tkjelectronics.dk/2012/09/a-practical-approach-to-kalman-filter-and-how-to-implement-it/
https://mp.weixin.qq.com/s/II7xYWtgG6cQd-kP-O47mA
https://mp.weixin.qq.com/s/cr1u840FeBLalrmtJQs8TQ
https://mp.weixin.qq.com/s/__Lok-rPNz9eP7pKkR2nvQ
https://mp.weixin.qq.com/s?__biz=MzUxMDY4NTgxMQ==&mid=2247483772&idx=1&sn=50f8a0c5606810a2e9f94075375cb013&chksm=f97e6660ce09ef768621801b2ac6e6f135b4e5d9d9024de458f5250c71239c440ea4b6e960a7&scene=21#wechat_redirect
https://wenku.baidu.com/view/3c42b7733186bceb18e8bb29.html#
https://www.e-learn.cn/topic/996361
https://www.cnblogs.com/rouwawa/p/11643850.html

α滤波器

问题模型

假设我们有这么一个系统模型,我们制造了一枚导弹,这个导弹做50m/s的匀速直线运动,导弹上装有雷达测距仪,可以测出导弹距离出发点的位置,雷达的测量频率为0.2Hz也就是5秒测量一次当前的位置,我们观察10次也就是50秒内的数据,现在我们想知道每一时刻的导弹的真实位置。
有人说我们不是有雷达吗?但是雷达有误差并不准确,这里的误差就是测量误差。还有人说我们可以用数学公式计算,导弹不是做匀速运动吗? S=vt 不就可以了吗?
但是导弹在空气中会受到各种环境的影响,气流、温度等都会让这个系统动力模型产生误差,这里的误差就是过程噪声。
为了解决上述问题,我们引入了α滤波器

状态更新方程

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

状态预测方程

我们引入两个状态方程:
在这里插入图片描述
这两个方程称为状态外推方程(State Extrapolation Equation)也可以叫做(State Transition Equation/ State Prediction Equation),这名字太装逼了,以后都叫他状态预测方程,说白了就是根据过去的值推算未来的值也就是预测的意思了,不同的系统方程当然不一样,和我们实际设计的动力系统模型相关。
根据状态预测方程,下一时刻的位置等于当前时刻的位置加上速度乘以间隔时间,在这个模型中速度是恒定的,所以下一时刻的速度等于当前时刻的速度。

估计算法

在这里插入图片描述
在这里插入图片描述

开始滤波

在这里插入图片描述
第一步:伪造数据
我们先伪造一下雷达的数据,在没有真实雷达的情况下如何伪造数据呢?我可以通过真实值+高斯噪声来模拟雷达的数据,我们可以用python来实现。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

总结

从α滤波器中我们总结一下:
在这里插入图片描述
我们引入了卡尔曼滤波五个方程中的两个:状态更新方程和状态预测方程,在状态更新方程中有一个滤波系数,这个系数其实就是后面的卡尔曼增益K_n,只不过我们这里的系数是静态的而已

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
卡尔曼滤波器和神经网络是两种不同的技术,分别在信号处理和人工智能领域有广泛的应用。 卡尔曼滤波器是一种用于估计不确定过程的滤波器。它使用了一种递归方法来估计系统的状态,这种方法基于对过去和现在的观测值进行线性最小方差优化。卡尔曼滤波器在许多应用中都非常有用,包括传感器数据融合、机器人导航和控制系统等。 神经网络是一种深度学习技术,它使用人工神经元模拟人脑的工作方式。神经网络通过学习大量数据来识别模式和预测新的数据。它们在许多应用中都非常有用,包括图像识别、语音识别、自然语言处理和机器学习等。 将卡尔曼滤波器和神经网络结合使用可能可以提高模型的性能。卡尔曼滤波器可以用于提供输入数据的高精度估计,而神经网络则可以学习从这些估计中提取有用的信息。例如,神经网络可以用于预测未来的状态或识别异常值,而卡尔曼滤波器则可以提供这些预测或识别所需的输入数据的高精度估计。这种结合使用的方法通常被称为卡尔曼神经网络(Kalman Neural Network)或卡尔曼深度学习(Kalman Deep Learning)。 值得注意的是,虽然卡尔曼滤波器和神经网络可以结合使用,但它们并不是互斥的。许多应用可以使用单一的技术来实现,而不需要结合使用这两种技术。因此,选择使用哪种技术取决于具体的应用需求和数据特性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值