我正在使用声学模拟器,它可以为我输入的任何(正实际)频率提供(复杂的)频率响应。
我想生成一个 1024 点的脉冲响应。
我相信我在这里掌握了基本技术:https ://dsp.stackexchange.com/questions/13883/convert-frequency-response-to-impulse-response
但是,我想从命令行实现它。
模拟器生成一个看起来像这样的文件(注意我已经缩短了数字以使其更具可读性):
# Run name = pro-ch0-pc1-gmr
# Run owner = umby
# Cfg file = sphere_source.cfg
# Frequency = 0.000000 + i*1077.566280 (171.5000 Hz)
#
# 1 2 3 4 5 6 7 8 9 10 11 12 13
# imic xm ym zm re(inc) im(inc) abs(inc) re(scat) im(scat) abs(scat) re(tot) im(tot) abs(tot)
0 +1.4E+00 +0.0E+00 +9.4E-02 -9.8E-04 -5.2E-02 +5.2E-02 -5.4E-03 +1.2E-02 +1.3E-02 -6.4E-03 -4.0E-02 +4.0E-02
1 +1.4E+00 +0.0E+00 +1.8E-01 -3.8E-03 -5.2E-02 +5.2E-02 -5.1E-03 +1.3E-02 +1.3E-02 -9.0E-03 -3.9E-02 +4.0E-02
:
:
etc
第二列是以弧度/秒为单位的角频率
第三列是以Hz为单位的频率
第 11 列和第 12 列是 Re(z) 和 Im(z),即该频率的频率响应的实部和虚部
第 13 列是频率响应的幅度,我猜这可以与前两列之一一起丢弃
所以我的问题是:我怎样才能处理这个文件并得到一个脉冲响应?