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

it2023-08-02  78

一、处理思想

连续采集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

 

最新回复(0)