24

对于我目前在 C++/Qt 中的项目,我需要一个库(首选 LGPL),它可以从信号(基本上是双精度数组)计算频谱图。我已经将 Qwt 用于 GUI 部分。

有什么建议么?谢谢。

4

4 回答 4

19

把你自己的频谱图放在一起是相当容易的。步骤是:

  1. 窗口函数(相当简单,例如 Hanning)
  2. FFT(FFTW 将是一个不错的选择,但如果许可是一个问题,那么选择 Kiss FFT 或类似的)
  3. 计算频域分量的对数幅度(简单:log(sqrt(re * re + im * im))
于 2010-01-25T16:55:09.760 回答
11

“如何创建频率与时间图?” 列出了几个库,每个库都可以从信号计算频谱图。

从我自己的答案中复制并粘贴:

一些从音频数据生成频谱图/瀑布图的源代码:

Image to Spectrogram与上述实用程序的方向相反。

于 2012-06-21T05:49:58.083 回答
1

您可以使用 fftw (fftw.org) 来计算频谱图,您仍然需要绘制数据,但这应该不是问题

于 2010-01-25T16:53:23.323 回答
1

您可以从此处使用 FFT 代码。它使用 C++ 模板元编程来提高效率。作者在此处提供了完整的源代码。

建议将此代码包含在 Eigen 中,以使用模板化(类型友好)代码。

于 2015-08-20T14:28:19.690 回答