欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

学习:通用软件滤波算法-算术平均滤波法

程序员文章站 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