关于过滤器的一般文档

信息处理 过滤器 过滤器设计 低通滤波器
2021-12-20 09:22:15

我已经在 StackOverflow 上发布了这个问题。我有一个建议在这里寻求更好的答案。

为了使问题更简洁,我对数字滤波器的介绍很感兴趣,任何资源都很好。

但首先,如果有人能指出一些解释这个过滤器的资源(在 Android 中使用),我会很满意:

http://gitorious.org/rowboat/frameworks-base/blobs/671a6ff4be11b3e2d8eb017e0c7a78e6133fb2b8/services/sensorservice/SecondOrderLowPassFilter.cpp

我感兴趣的是过滤器参数的选择方式。虽然我可以不假思索地复制它,但我想我应该在使用它之前了解它背后的基本概念/想法。

谢谢,

尤利安

3个回答

您可以通过对以下模拟低通原型滤波器进行双线性变换来得出系数的表达式

H(s)=w02s2+(w0/Q)s+w02

在哪里w0是截止频率。

您可以在 Wikipedia 上查找双线性变换

Android 应用程序中使用的过滤器是巴特沃斯过滤器,因为选择的 Q 值为1/2. 请注意,在构造函数中,计算 Q 的倒数并将其分配给变量 iQ,该变量用于计算系数。另请注意,变量 K 保存指定截止频率的“频率扭曲”值。您可以在上面的链接中找到有关频率扭曲现象的更多信息。

您可以找到许多使用双线性变换设计数字滤波器的示例。我找到了这个,它与 Android 示例非常接近。

https://ccrma.stanford.edu/~jos/filters/filters.html是对数字滤波器的一个非常好的和彻底的介绍您的特别示例是一个非常简单的二阶或四阶低通滤波器。如果您使用“Biquad”对象,您将获得二阶巴特沃斯滤波器。如果您使用“CascaddBiquad”对象,您将获得所谓的 4 阶 Linkwitz Riley 滤波器(但不是 4 阶 Butterworth)。实现是相当具体的。多做一点工作,您就可以做一些更通用且适用于所有应用程序的事情。

我发现对我很有帮助的第一个参考资料是The Scientist's and Engineer's Guide to Digital Signal Processing我认为它的强项在于它旨在让读者熟悉 DSP 的概念和术语,而无需深入研究数学。这种策略适合我作为软件工程师的学习风格和背景,并且重点关注 EE。这些天来,我总是以这种方式处理新主题,试图首先理解高级概念,然后通过其他更详细/数学重的信息源深入挖掘细节。