学习:通用软件滤波算法-算术平均滤波法
程序员文章站
2022-04-14 21:06:18
...
一、处理思想
连续采集N组数据,进行算术平均值计算,作为本次数据有效值
二、算法实现
#define TARGET_tYPE int
#define N 10
TARGET_tYPE ADDER = 0;
TARGET_tYPE Arithmetic_mean_FILTER()
{
for(int i = 0; i < N; i++)
{
ADDER = ADDER + get_data();
}
return (ADDER/N);
}
三、滤波效果
DS18B20温度传感器滤波效果
四、优缺点
优点
算术平均数能较好的过滤随机干扰(使正负干扰的期望相互抵消)
缺点
不适用于测量较慢的数据
不适用于实时控制
ps:补充一个小技巧:可将N设置为2的整数幂,再利用移位操作来代替除法以提高运行效率。
例如ADDER/2也可以这样写:
return ADDER >> 1;
若考虑到负数的情况,则该方法仍需完善
以 ADDER/(2^N)为例:
return (ADDER + 2^N - 1) >> N; //(ADDER + 2^N - 1)须小于0
上一篇: 从理论到实践-卡尔曼滤波与行人目标追踪
下一篇: Kalman 滤波一维移动目标追踪