Spectrogram C++库

gre*_*eth 23 c++ fft scientific-computing spectrum spectrogram

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

有什么建议?谢谢.

Pau*_*l R 18

将您自己的频谱图组合起来相当容易.步骤是:

  1. 窗函数(相当琐碎,例如汉宁)
  2. FFT(FFTW将是一个不错的选择,但如果许可是一个问题,那么去Kiss FFT或类似)
  3. 计算频域分量的对数幅度(平凡:log(sq((re*re + im*im))

  • 由于log(sqrt(x))=(1/2)log(x),因此可以在没有sqrt()的情况下使其运行更快 (2认同)
  • @DarenW - 实际上 - 因为我们通常使用 dB,所以我们可以只做 10*log10(x) 而不是 20*log10(sqrt(x))。 (2认同)

Dav*_*ary 11

"我如何创建频率与时间图?" 列出了几个库,每个库都可以根据信号计算谱图.

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

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

频谱图的图像与上述实用程序的反方向相反.