码迷,mamicode.com
首页 > 其他好文 > 详细

AD采样的平均值滤波

时间:2017-05-31 20:51:55      阅读:321      评论:0      收藏:0      [点我收藏+]

标签:问题   采样   als   滤波   均值滤波   ons   turn   nbsp   数据   

基本问题:单片机ad采样,连续采样十次,对这十次数据取平均值。

注意:最开始的一次就是用当次的数据,以后每更新一个数据就取当前数据加上前九个数据,取平均。

先看代码:

static int _filter(int m)
{
  static int flag_first = 0, _buff[10], sum;
  const int _buff_max = 10;
  int i;
  
  if(flag_first == 0)
  {
    flag_first = 1;

    for(i = 0, sum = 0; i < _buff_max; i++)
    {
      _buff[i] = m;
      sum += _buff[i];
    }
    return m;
  }
  else
  {
    sum -= _buff[0];
    for(i = 0; i < (_buff_max - 1); i++)
    {
      _buff[i] = _buff[i + 1];
    }
    _buff[9] = m;
    sum += _buff[9];
    
    i = sum / 10.0;
    return i;
  }
}

前九次(不足十个数据),用第一个数据补。  

 

AD采样的平均值滤波

标签:问题   采样   als   滤波   均值滤波   ons   turn   nbsp   数据   

原文地址:http://www.cnblogs.com/gaosheng12138/p/6925775.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!