-
22-09-2019 - |
题
对于我当前的 C++ / Qt 项目,我需要一个库(首选 LGPL),它可以根据信号(基本上是双精度数组)计算频谱图。我已经将 Qwt 用于 GUI 部分。
有什么建议么?谢谢。
解决方案
将您自己的频谱图放在一起将相当容易。步骤是:
- 窗口函数(相当微不足道, 例如汉宁)
- FFT(FFTW 将是 一个不错的选择,但如果许可是一个 问题然后去 Kiss FFT 或 相似)
- 计算对数幅度 频域分量 (琐碎:log(sqrt(re * re + im * im))
其他提示
“如何创建频率与时间图?” 列出了几个库,每个库都可以根据信号计算频谱图。
从我自己的答案中复制并粘贴:
- SoX - 声音交换 包括 频谱图源代码
- 大胆 包括 频谱图源代码
- 格尔弗 包含瀑布频谱显示频谱源代码
- 使用 fftw 计算的源代码 频谱图 音频流的
- 更多使用 OpenAL 和 fftw 来计算的源代码 频谱图 对于音频流
- “C# 中带有声谱图的声控录音机” 通过杰夫·莫顿
- 地形学 似乎包括 频谱图源代码
- iTunes 光谱图
图像到频谱图 与上述实用程序的方向相反。
您可以使用FFTW(fftw.org)来计算频谱,你仍然需要绘制的数据,但是这不应该是一个问题。
可以使用FFT码从此处一个 >。它使用C ++模板元编程的效率。完整源是由作者此处
这是建议以包括此代码到本征供其使用的模板化(类型友好)码。
不隶属于 StackOverflow