/*************************************************
中位值滤波法
A、方法:
连续采样N次(N取奇数)
把N次采样值按大小排列
取中间值为本次有效值
B、优点:
能有效克服因偶然因素引起的波动干扰
对温度、液位的变化缓慢的被测参数有良好的滤波效果
C、缺点:
对流量、速度等快速变化的参数不宜
*************************************************/
#include<stdio.h>
/* N值可根据实际情况调整 */
#define N 5
int filter_func()
{
int value_buf[N] = {1,9,3,2,1};
int count,i,j,temp;
/* 排序采用冒泡法 */
for (j=0;j<=N;j++){
for (i=0;i<=N-j;i++){
if (value_buf[i] > value_buf[i+1]){
temp = value_buf[i];
value_buf[i] = value_buf[i+1];
value_buf[i+1] = temp;
}
}
}
printf("---%d---\n",value_buf[(N-1)/2]);
return value_buf[(N-1)/2];
}
int main(){
filter_func();
return 0;
}