一阶低通滤波算法

本文介绍了在一阶低通滤波算法中,滤波系数的应用、示例程序以及其在灵敏度和平稳度之间的权衡。强调了根据具体需求调整滤波系数的重要性。
摘要由CSDN通过智能技术生成

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.缺点与不足

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

  一阶滤波无法完美地兼顾灵敏度和平稳度。有时,我们只能寻找一个平衡,在可接受的灵敏度范围内取得尽可能好的平稳度。而在一些场合,我们希望拥有这样一种接近理想状态的滤波算法。即:

当数据快速变化时,滤波结果能及时跟进(灵敏度优先);

当数据趋于稳定,在一个固定的点上下振荡时,滤波结果能趋于平稳(平稳度优先)。

因此,使用前需要根据需求,进行滤波系数的调试。

  • 11
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值