这个AD滤波算法是不是有问题啊?

2020-02-10 08:58发布

递推平均滤波法(又称滑动平均滤波法)
#define N 12
char value_buf[N];
char i=0;
char filter()
{
   char count;
   int  sum=0;
   value_buf[i++] = get_ad();
   if ( i == N )   i = 0;
   for ( count=0;count<N,count++)
      sum = value_buf[count];//?????
   return (char)(sum/N);
}

那个value_buf就付了一次值,如何求平均?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
18条回答
asdmaill
2020-02-11 08:22
for(k=0;k<10;k++)//将待排序数据传入排序缓存
    {
        sort_buff[k] = Motor_U[k];
    }
    data_sort(sort_buff);  //调用数据排序程序
    Motor_V = (sort_buff[1]+sort_buff[2]+sort_buff[3]+sort_buff[4]+
               sort_buff[5]+sort_buff[6]+sort_buff[7]+sort_buff[8])>>3;  //计算母线电压


//----------------------------------------------------------------
//数据排序程序
//----------------------------------------------------------------
unsigned int data_sort(unsigned int sort_buff[10])
{
    unsigned int  swap_data;
    unsigned char j=0,k=0;

         for(k=0;k<=9;k++)             //数据排序
         {   
            for(j=k+1;j<10;j++)
            {
                if(sort_buff[k]>sort_buff[j])
               {
                 swap_data  = sort_buff[k];
                 sort_buff[k] = sort_buff[j];
                 sort_buff[j] = swap_data;
               }

            }
         }
    return sort_buff[10];  
}

一周热门 更多>