我需要找到一些通用的C ++库,该库采用fft逆输出(fftw_complex格式,即两个double)并将此数据转换为图像文件(例如png)。我可以对dffts进行瀑布运算以获得2d数据(并使用10log10(rere + imim)来获取每个频率分量的幅度),但是我不知道哪个图像库可以工作。

我曾一次使用过一个名为zimage的旧程序,但似乎不再可用。我的Ubuntu 9.10系统上没有MATLAB(但我有Octave)

八度可以生成瀑布图像吗?我还需要将频谱图转换为WAV声音文件。

有任何想法吗??

最佳答案

最容易创建的图像格式是PNM。您可以将其打印为文本文件,然后使用大多数图形程序进行转换。这是Wikipedia页面上的示例:

P2 24 7 15
0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
0  3  3  3  3  0  0  7  7  7  7  0  0 11 11 11 11  0  0 15 15 15 15  0
0  3  0  0  0  0  0  7  0  0  0  0  0 11  0  0  0  0  0 15  0  0 15  0
0  3  3  3  0  0  0  7  7  7  0  0  0 11 11 11  0  0  0 15 15 15 15  0
0  3  0  0  0  0  0  7  0  0  0  0  0 11  0  0  0  0  0 15  0  0  0  0
0  3  0  0  0  0  0  7  7  7  7  0  0 11 11 11 11  0  0 15  0  0  0  0
0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0


将该文本保存在名为“ feep.pgm”的文件中,您将明白我的意思。

http://en.wikipedia.org/wiki/Netpbm_format

您必须将10log10信息缩放为像素值。

关于c++ - 从逆离散FFT到频谱图,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3338001/

10-10 20:12