ELI5:像带通这样的双二阶滤波器如何“知道”信号的频率?

信息处理 频率 双二阶
2022-01-29 13:01:32

我了解双二阶背后的代码,但我无法理解双二次公式中的 5 个系数如何如此精确地隔离频率,特别是考虑到它在计算过程中只考虑了最后两个样本。

这些双二阶滤波器如何计算出这些东西?无论如何,我都不是数学家,因此是 ELI5。

理想情况下,我正在寻找一个很好的类比,类似于 3Blue1Brown 的解释,即围绕一个圆圈缠绕一个波来解释傅立叶变换。

3个回答

双二阶有反馈,因此考虑所有采样,而不仅仅是最后两个:过去的结果包含在每个后续计算中。

共振结构将通过共振频率附近的一小部分频率,而拒绝其余部分。要了解如何通过谐振结构简单地隔离频率,请考虑我们如何操纵样本,例如将过去的结果添加到新的传入样本(这是反馈)将提供增长:如果我们希望这种增长在一个孤立的范围内频率,我们可以确保作为过去样本的输出与反馈到输入之间的相位使得样本将是相加的,而超出该范围的频率将是破坏性的。

要进一步了解这一点,首先要了解累加器(将每个新传入样本添加到通过添加的结果中)如何类似于所有先前样本的移动平均值,以及两者如何创建“低通滤波器”,我们平均越长越紧带宽将在 DC 附近(DC 是恒定电压的电子术语,通常表示频率等于 0 的恒定信号,因此平均值为“DC”)但对于累加器,我们只有一个系数。个样本的移动平均值是过去 N 个样本的平均值因此当我们得到每个新输出的新平均值时,称为“移动”。平均值是那些个样本的总和除以NNNN,因此累加器执行相同的求和操作(除以只是任意缩放)。N

如果我们改为以特定速率旋转该反馈,则该滤波器不会以 DC 为中心,而是以旋转频率为中心。由于 OP 已经说过他了解傅立叶变换,请注意这也将是针对特定频率或旋转计算傅立叶变换结果。

IIR 带通滤波器类似于递归正弦波发生器或振荡器。它使用前 2 个(或 N 个)输出来推断正弦波的下一个点,但幅度衰减(如果 IIR 稳定)。

双二阶还查看 3 个连续的输入值,并计算这 3 个点与递归振荡器频率的正弦波的相关程度。如果频率和相位接近,则在需要时将一些能量添加到输出,以使其达到与输入的估计波形幅度相关的某个幅度。

如果输入在所有错误的时间(与振荡阶段相反等)踢出递归方程,则递归将比自然衰减得更快,并最终取值足以抵消输入。或介于两者之间(过渡带)。高 Q 双二阶需要很长时间来启动和停止重复振荡。除非输入与递归公式的振荡结果的非衰减版本非常匹配,否则低 Q 可能几乎立即衰减。

因此,IIR 带通滤波器内的“知识”基本上是由其状态变量推断的递归正弦波幅度,这是先前输入冲击的历史是增加还是减少振荡幅度的结果(如其状态变量所描述的) ) 到它的当前值,或者首先让它开始(播种)。

此外,一些输入可能会泄漏到输出,因此 IIR 的输出可能是其自然正弦波振荡(在衰减或增强过程中)和输入延迟的某种混合。

特别是考虑到它在计算过程中只考虑最后两个样本。

它没有。biquad 携带其状态的最后两个样本,它会考虑(即五个系数中的两个),以及当前传入的样本和两个先前的样本(即五个系数中的另外三个)。

因为它考虑了最后两个状态,所以双二阶可以——本质上——响应输入信号的当前状态和它的速率它形成了一个共振结构的数字等效物——就像一个在弹簧上弹跳的质量。就像弹簧上的质量将完美地跟随慢动作但忽略快速运动一样,双二阶的状态将完美地跟随输入中的缓慢变化,但将忽略快速变化。