1

我从模拟输入(连接到电位器的 aa/d 转换器)中采样了一串数字(为了讨论的整数)。我很好奇如何实时识别数字中的模式。

也就是说,如果有人快速地把罐子一路上下转,我怎么认出来,而不是把它转到一半。或者如果他们连续三次上下转动它会怎样。如何将这些操作转换为不同的“事件”?这对我来说似乎特别棘手,因为这些事件中的每一个将发生的时间窗口将适度变化。

我可以想到一些快速、简单的方法来做到这一点,但没有什么我有信心的。我也很好奇如何将其扩展到多个不同的输入(即从光谱仪输入)。这会极大地改变事情吗?我什至不确定我应该搜索哪个主题领域。

4

2 回答 2

1

如果您知道自己在寻找什么,请将输入信号与您期望的副本相关联。基本上,实现一个匹配的过滤器。如果您想查看输入流何时为 -127、-63、0、63、127,请使用这些值作为系数实现直接形式的 fir 滤波器。然后寻找输出的最大值。具有这些系数的滤波器的最大输出发生在滤波器中的数据为 -127、-63、0、63、127 时。

谷歌“匹配过滤器检测”或“检测理论”甚至可能是“特征检测”

如果您不确切知道要查找的内容,或者您​​要查找的内容是可变的,那么它会变得更加复杂。然后,您将尝试实现一个过滤器,该过滤器的输出将为您提供有关正在发生的事情的信息。我在上面给出的示例将显示当输入序列发生时输出峰值。如果您随后看到以常规频率发生的尖峰,您会猜测输入事件以常规频率发生。

如果您将滤波器设置为 0、63、127 63 0,这与将旋钮一直向上转动相关,然后再次向下转动,并且在您的输出上看到上述尖峰出现,但最大振幅较低且时间较长发生相关性,这可能会告诉您,知道一直向上然后又向下,但比设计滤波器以获得最大响应的速度慢或快。

为了解决这个问题,您可以并行实现这些滤波器中的 3 个,一个用于慢速旋钮转动,一个用于中速旋钮转动,一个用于快速旋钮转动。然后查看 3 个输出,您会得到 3 个不同的相关性,它们可以更好地帮助您了解正在发生的事情

于 2013-04-30T00:21:04.230 回答
0

您是否考虑考虑信号的运行差异(其微分)?

于 2013-04-26T19:30:08.840 回答