虫虫首页|资源下载|资源专辑|精品软件
登录|注册

您现在的位置是:虫虫下载站 > 资源下载 > 单片机编程 > 单片机几种软件滤波程序示例

单片机几种软件滤波程序示例

  • 资源大小:5 K
  • 上传时间: 2014-12-26
  • 上传用户:caozijianlovenb
  • 资源积分:2 下载积分
  • 标      签: 单片机 软件滤波 程序

资 源 简 介


假定从8位AD中读取数据(如果是更高位的AD可定义数据类型为int),子程序为get_ad();

1、限幅滤波法(又称程序判断滤波法)
    A、方法:
        根据经验判断,确定两次采样允许的最大偏差值(设为A)
        每次检测到新值时判断:
        如果本次值与上次值之差<=A,则本次值有效
        如果本次值与上次值之差>A,则本次值无效,放弃本次值,用上次值代替本次值
    B、优点:
        能有效克服因偶然因素引起的脉冲干扰
    C、缺点
        无法抑制那种周期性的干扰
        平滑度差
/*  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、中位值滤波法
    A、方法:
        连续采样N次(N取奇数)
        把N次采样值按大小排列
        取中间值为本次有效值
    B、优点:
        能有效克服因偶然因素引起的波动干扰
        对温度、液位的变化缓慢的被测参数有良好的滤波效果
    C、缺点:
        对流量、速度等快速变化的参数不宜
/*  N值可根据实际情况调整
    排序采用冒泡法*/

相 关 资 源