目前我的硕士论文涉及结构动力学模拟。作为其中的一部分,我必须使用 FIR 滤波器过滤信号。从那个滤波器我知道频率响应(图片)。
代码是用 Python 编写的,我不确定如何应用 IFFT,因为我只有一个真实的输入。
感谢您的回答罗伯特·布里斯托-约翰逊!
在 python 中有一个叫做 irfft 的函数,它代表反实数 fft。因此,对于真正的输入来说是一个 ifft。但似乎时间信号出了点问题。我知道在这种情况下我没有阶段。但我猜对于信号处理中的滤波器,只有频率响应并从中计算脉冲响应是很常见的?所以应该有一个正确的方法来做到这一点......不幸的是,我不是信号处理方面的专家,目前我几乎被困在这个问题上。
更新:我认为正确的方法是在频率响应中添加零相位(所以 +0j)。对于ifft,第一个bin的值必须为0,从1-N/2我添加我的频率,因为我从响应中得到它,从N/2-NI添加共轭复数(因为相位为零,值只是按降序排列)。希望这能解决问题。