数据处理算法
1、加权数据平滑处理
#define WEIGHT_Ki 0.8f
float EXPMEMA_function(float NewData,float OldDtat)
{
float ExpmemaTemp;
ExpmemaTemp = OldDtat*WEIGHT_Ki+(1.0f-WEIGHT_Ki)*NewData;
return ExpmemaTemp;
}
2、抽取突变
加权平滑的逆算法
float EXPMEMA_Contraryfunction(float NewData,float OldDtat)
{
float ExpmemaTemp,ExpmemaTemp_1;
ExpmemaTemp = OldDtat*WEIGHT_Ki+(1.0f-WEIGHT_Ki)*NewData;
ExpmemaTemp_1 = NewData - ExpmemaTemp;
return ExpmemaTemp_1;
}
3、移动平均数
在按堆数组出,先进先出,取数组内的平均值;
float StackAverage_function(queue T_data,float NewData)
{
unsigned char i;
float AVR_data;
queue.data[queue.read] = NewData;
queue.read = (queue.read+1)%queue.len;
AVR_data = queue.AVR_data;
for(i=0;i<queue.len,i++)
{
AVR_data += queue.data[i];
AVR_data \= 2;
}
return AVR_data;
}