平均滤波器,
对输入数据去除最大值 最小值后,取其平均值
input parmeter:
status: 需要进行滤波处理的数据
num: 该function一共可同时对6组数据进行滑动滤波,num表示当前采用第几组filter Filter[6][10]
tap: filter的tap数, tap数最大为10 Filter[6][10]
return value:
滤波结果
UINT32 IIRFilterStatus(UINT32 status, UINT8 num, UINT8 tap)
{
UINT8 i,j;
UINT32 countValue = 0;
static UINT32 Filter[6][10] = {0};
UINT32 cache[10] = {0};
for(j = (tap-1); j>0; j--)
{
Filter[num][j] = Filter[num][j-1];
}
Filter[num][0] = status;
for(i = 0; i < tap; i++)
cache[i] = Filter[num][i];
for(i = 0; i < tap; i++)
for(j = 1; j < (tap-1), j++)
{
if(cache[j-1] < cache[j])
{
SWAP(cache[j-1], cache[j]);
}
}
for(i=1; i<(tap-1); i++)
{
countValue += (cache[i])/(tap-2);
}
return countValue;
}