递推中位平均值滤波算法C语言版本
递推中位平均值滤波算法
基本原理
在递推中位值平均滤波法中,首先需要对信号进行中位值滤波处理,即将信号中的每个数据点替换为其前后若干个数据点的中位值。这样可以有效地去除信号中的噪声和异常值,使得信号更加平滑和稳定。
代码实现
// 创建一个函数
char filter(char New_ Data,char Queue[],char n){
char i , max, min;int sum;
Queue [0] = New_Data;/新采样值入队列
max = Queue [0]:
min = Queue [0];
sum = Queue [0];
for(i= n-1; i!= 0; ,i-- ){
if(Queue [i] > max)
{max = Queue [i];}//比较并更新最大值
else if(Queue [i]< min)
{min = Queue [i];}//比较并更新最小值
sum = sum + Queue [i];//追加到和值
Queue [i]= Queue [i-1];//更新队列
}
i = n-2;
sum = sum-max-min;
sum= sum/i; //平均值= (和值-最大值-最小值)/(队列长度-2)
return((char)sum); //返回滤波结果