原创 统计一个数组中相同数的个数

2009-12-15 09:59 2282 6 6 分类: MCU/ 嵌入式

在AD采样中常用到软件滤波,现在一些常见的如中值滤波、均值滤波等,根据应用不同选取不同的滤波算法,有没有一种通用的滤波算法呢!本文提出一种通过统计相同值的个数,然后再取最大的个数的值来实现一种通用的滤波算法。


理论依据,在AD采样中,往往正确值的个数是最多的,所以只要找到个数最多的值就可以了,其他的大多都是干扰。


算法还需要完善!


/*
             统计相同数的个数
*/
unsigned char a[]={64,55,87,55,87,69,87,87,64,87,45,87,56,76};
unsigned char Midvalue;
unsigned char counter[14],countdata[14];//counter统计相同数的个数,countdata存相同数的值
main()
{
 unsigned char i,j,temp,m,k,Eque;
 for(i=0;i<11;i++)
 {
  for(j=0;j<i;j++)
  {
   if(a<a[j])
   {
    temp=a;
    a=a[j];
    a[j]=temp;
   }
  }
 }
 Midvalue=a[5];
 if(Midvalue<=25)
 {
  for(i=0;i<Midvalue+25;i++)
  {
   for(m=0;m<14;m++)
   {
    if(a[m]==i) counter[m]++;
   }
  } 
 }
 else
 {
  for(m=0;m<14;m++)counter[m]=0;
  for(i=Midvalue-25;i<Midvalue+25;i++)
  {
   
   for(m=0;m<14;m++)
   {
    if(a[m]==i)
    {
     counter[k]++;
     countdata[k]=i;
     Eque=1;
    }
    
   }
   if(Eque)
   {
    Eque=0;
    k++;
   }
   
  }
 }
 while(1);
}

文章评论0条评论)

登录后参与讨论
我要评论
0
6
关闭 站长推荐上一条 /2 下一条