卡尔曼滤波算法-简易版
代码实现:
/********************************************************************************* @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实现
卡尔曼滤波算法-简易版相关推荐
- node.js——麻将算法(六)简易版麻将出牌AI1.0
普通麻将的出牌AI如果不是要求特别高的话,其实蛮容易实现的,毕竟大多数人打牌都只是看自己的手牌. 所以作为简易版的AI,出牌的策略只要奔着胡牌去就可以了.我们能想到的就是把相邻或相同的牌凑到一起,把单 ...
- 智能停车场[简易版]
智能停车场[简易版] 项目简介 开发环境 功能简介 停车场收费管理 停车场停车位管理 网页端 功能实现 Socket通信 数据库相关知识 本地数据库操作 pymysql数据操作 web开发中的数据库操 ...
- JS正则表达式-附身份证号码验证(简易版)
文章目录 JS正则表达式 匹配与搜索 一.方括号,圆括号 二.修饰符 三.元字符 四.量词 身份证号码验证(简易版) 身份证号码规则: 1.地址码 2.年份码 3.月份码 4.日期码 5.顺序码 6. ...
- 简易版 useState 实现
基础版 useState 简单实现:只是数组 通过数组实现,初始化的时候,创建两个数组:states 与 setters ,设置光标 cursor 为 0 第一次调用 useState 时,创建一个 ...
- 互联网公司实习岗位选择与简易版职业发展规划
文章目录 1.互联网公司的实习岗位 1.1 互联网公司有哪些? 大厂,中厂,小厂的界定是什么? 1.2 实习岗位方向都有哪些? 1.3 在哪里投递简历?哪里找实习信息? 1.4 参考资料 2.入职门槛 ...
- 连连看连接算法Javascript版
继连连看连接算法Python版后,我将该算法移植到了Javascript上,为在浏览器版连连看做准备. 功能及使用方法参照另外一篇:连连看连接算法Python版. 值得一提的是由于Javascript ...
- c语言按给定成绩查询,C语言学生成绩管理系统(简易版)
#include #include #include int readstudents(struct students stu[]); //读取学生信息 int readsexcode(struct ...
- Matlab简易版美图秀秀(GUI界面实现)
该项目为数字图像处理课程的期末大项目,主要内容是用matlab软件实现一些美图秀秀相关功能,比如对图像进行水平垂直翻转,旋转,裁剪,抠图等基础功能:对图像添加浮雕,艺术噪声,灰度胶片,动感模糊,素描, ...
- 基于C++的简易版《球球大作战》游戏设计
全套资料下载地址:https://download.csdn.net/download/sheziqiong/85602628 全套资料下载地址:https://download.csdn.net/d ...
最新文章
- NOIP模拟 数球(思维题)
- Linux服务端最大并发数是多少?
- Java EE---Spring框架创建Account小项目
- 实现Android和PC之间的蓝牙通信
- 如何用计算机求和,求和计算器
- 如何写一个bat批处理自动上传文件到FTP
- eclipse要修改的配置
- 微软拿 480 亿买 GitHub 就为了拥抱开源?
- mysql数据库工程师考证题_100道MySQL常见面试题总结
- 手把手教你Android手机与BLE终端通信--连接,发送和接收数据
- qemu 运行arm linux,在ubuntu bionic下对基于qemu的arm64进行linux内核5.0.1版本的编译和运行...
- lIUNX如何加载U盘,光盘
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(6)-Unity 2.x依赖注入by运行时注入[附源码]...
- 澳洲计算机专业排名2015,计算机专业世界排名
- ubuntu16.04安装完后无法上网
- 【多多情报通】看完让人焕然大悟的6种拼多多店铺玩法
- Immutable 详解及 React 中实践 1
- VBA 开发学习--基础语法
- 利用机器学习实施网络犯罪 6种有效途径触目惊心
- 如何用php压缩html代码并输出
热门文章
- mysql 创建分区索引吗_MySQL分区字段列有必要再单独建索引吗?
- 64centos安装mysql_CentOS7 64位安装mysql教程,亲测完美
- python使用curve_fit拟合任意分布
- python selenium加载插件
- from gluonts.trainer import Trainer报错
- csv导入mysql php实现_PHP实现csv文件导入mysql数据库的方法
- var和function谁先优先执行_JS中如何和让异步函数优先执行?
- 启动efi_efi启动模式对比bios启动模式有哪些优势【详细介绍】
- java-记录一个子串在整串中出现的次数
- ⑥NuPlayer播放源码分析之DecoderBase分析