过滤器简介

滤波器是现代技术中最常用的工具之一,在机器人的信号处理和控制的中有广泛的应用。理解过滤器的概念对于理解WPILib提供的各种类型的过滤器的实用性至关重要。

什么是滤波器?

备注

为了本文的方便,我们将假定所有数据均为一维的时间序列数据。显然,滤波器的概念并非仅仅如此,但对信号和滤波完整,严格的讨论超出了本文档的讨论。

那么,什么才是过滤器呢?简而言之,过滤器是从输入流到输出流的映射。也就是说,过滤器输出的值(原则上)不仅可以取决于输入的当前值,还可以取决于过去和将来的值的整个集合(当然,实际上,WPILib提供的滤波器只能数据流上实时实现;因此,它们只能取决于过去的输入值,而不能取决于将来的值)。这是一个重要的概念,因为通常我们使用滤波器来去除或减轻信号中不需要的动态特性。当我们过滤信号时,我们要修改信号随时间的变化。

使用滤波器的效果

降噪

滤波器最典型的用途之一就是降低噪声。降低噪声的滤波器称为低通滤波器(因为它允许低频“通过”,并阻止高频)。当前WPILib中包含的大多数滤波器实际上都是低通滤波器。

速率限制

滤波器通常也用于降低信号变化的速率。这与降噪密切相关,并且降低噪声的滤波器也往往会限制信号变化的速率。

边缘探测

与低通滤波器相对应的是高通滤波器,它只允许高频通过输出。高通滤波器很难用直觉理解, 但它被普遍用于边缘检测, 因为高通滤波器将反映输入的突然变化而忽略慢变化, 可以用于决定大幅不连续的信号。

相位滞后

实时低通滤波器不可避免的一个负面影响是“相位滞后”的引入。正如前面提到的,实时滤波器只能依赖于信号的过去值(我们不能通过时间旅行来获得未来值),因此当输入开始变化时,滤波后的值需要一段时间才能“赶上”。降噪越大,引入的延迟就越大。在许多方面,这是实时过滤基本的权衡,并且应该是您的过滤器设计的主要考虑因素。

有趣的是,高通滤波器引入了相位超前,而不是相位滞后,因为它们加剧了输入值的局部变化。