我有关于使用FFT的问题。使用功能getBand(int i)微量我可以提取特定频率的振幅和做漂亮映射它。巨大的。

然而,这是一个问题好奇心的更。当我在看从播放同一宋两两次使用相同的频率(所以幅度应该是相同的)提取的值,但我得到非常不同的值 - 这是为什么

0.0,0.0,0.0,0.0,0.0,0.08706585,0.23708777,0.83046436,0.74603105,0.30447206
0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.08706585,0.4790409,0.9608221,0.83046436,0.74603105
有帮助吗?

解决方案

您确定输入正是在这两种情况下一样的吗?如果你只是把一首歌的随机段那么FFT的输出会的非常的在歌曲不同的出发点不同。

其他提示

在MP3解码可以是薄片状和/或引入在FFT常规的缓冲剂可以是薄片状,(不同长度的寂静前述的系列)。 在这种情况下,它看起来像在导入是在第二输出约2步骤越大。

然后,如果在其中的FFT被执行的时间间隔比FFT窗口的大小,在一个差更长导入会导致在一系列相当不同部分的FFT窗土地,这可以解释的很不同的值以后在输出。

在的情况应该是更清楚,如果可以增加“时间分辨率”(用量为每给定时间执行的FFT的) - 或增加FFT窗口大小,所以FFT测量的arent疏完成。 Idealy它们应重叠之前,我们可以预期,以匹配步骤的完成出扫描之间的图案。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top