滑动滤波函数

滑动滤波函数

滑动滤波函数

    INT16U digital_slide_filter(INT16U *data, INT16U len, INT16U value) { INT16U i; INT16U max = data[0], min = data[0]; INT32U sum = 0; for(i = 0; i < len - 1; i++) { if(max < data[i]) { max = data[i]; } if(min > data[i]) { min = data[i]; } data[i] = data[i + 1]; sum += data[i]; } data[i] = value; if(max < data[i]) { max = data[i]; } if(min > data[i]) { min = data[i]; } sum += data[i]; sum = sum - max - min; return sum / (len - 2); }