中国IEEE
关于我们 | 会员登陆 | 收藏本站 | 留 言 薄
 

 | 网站首页 | 电子知识 | 单片机知识 | 电路设计 | 微电子技术 | SCADA系统 | 资源下载 | 给我留言 | 谷歌商城 | 视频教程 | ieee | 
热门搜索关键字: 单片机教程 | 三极管 | 二极管 |  C语言汇编语言SCADA元器件模拟电子 |
cnieee.com baidu
栏目导航  
栏目更新推荐  
·8051单片机C语言数据采集程序
·99计数器C语言版本
·3x4矩阵键盘的扫描程序(C语言)
·51单片机串口调试程序(C语言)
·一些常用的软件滤波方法(C语言)
·一些常用的软件滤波方法
·volatile用法
·嵌入式实时程序设计中C/C++代码的优…
点击TOP(10)  
  • 此栏目下没有热点文章
  • 图片文章  

    C语言嵌入式系统编程…

    C语言嵌入式系统编程…

    C语言嵌入式系统编程…
     
    您现在的位置: 中国IEEE中国电气电子工程师网 >> 单片机知识 >> 编程语言 >> 单片机C语言 >> 正文

    一些常用的软件滤波方法(C语言)
    文章来源:不详 点击数: 更新时间:2008-5-5 【字体:
    (欢迎光临中国IEEE,希望本文能对您有所帮助http://www.cnieee.com)


    相关文章:

    单片机常用学习资料下载
    单片机加密破解的常用方法及应对策略
    PIC8位单片机汇编语言常用指令的识读(下)
    PIC8位单片机汇编语言常用指令的识读(中)

  • 上一个文章:

  • 下一个文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
     
    关于〖一些常用的软件滤波方法(C语言)〗的最新评论:

    1、限副滤波
    /*  A值可根据实际情况调整
        value为有效值,new_value为当前采样值  
        滤波程序返回有效的实际值  */
    #define A 10


    char value;


    char filter()
    {
       char  new_value;
       new_value = get_ad();
       if ( ( new_value - value > A ) || ( value - new_value > A )
          return value;
       return new_value;
            
    }


    2、中位值滤波法
    /*  N值可根据实际情况调整
        排序采用冒泡法*/
    #define N  11


    char filter()
    {
       char value_buf[N];
       char count,i,j,temp;
       for ( count=0;count<N;count++)
       {
          value_buf[count] = get_ad();
          delay();
       }
       for (j=0;j<N-1;j++)
       {
          for (i=0;i<N-j;i++)
          {
             if ( value_buf>value_buf[i+1] )
             {
                temp = value_buf;
                value_buf = value_buf[i+1];
                 value_buf[i+1] = temp;
             }
          }
       }
       return value_buf[(N-1)/2];
    }    


    3、算术平均滤波法
    /*
    */


    #define N 12


    char filter()
    {
       int  sum = 0;
       for ( count=0;count<N;count++)
       {
          sum + = get_ad();
          delay();
       }
       return (char)(sum/N);
    }


    4、递推平均滤波法(又称滑动平均滤波法)
    /*
    */
    #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);
    }


    5、中位值平均滤波法(又称防脉冲干扰平均滤波法)
    /*
    */
    #define N 12


    char filter()
    {
       char count,i,j;
       char value_buf[N];
       int  sum=0;
       for  (count=0;count<N;count++)
       {
          value_buf[count] = get_ad();
          delay();
       }
       for (j=0;j<N-1;j++)
       {
          for (i=0;i<N-j;i++)
          {
             if ( value_buf>value_buf[i+1] )
             {
                temp = value_buf;
                value_buf = value_buf[i+1];
                 value_buf[i+1] = temp;
             }
          }
       }
       for(count=1;count<N-1;count++)
          sum += value[count];
       return (char)(sum/(N-2));
    }


    6、限幅平均滤波法
    /*
    */  
    略 参考子程序1、3


    7、一阶滞后滤波法
    /* 为加快程序处理速度假定基数为100,a=0~100 */


    #define a 50


    char value;


    char filter()
    {
       char  new_value;
       new_value = get_ad();
       return (100-a)*value + a*new_value;
    }


    8、加权递推平均滤波法
    /* coe数组为加权系数表,存在程序存储区。*/


    #define N 12


    char code coe[N] = {1,2,3,4,5,6,7,8,9,10,11,12};
    char code sum_coe = 1+2+3+4+5+6+7+8+9+10+11+12;


    char filter()
    {
       char count;
       char value_buf[N];
       int  sum=0;
       for (count=0,count<N;count++)
       {
          value_buf[count] = get_ad();
          delay();
       }
       for (count=0,count<N;count++)
          sum += value_buf[count]*coe[count];
       return (char)(sum/sum_coe);
    }


    9、消抖滤波法


    #define N 12


    char filter()
    {
       char count=0;
       char new_value;
       new_value = get_ad();
       while (value !=new_value);
       {
          count++;
          if (count>=N)   return new_value;
           delay();
          new_value = get_ad();
       }
       return value;    
    }

    | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明网站地图 | 名站导航 | 管理登录 | 
    本站资源部分来自互联网,如侵犯您的权利,我们将予以删除  鲁ICP备08006092号
    本站欢迎同类网站做友情链接,QQ留言
    中国IEEE 中国电气电子工程师网 版权所有