滤除较大波动有BUG,取消

This commit is contained in:
95384 2025-01-22 15:42:33 +08:00
parent d49f35ffeb
commit afe80d0695
1 changed files with 25 additions and 25 deletions

View File

@ -21,31 +21,31 @@ float updateFilter(SL_LowPassFilter* filter, float new_input)
// 滤波新值 // 滤波新值
float filtedData = (1.0f - filter->alpha) * filter->previous + filter->alpha * new_input; float filtedData = (1.0f - filter->alpha) * filter->previous + filter->alpha * new_input;
//差值大于一定值认为有问题暂定4 // //差值大于一定值认为有问题暂定4
if((filter->x) - filtedData > 4 || (filtedData) - filter->x > 4 ) // if((filter->x) - filtedData > 4 || (filtedData) - filter->x > 4 )
{ // {
// 将有问题的值存起来 //// 将有问题的值存起来
(filter->x) = filtedData; // (filter->x) = filtedData;
// 使用上一次的正确值当结果 //// 使用上一次的正确值当结果
filtedData = filter->previous; // filtedData = filter->previous;
// 清空计数 //// 清空计数
filter->times = 0; // filter->times = 0;
}else // }else
{ // {
// 差值在允许范围内 //// 差值在允许范围内
// 差值合理一定时间后认为数据没问题 //// 差值合理一定时间后认为数据没问题
if(filter->times < 3) // if(filter->times < 3)
{ // {
filter->times++; // filter->times++;
// 没满足次数,使用旧值 //// 没满足次数,使用旧值
filtedData = filter->previous; // filtedData = filter->previous;
} // }
else // else
{ // {
// 将值存起来,直接使用滤波后的值 //// 将值存起来,直接使用滤波后的值
(filter->x) = filtedData; // (filter->x) = filtedData;
} // }
} // }
// 更新上一次的输出值 // 更新上一次的输出值
filter->previous = filtedData; filter->previous = filtedData;