求教高手解析下这个滤波程序......
这是一个别人写好的防抖滤波程序用于计算交流电压有效值防抖
形参num为通道号,Value为最小变化量
phase_result为全局变量,保存8次测量有效值.
请高手分析他是怎么完成滤波功能的....
特别是
for (i = 0; i < 8; i++)
{
phase_result = phase_result;
}
这句,为什么全赋这个值.
uint queue(uchar num, uint value)
{
uchar i, j;
int queue_tmp;
long tmp,tmp1;
for (i = 0; i < 8; i++)
{
queue_tmp = phase_result;
}
for (i = 0; i < 8; i++)
{
for (j = i; j < 8; j++)
{
if (queue_tmp < queue_tmp)
{
tmp = queue_tmp;
queue_tmp = queue_tmp;
queue_tmp = tmp;
}
}
}
tmp = queue_tmp + queue_tmp + queue_tmp + queue_tmp;
if (tmp > phase_result)
{
tmp1 = tmp - phase_result;
}
else
tmp1 = phase_result - tmp;
if (tmp1 < value)
{
return (phase_result);
}
else if (tmp1 < (value << 1))
{
phase_result += (value >> 2);
return (phase_result);
}
else
{
for (i = 0; i < 8; i++)
{
phase_result = phase_result;
}
phase_result = (phase_result << 2);
return (phase_result);
}
} 等高人呢???????????
页:
[1]