【单片机学习:一】卡尔曼滤波

学习目标:

提示:这里可以添加学习目标

学习卡尔曼滤波原理,并基于stm32 单片机+max44099光度传感器模块测试。


学习内容:

提示:这里可以添加要学的内容

1、在B站向华南虎和其他几位博主学习了原理和公式(不需要深究原理,主要理解)
2、本质:最优估计值(输出值) = 当前的估计值+测量值 (加权);
3、步骤主要包括预测和更新(5大公式)


学习产出:

提示:这里统计学习计划的总量
一维卡尔曼滤波公式是真的简单(根据华南虎讲的来的):
在这里插入图片描述

然后就是对应,
编写程序:

/* 一维卡尔曼滤波 */
float kalman_filter_1(float new_lux)
{
    static float p_t=1;   // 最优估计协方差
	  static float p_t_=1;  // 先验估计的协方差
	  static float K;      //增益
	  static float R=0.01; // R:观测噪声系数(与传感器精度成反比)
	  static float lux=0;  //最优估计值(最终输出)
    static float lux_=0; //先验估计值
	 
	/* 状态估计 */
	 lux_ = lux;  //先验估计,此次估计值=上次的最优估计
	 p_t_ = p_t;   //此次的估计协方差 = 上次的最优估计协方差
	
	/* 修正估计*/
	 K = p_t_/(p_t_ + R); //更新 K	
	 lux = lux_ + K*(new_lux - lux_);//更新最优估计值,即得到当前最优估计值 
	 p_t = (1-K)*p_t_;
	
	 return lux;
	
}

结果展示:
未加滤波前:
在这里插入图片描述
加了滤波后(是接着上图来的,所以滤波后的为下图中后半部分):
在这里插入图片描述
效果还是很明显啊!

  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值