卡尔曼滤波算法-简易版

news/2025/1/12 6:00:27/

在这里插入图片描述

在这里插入图片描述

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

代码实现:

/********************************************************************************* @file    bsp_kalman.h* @author  Zxp* @version V1.0.0* @date    2021-06-08* @brief   卡尔曼滤波算法头文件******************************************************************************
*/#ifndef __BSP_KALMAN_H_
#define __BSP_KALMAN_H_#ifdef __cplusplus
extern "C"
{
#endif#include "stddef.h"
#include "stdint.h"typedef struct tagKalmanParam{float covQ;  ///< 过程噪声协方差,Q增大,动态响应变快,收敛稳定性变坏float covR;  ///< 观测噪声协方差,R增大,动态响应变慢,收敛稳定性变好float x_last;  //上一时刻的最佳估计float p_last;	//上一时刻的最优偏差} KalmanTypeDef;int32_t BSP_InitKalmanParameter(KalmanTypeDef* pKalman, float covR, float covQ);float BSP_CaluKalman(KalmanTypeDef* pKalman, float measure);#ifdef __cplusplus
}
#endif#endif  // #ifndef __BSP_KALMAN_H_
/********************************************************************************* @file    bsp_kalman.c* @author  Zxp* @version V1.0.0* @date    2021-06-08* @brief   此文件实现了卡尔曼滤波算法参考博客:https://www.zhihu.com/question/22422121*******************************************************************************/#include "bsp_kalman.h"/*** @brief   初始化卡尔曼滤波的参数* @param   pKalman: 要设置的卡尔曼参数结构的指针* @param   covR: 观测噪声协方差* @param   covQ: 过程噪声协方差* @return  状态* @retval  0: 设置成功* @retval  -1: 指针为空*/
int32_t BSP_InitKalmanParameter(KalmanTypeDef* pKalman, float covR, float covQ)
{if (pKalman == NULL){return -1;}pKalman->covR = covR;pKalman->covQ = covQ;pKalman->x_last = 0;pKalman->p_last = pKalman->covQ;return 0;
}/*** @brief   计算滤波值* @param   pKalman: 要计算的卡尔曼参数结构的指针* @param   measure: 测量到的原始数据* @return  滤波值,若pKalman为空,则返回0*/
float BSP_CaluKalman(KalmanTypeDef* pKalman, float measure)
{float x_mid, kg, p_mid;float x_now, p_now;if (pKalman == NULL){return 0;}x_mid = pKalman->x_last;//上一时刻的值 //公式1p_mid = pKalman->p_last + pKalman->covQ;  //公式2kg = p_mid / (p_mid + pKalman->covR); //公式3x_now = x_mid + kg * (measure - x_mid);//当前时刻的最优值 //公式4p_now = (1 - kg) * p_mid;  //当前时刻的最优值偏差 公式5pKalman->p_last = p_now;pKalman->x_last = x_now;return x_now;
}

滤波算法excel实现

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


http://www.ppmy.cn/news/242099.html

相关文章

二维标准Kalman滤波

背景 二维标准kalman滤波仿真&#xff0c;绘制了噪声、跟踪状态和误差图&#xff0c;并且加入了攻击的代码部分&#xff0c;需要在第一个状态量的量测值中设置攻击的时候&#xff0c;将attack变量设置为1&#xff0c;会在20-40,60-80时刻加入相应攻击&#xff0c;攻击变量为at…

无损卡尔曼滤波

创作不易&#xff0c;转载请注明来源&#xff1a;http://blog.csdn.net/adamshan/article/details/78359048 通过上一篇文章&#xff0c;我们已经知道KF不适用于非线性系统&#xff0c;为了处理非线性系统&#xff0c;我们通过一阶泰勒展式来近似&#xff08;用线性函数近似&a…

拆卸 美能达 AF 50 1.7

http://bbs.mydigit.cn/read.php?tid259281 本人已在相机维修区发帖 地址如下 http://bbs.mydigit.cn/read.php?tid259277 维修区的帖子被总版加精 同时拆解过程也完成 资料图以及非维修拆解(卡口构件拆解)请移步 此贴将不更新 但想到这里的拆客更多因此再发出来与大家分享 并…

卡尔曼滤波(03)

视频课的第三期&#xff08;隔了好久才捡起来&#xff0c;前面的都要忘记了&#xff09;&#xff0c;这节主要就是介绍序贯滤波、信息滤波和平方根滤波 目录 1 序贯滤波2.信息滤波和信息融合2.1信息滤波2.2信息融合 3.平方根滤波3.1Potter平方根滤波3.2奇异值&#xff08;SVD&…

卡尔曼滤波(kalman)

卡尔曼&#xff08;kalman&#xff09;滤波原理 kalman滤波器可以看做状态变量在由观测生成的线性空间上的射影。 如下状态空间模型描述的动态系统&#xff1a; (1) ​​​​​​​ ​​​​​​​ (2) 式中&#xff0c;k为离散时间&#xff…

初识卡尔曼滤波

卡尔曼滤波 文章目录 卡尔曼滤波前言一、什么是卡尔曼滤波二、适用系统1.线性系统叠加性齐次性 2.高斯系统3.宏观意义 总结 前言 卡尔曼滤波&#xff08;Kalman filtering&#xff09;是一种利用 线性系统 状态方程&#xff0c;通过系统输入输出观测数据&#xff0c;对 系统状…

卡尔曼滤波_1

wiki原文 卡尔曼滤波(2016.8.4) 卡尔曼滤波&#xff0c;也常被称作线性二次估计(LQE)&#xff0c;是一种使用一段时间内的观测数据&#xff0c;其中观测数据中包含统计噪声和其他不确定性&#xff0c;来估计未知变量的值的方法。它比一般的基于单次测量的方法更加精确&#x…

探索AI插件:Access Link,Bramework,和AskYourPDF

I. 引言 在这个信息爆炸的时代&#xff0c;获取和分析信息的效率至关重要。今天&#xff0c;我将介绍三个强大的AI插件&#xff1a;Access Link&#xff0c;Bramework&#xff0c;和AskYourPDF&#xff0c;它们可以帮助我们更有效地获取和分析信息。 II. Access Link插件 A.…