算法学习笔记之滑动平均滤波算法

来源:互联网 发布:网络醉了是什么意思 编辑:程序博客网 时间:2024/05/20 04:48

      滑动平均滤波算法只采样一次,将一次采样值和过去的若干次采样值一起求平均,得到的有效采样值即可投入使用。如果取N个采样值求平均,存储区中必须开辟N个数据的暂存区。每新采集一个数据便存入暂存区中,同时去掉一个最老数据,保存这N个数据始终是最新更新的数据。采用环型队列结构可以方便地实现这种数据存放方式。

程序代码如下:
char value_buff[N];                     //N相当于选定一个窗口大小,对窗口数据做平均!
char i=0;
char filter()
{
     char count;
     int sum=0;
     value_buff[i++]=get_data();
     if(i==N)
         i=0;              //当数据大于数组长度,替换数据组的一个数据  相当于环形队列更新,先进先出!
for(count=0;count<N;count++)
       sum=value_buff[count];
return (char)(sum/N);

}

优点:
   对周期性干扰有良好的抑制作用,平滑度高
   适用于高频振荡的系统 


缺点:
   灵敏度低
   对偶然出现的脉冲性干扰的抑制作用较差
   不易消除由于脉冲干扰所引起的采样值偏差
   不适用于脉冲干扰比较严重的场合
   比较浪费RAM

0 0
原创粉丝点击