如果您知道自己在寻找什么,请将输入信号与您期望的副本相关联。基本上,实现一个匹配的过滤器。如果您想查看输入流何时为 -127、-63、0、63、127,请使用这些值作为系数实现直接形式的 fir 滤波器。然后寻找输出的最大值。具有这些系数的滤波器的最大输出发生在滤波器中的数据为 -127、-63、0、63、127 时。
谷歌“匹配过滤器检测”或“检测理论”甚至可能是“特征检测”
如果您不确切知道要查找的内容,或者您要查找的内容是可变的,那么它会变得更加复杂。然后,您将尝试实现一个过滤器,该过滤器的输出将为您提供有关正在发生的事情的信息。我在上面给出的示例将显示当输入序列发生时输出峰值。如果您随后看到以常规频率发生的尖峰,您会猜测输入事件以常规频率发生。
如果您将滤波器设置为 0、63、127 63 0,这与将旋钮一直向上转动相关,然后再次向下转动,并且在您的输出上看到上述尖峰出现,但最大振幅较低且时间较长发生相关性,这可能会告诉您,知道一直向上然后又向下,但比设计滤波器以获得最大响应的速度慢或快。
为了解决这个问题,您可以并行实现这些滤波器中的 3 个,一个用于慢速旋钮转动,一个用于中速旋钮转动,一个用于快速旋钮转动。然后查看 3 个输出,您会得到 3 个不同的相关性,它们可以更好地帮助您了解正在发生的事情