一阶滤波,又叫一阶惯性滤波,或一阶低通滤波。使用软件编程实现普通硬件RC低通滤波器的功能。
一阶低通滤波的算法公式为:Y(n)=αX(n) (1-α)Y(n-1)
式中:α=滤波系数;X(n)=本次采样值;Y(n-1)=上次滤波输出值;Y(n)=本次滤波输出值。
一阶低通滤波法采用本次采样值与上次滤波输出值进行加权,得到有效滤波值,使得输出对输入有反馈作用。
#define Ratio 0.01 // 滤波系数Ratio(0-1)
char value; // 滤波后的值
char new_value; // 新的采样值
char filter(void)
{
char new_value;
new_value = get_ad(); //获取AD值
return Ratio*value + (1-Ratio)*new_value;
}
|