我正在开发一款半增强现实应用,其中平滑而准确的数据非常重要。传感器返回的值在0到4度之间跳跃,不幸的是它使生活变得困难。
我尝试过实施临时解决方案:
private float[] Total = new float[11];
private float Average(){
if (counter == Total.length - 1) {
counter --;
for (int i = 0; i < Total.length - 1; i++) {
Total[i] = Total[i + 1];
}
}
float tot = 0;
for (int i = 0; i < Total.length - 1; i++) {
tot = tot + Total[i];
}
return tot/counter;
}
但这不符合我的需要任何建议或帮助吗?
答案 0 :(得分:0)
您在FIR实施中使用移动均值过滤器。尽管移动平均滤波器非常简单,但它仍然是一项常见任务的最佳选择:降低随机噪声,同时保持急剧的阶跃响应。
FIR实现的缺点是计算时间随着滤波器的大小而增加。您可以考虑在IIR过滤器中实现过滤器,但对于这个简单的应用程序,我不推荐它。
另一项改进可能是使用window function来最小化边缘效应。
您可以使用汉明窗here
找到一个很好的低通滤波器示例