MATLAB卡尔曼|卡尔曼滤波的公式【线性】

卡尔曼滤波

卡尔曼滤波(Kalman Filter) 一种用于估计系统状态的数学算法,不是类似于高通、低通滤波器那样的频域滤波。

卡尔曼滤波基于线性动态系统的假设,它将系统的状态表示为均值和协方差矩阵,通过递归地更新和预测这些值来实现对系统状态的估计。卡尔曼滤波有两个主要的步骤:预测和更新

卡尔曼滤波具有一些优点,例如对噪声和不确定性的鲁棒性较强,能够提供较为精确的估计结果,并且计算效率较高。然而,卡尔曼滤波的应用前提是系统满足线性动态系统的假设,对于非线性系统,需要通过扩展卡尔曼滤波(Extended Kalman Filter)或无迹卡尔曼滤波(Unscented Kalman Filter)等变种算法来进行处理。

滤波结构

  • 预测步骤中,卡尔曼滤波使用系统模型和上一时刻的状态估计来预测当前时刻的状态,并计算出预测状态的均值和协方差矩阵。

  • 更新步骤中,卡尔曼滤波使用当前时刻的测量数据和预测状态的均值和协方差矩阵,通过最小二乘法得到对当前状态的估计,并重新计算估计的状态的均值和协方差矩阵。

重要公式

下面从几个重要公式的角度来分析卡尔曼滤波:

  1. 观测的一步转移,根据当前时刻的X(k-1)、状态转移矩阵 F F F、输入向量 u k − 1 u_{k-1} uk−1计算下一时刻的X_{k}
    X ^ k − = F X k − 1 + G u k − 1 \hat X_{k}^- = FX_{k-1}+G u_{k-1} X^k−=FXk−1+Guk−1

  2. 协方差预测:
    P k − = F P k − 1 F T + Q k P_{k}^{-}=FP_{k-1}F^{T}+Q_{k} Pk−=FPk−1FT+Qk

  3. 计算增益:
    K k = P k − H T ( H P k − H T + R ) − 1 K_k=P_k^-H^T(HP_k^-H^T+R)^{-1} Kk=Pk−HT(HPk−HT+R)−1

  4. 计算估计值:
    X ^ t = X ^ t − + K t ( Z k − H X ^ k − ) \hat{X}{t}=\hat{X}{t}^{-}+K_{t}(Z_{k}-H\hat{X}_{k}^{-}) X^t=X^t−+Kt(Zk−HX^k−)

  5. 更新协方差:
    P k = ( I − K k H ) P k − P_k=(I-K_kH)P_k^- Pk=(I−KkH)Pk−

其他公式

表示观测预测的公式:
Z ^ k = H X k \hat{Z}{k} = HX{k} Z^k=HXk

相关推荐
weixin_307779139 分钟前
一维无粘 Burgers 方程的激波形成问题:MacCormack 格式求解
c++·算法·matlab
天下无敌笨笨熊3 小时前
C#Modbus串口开发心得
开发语言·c#
电商API_180079052473 小时前
电商商品价格监控工具淘宝京东商品价格抓取API项目实操分享
java·大数据·开发语言·前端·数据挖掘
zzzll11113 小时前
深度剖析:HashMap 并发死循环与 ConcurrentHashMap 两代演进全解
java·开发语言
如意猴3 小时前
【C++】001--C++入门(1)
开发语言·c++
传奇开心果编程4 小时前
【Rust入门知识点学与练】第10课:Option 和 Result(错误处理入门)
开发语言·学习·rust
Evand J4 小时前
【MATLAB例程,图像滤波5】 反谐波均值滑动窗口滤波(CHMF)图像降噪与质量评价,附代码下载链接
图像处理·算法·计算机视觉·matlab·均值算法·滑动窗口滤波·均值滑动
leonkay4 小时前
C# 锁机制——【2】深入原理
开发语言·后端·spring·c#·个人开发
坐吃山猪4 小时前
【多线程】CompletableFuture使用
java·开发语言·多线程
CHPCWWHSU4 小时前
DeepSeek-Harness-Qt将浏览器端Agent装入桌面应用
开发语言·qt