12.12 一阶滤波算法

一阶滤波算法,即通过软件算法来实现模拟硬件低通滤波器。

一阶滤波算法

RC低通滤波器

一阶滤波算法公式为:Y(n)=aX(n)+(1-a)Y(n-1)

Y(n)-本次滤波输出值;

Y(n-1)-上次滤波输出值;

a-滤波系数。

其中,滤波系数a越小,滤波结果越平滑,但反应灵敏度越低;滤波系数a越大,则反应灵敏度越高,但滤波结果平滑性越差,越不稳定。所以,在选取滤波系数时,应对平滑性和灵敏度进行考虑然后取舍。

同时,应注意小数舍弃带来的误差。 比如: 本次采样值=25,上次滤波结果=24,滤波系数=10, 根据滤波算法:

本次滤波结果=(25*10+24*(256-10))/256=24.0390625

但是,我们在单片机运算中,很少采用浮点数。因此运算后的小数部分要么舍弃,要么进行四舍五入运算。这样一来,本例中的结果24.0390625就变成了24。假如每次采样值都=25,那么滤波结果永远=24。也就是说滤波结果和实际数据一直存在无法消除的误差。

改善误差的办法有两种:

1、增大滤波系数,但会导致平滑度降低。

2、扩展数据有效位数,但会增加CPU运算压力。


分享到:


相關文章: