频率响应之外的脉冲响应的数值计算

信息处理 有限脉冲响应 频率响应 冲动反应
2022-02-17 15:09:12

目前我的硕士论文涉及结构动力学模拟。作为其中的一部分,我必须使用 FIR 滤波器过滤信号。从那个滤波器我知道频率响应(图片)。频率响应

代码是用 Python 编写的,我不确定如何应用 IFFT,因为我只有一个真实的输入。


感谢您的回答罗伯特·布里斯托-约翰逊!

在 python 中有一个叫做 irfft 的函数,它代表反实数 fft。因此,对于真正的输入来说是一个 ifft。但似乎时间信号出了点问题。我知道在这种情况下我没有阶段。但我猜对于信号处理中的滤波器,只有频率响应并从中计算脉冲响应是很常见的?所以应该有一个正确的方法来做到这一点......不幸的是,我不是信号处理方面的专家,目前我几乎被困在这个问题上。

更新:我认为正确的方法是在频率响应中添加零相位(所以 +0j)。对于ifft,第一个bin的值必须为0,从1-N/2我添加我的频率,因为我从响应中得到它,从N/2-NI添加共轭复数(因为相位为零,值只是按降序排列)。希望这能解决问题。

1个回答

我建议采用频率采样设计方法,它会产生线性相位 FIR 滤波器。您在等距网格上采样所需的幅度,添加线性相位项,然后通过逆 DFT 计算脉冲响应。产生的脉冲响应通常是加窗的。我已经在这个答案中解释了细节,其中还包括一些 Matlab/Octave 代码。请注意,窗口不是在那个简单的代码片段中完成的。