算术平均滤波法适用于对一般的具有随机干扰的信号进行滤波。这种信号的特点是信号本身在某一数值范围附近上下波动 ,如测量流量、液位;
基本方法:按输入的N 个采样数据,寻找这样一个 Y ,使得 Y 与各个采样值之间的偏差的平方和最小。
编写算术平均滤波法程序时严格注意:
一、为了加快数据测量的速度,可采用先测量数据存放在存储器中 ,测完 N 点后 ,再对 N 个数据进行平均值计算;
二、选取适当的数据格式,也就是说采用定点数还是采用浮点数。
其程序如下所示:
#include <stdio.h>
// 定义滤波数据类型
typedef int filter_type;
// 函数声明
filter_type filter(filter_type value_buf[], int num);
// 算术平均滤波函数
filter_type filter(filter_type value_buf[], int num)
{
int sum, i;
sum = 0;
for(i=0; i<num; i++)
sum += value_buf[i];
return (filter_type)(sum/num);
}
//打印测试
void main()
{
filter_type ave;
filter_type a[5]= {55, 44, 88, 99, 11};
ave = filter(a, sizeof(a)/sizeof(filter_type));
printf("%d", ave);
}
输出结果:(55+44+88+99+11)/5 = 59.4

本文详细介绍了算术平均滤波法的基本原理及其在信号处理中的应用,尤其适合于有随机干扰的信号滤波。文章通过具体实例展示了如何编写算术平均滤波法的程序,并提供了完整的代码实现。
2266

被折叠的 条评论
为什么被折叠?



