作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 DSP 的新手,我有一个关于信号过滤的问题。正如我在 Internet 上看到的,IIR
和 FIR
滤波器通常用于过滤信号。此外,我还看到了另一种过滤信号的方法,即:频域滤波器(如在 Aquilca C++ 中),它应用矩形或砖墙窗口并对信号执行乘法。
我知道我们可以在时域(使用卷积)或频域(使用乘法)上进行过滤,但我的问题是:
为什么我们不能简单地使用频域滤波方法而不是 IIR 或 FIR?因为我认为生成一个窗口函数比生成一个 IIR 滤波器简单得多。
谢谢
最佳答案
在频域中通过乘法应用窗口会导致循环卷积,这会污染结果。 (例如,卷积的结尾将环绕到过滤结果的开头。)
但是您可以通过滤波器脉冲响应的长度对信号进行零填充,并使用更长的 FFT 来获得线性滤波器卷积。但是矩形砖墙具有很长(理论上无限)的脉冲响应,因此所需的零填充量接近无限。
砖墙滤波器在 FFT 区间或频率采样点之间也有令人讨厌的频率响应(巨大的波纹)。如果您想要一个近乎平坦的频率响应滤波器,则无事可做。
开发一个具有足够平坦的频率响应(区间或频率点之间)以及足够短的脉冲响应的窗口并非易事。
IIR 滤波器通常需要比频域滤波器少得多的计算。但是重叠添加或重叠保存 FFT 快速卷积比长 FIR 滤波器卷积更快。
但首先,您需要生成一个频域滤波器,该滤波器不具有对于您的 FFT 大小来说太长的脉冲响应(导致循环卷积环绕问题)。
关于filter - 频域滤波器与 IIR 和 FIR 滤波器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34581355/
我是一名优秀的程序员,十分优秀!