【发布时间】:2012-11-06 02:14:40
【问题描述】:
实现低通滤波器的算法如下(来自维基百科):
for i from 1 to n
y[i] := y[i-1] + α * (x[i] - y[i-1])
在哪里
α = T/(tau + T)
T, 是周期,换句话说,是接收数据的时间间隔。并且,tau,是时间常数,定义为:
tau = RC.
好的,一切都清楚了。每个人似乎都对 α 提出了不同的值,但它打败了我——如何才能为这个值做出合乎逻辑的决定?
当然,R 和 C 的值不能使用 - 或者是吗?
有人知道如何确定 tau 的值,进而确定 α 的值吗?
谢谢大家!
【问题讨论】:
-
Alpha 将确定滤波器的截止频率,从而确定通过的频率。您需要确定您对特定应用程序的需求,然后您应该能够找到将频率插入 alpha 函数的示例。
-
场景是Android应用开发。例如实现指南针。如何确定变量“R”和“C”的值?
-
正如@user1801819 所说,您需要T 和fc。 T 来自
int getMinDelay()转换为 Hz,fc 将根据您的应用程序进行调整,也将是 Hz。我确定您已经看过 sensor overview,它包含有关使用传感器数据的信息。 -
T是什么我很清楚,因为我自己设置的。对不起,@Jason,user1801819 错了。您不能仅仅假设时间常数的倒数等于截止频率;我确实对信号和系统有所了解。如果我想调整,那么我就不会在这里提问。我提出这个问题是因为我想得到一个更清晰的定义,以帮助理解如何充分利用这些参数。我还想知道是否有一些公认的标准——我注意到很多人设置 tau = 0.2。我想知道他们为什么这样做。
标签: java android filter signal-processing android-sensors