滤除较大波动有BUG,取消
This commit is contained in:
parent
d49f35ffeb
commit
afe80d0695
|
@ -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;
|
||||||
|
|
Loading…
Reference in New Issue