Kalman滤波在单片机上的使用
2014-10-31 19:19
176 查看
#ifndef _KALMAN_H_ #define _KALMAN_H_ extern KalmanGain; //卡尔曼增益 extern EstimateCovariance; //估计协方差 extern MeasureCovariance; //测量协方差 extern EstimateValue; //估计值 extern void KalmanFilterInit( void ); extern KalmanFilter( Measure ); #endif #include "config.h" #include "math.h" KalmanGain; //卡尔曼增益 EstimateCovariance; //估计协方差 MeasureCovariance; //测量协方差 EstimateValue; //估计值 void KalmanFilterInit( void ); extern float KalmanFilter( float Measure ); void KalmanFilterInit( void ) { EstimateValue = 0; EstimateCovariance = 0.1; MeasureCovariance = 0.02; } KalmanFilter( Measure ) { //计算卡尔曼增益 KalmanGain = EstimateCovariance * sqrt( 1 / ( EstimateCovariance * EstimateCovariance + MeasureCovariance * MeasureCovariance )); //计算本次滤波估计值 EstimateValue = EstimateValue + KalmanGain*( Measure – EstimateValue ); //更新估计协方差 EstimateCovariance = sqrt(1 - KalmanGain) * EstimateCovariance; //更新测量方差 MeasureCovariance = sqrt(1 - KalmanGain) * MeasureCovariance; //返回估计值 return EstimateValue; }
相关文章推荐
- rtklib使用kalman滤波进行高精度相对定位原理
- 目标跟踪之卡尔曼滤波---理解Kalman滤波的使用预测
- 目标跟踪之卡尔曼滤波---理解Kalman滤波的使用
- 理解Kalman滤波的使用
- 学单片机,win7笔记本使用STC_isp,怎么设置COM口?
- 关于单片机的using使用
- 单片机定时器记数器的作用及使用简介
- 单片机中的指针使用注意点
- lpc单片机使用指南-----序
- 凌阳61单片机使用7段数码管显示数字时钟的程序
- 非常 有感觉 24l01 模块 一次成功!!!使用 stc12 系列 的 单片机
- 89s52单片机的硬件资源基本使用
- 卡尔曼(Kalman)滤波简介~
- PLC模拟量输入的软件滤波使用方法
- 复习51单片机之如何使用动态内存
- gabor 滤波的c++实现与该类得使用简介
- 跟大家分享一个非常精简的夏令时转换程序,程序是通用的可以在51、430、PIC、瑞萨系列的单片机上使用
- STC 单片机应使用何种编译器/汇编器
- 飞思卡尔16位单片机9S12XS128使用
- 单片机实验——0到60秒的计时器(使用硬件中断方式实现)