说明:
采一组队列去掉最大值和最小值
优点:
融合了两种滤波的优点。对于偶然出现的脉冲性干扰,可消除有其引起的采样值偏差。
对周期干扰有良好的抑制作用,平滑度高,适于高频振荡的系统。
- #define N 12
- char filter(void) {
- char i = 0, j = 0, temp = 0;
- char value_buf[N];
- int sum = 0;
- for(i = 0; i < N; i++){
- value_buf[i] = get_ad();
- delay();
- }
- for(j = 0; j < N - 1; 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;
- }
- }
- }
- for(i = 1; i < N - 1; i++) {
- sum += value_buf[i];
- }
- return (char)(sum / (N - 2));
- }
|