首页 > 编程语言 > 详细

一阶低通滤波算法

时间:2018-01-31 19:39:43      阅读:244      评论:0      收藏:0      [点我收藏+]

1. 一阶滤波算法的原理 

  一阶滤波,又叫一阶惯性滤波,或一阶低通滤波。是使用软件编程实现普通硬件RC低通滤波器的功能。 

  一阶低通滤波的算法公式为:

              Y(n)=αX(n) (1-α)Y(n-1) 

  式中:α=滤波系数;X(n)=本次采样值;Y(n-1)=上次滤波输出值;Y(n)=本次滤波输出值。 一阶低通滤波法采用本次采样值与上次滤波输出值进行加权,得到有效滤波值,使得输出对输入有反馈作用。

2. 一阶滤波算法的程序(适用于单个采样)

#define a   0.01                // 滤波系数a(0-1) 

char filter(void)
{
    baroOffset  = get_ad(); 
    baro = a * baroOffset  + (1.0f - a) * baroAlt;
    baroAlt = baro;
    return baro;  
}

 

3. 一阶滤波算法的不足 

   滤波系数越小,滤波结果越平稳,但是灵敏度越低;滤波系数越大,灵敏度越高,但是滤波结果越不稳定。

  一阶滤波无法完美地兼顾灵敏度和平稳度。有时,我们只能寻找一个平衡,在可接受的灵敏度范围内取得尽可能好的平稳度。而在一些场合,我们希望拥有这样一种接近理想状态的滤波算法。即:当数据快速变化时,滤波结果能及时跟进(灵敏度优先);当数据趋于稳定,在一个固定的点上下振荡时,滤波结果能趋于平稳(平稳度优先)。

一阶低通滤波算法

原文:https://www.cnblogs.com/jasonchan1202/p/8393826.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!