[其他] 中位值滤波法

[复制链接]
909|1
 楼主| mickit 发表于 2023-10-29 22:00 | 显示全部楼层 |阅读模式
中位值滤波法能有效克服偶然因素引起的波动或采样不稳定引起的误码等脉冲干扰;
对温度 液位等缓慢变化的被测参数用此法能收到良好的滤波效果 ,但是对于流量压力等快速变化的参数一般不宜采用中位值滤波法;
基本方法:对某一被测参数连续采样 n次(一般 n 取奇数) ,然后再把采样值按大小排列 ,取中间值为本次采样值。


  1. #define N   11
  2. char filter()
  3. {  char value_buf[N], count,i,j,temp;
  4.     for ( count=0;count<N;count++)
  5.     {  value_buf[count] = get_ad();    delay();   }
  6.     for (j=0;j<N-1;j++)
  7.     {  for (i=0;i<N-j;i++)
  8.          {  if ( value_buf>value_buf[i+1] )
  9.              {temp = value_buf; value_buf = value_buf[i+1]; value_buf[i+1] = temp;  }
  10.          }
  11.     }
  12.     return value_buf[(N-1)/2];
  13. }


MessageRing 发表于 2023-10-30 12:06 | 显示全部楼层
这个排序会浪费大量资源吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则

89

主题

1561

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部