【问题标题】:C++ Frequency response <-> Impulse responseC++ 频率响应 <-> 脉冲响应
【发布时间】:2013-06-06 16:45:50
【问题描述】:

我正在尝试根据所需频率响应计算实际频率响应。

fftSize = 128;
fs = 8000;

我有 2 个输入数组:f[] 和 aDesired[],它们都是实数,长度为 fftSize+1(包括 DC + Nyquist)。 f[] 数组在 0 和 fs/2 (0:4000) 之间呈线性间隔。 aDesired[] 数组是以 dB 为单位的增益或线性值。

我可以轻松更改 f[] 和 aDesired[] 的长度,因为我有一个可以提供任何大小输出的插值函数,但我认为这是一个很好的数字。

我想采用 ADesired[] 的 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[]

非常感谢

【问题讨论】:

标签: c++ signal-processing fft ifft


【解决方案1】:

试试 IT++,它用于物理层模拟。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-23
    • 1970-01-01
    • 2022-01-11
    • 2012-05-15
    • 2013-01-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多