C++ 频率响应<->脉冲响应

C++ Frequency response <-> Impulse response

本文关键字:响应 脉冲 gt lt 频率 C++      更新时间:2023-10-16

我正试图从期望的频率响应中计算实际频率响应。

fftSize = 128;
fs = 8000;

我有两个输入数组:f[]和desired[],它们都是Real和长度fftSize+1(包括DC + Nyquist)。f[]数组在0和fs/2(0:400)之间线性间隔。所需的[]数组要么是dB增益,要么是线性值。

我可以很容易地改变f[]和desired[]的长度,因为我有一个插值函数可以给出任何大小的输出,但我认为这是一个很好的数字。

我想采取所需的[]的IFFT来生成系数(具有可配置的长度),窗口和截断系数,然后FFT来显示实际响应将是什么,aActual[]。

当输入都是实数时,我如何对该数据进行IFFT/FFT ?或者我如何准备更多的数据?

是否可能有一个库,可以使用我的输入数据?

概要:

Input: f[129] : linearly spaced fc's
       aDesired[129] : Real values of linearly spaced gains at fc's (either in lin or log),
Processing:
       coeffs = IFFT(f, aDesired)
       coeff_new Truncate(window * coeff)
       aActual = FFT(f, coeff_new)
Output: aActual[]

多谢

试试it++,这是用于物理层模拟的。

http://itpp.sourceforge.net/4.3.0/