我需要找到一些通用的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/