在安卓中使用低通滤波器的加速度计

4
我想在我的应用程序中使用Android的加速度计。在文档中给出了以下内容:
   final float alpha = 0.8;

   // Isolate the force of gravity with the low-pass filter.

   gravity[0] = alpha * gravity[0] + (1 - alpha) * event.values[0];

但是低通滤波器的工作原理如下:
    output = alpha*input + (1-alpha)*previousoutput;

我的疑问是为什么我们把重力作为输入,传感器事件作为之前的输出?应该反过来才对。

1个回答

1

从技术上讲,它使用两个输入的线性混合:mix(α,x,y) = α * x + (1-α) * y

现在mix(α,x,y)等同于mix(1-α,y,x)。 因此您可以按所需反转信号,使alpha = 0.2,一切都将正常工作。


谢谢,我明白了。问题是我混淆了alpha作为时间常数和我不知道线性混合。 - nayab

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接