我正在运行声学模拟。我输入一个频率并得到一个复数;该频率的频率响应。
我希望生成 1024 个样本的脉冲响应(假设我的输出采样率为 44.1kHz)
我该怎么做?
我想我已经迈出了第一步:取奈奎斯特频率 22.05kHz,并将其切成 512 等份。所以每个切片的带宽为 22050/512 Hz
现在我将这些频率输入模拟器并返回 512 个复数;第一个将是 0+0i 对应于 0Hz
现在我遵循的指令是:'现在将 0Hz 视为对称点,并添加 511 个负频率。
所以我有 { Re(511) + i.Im(511), ..., Re(1) + i.Im(1), 0 + 0i, Re(1) + i.Im(1), .. ., Re(511) + i.Im(511), }
1023 个频率。
现在我很困惑。我不知道我在做什么了。
显然我需要 IFFT 这个,这会给我一个 1023 样本脉冲响应?
有人可以帮我把脚放回地面吗?
MatLab 代码会是什么样子?
(另外,有没有什么方法可以从 Bash shell 使用 Python 或类似的东西来做到这一点?)