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