FFT窗口大小的意义

时间:2013-11-15 02:50:13

标签: java arrays math audio fft

我需要为一个非常庞大的阵列计算FFT。 (数组大小= 4198320)

我有一种方法可以计算FFT并计算给定块大小的大小。该方法的一个要求是块大小必须是2的幂。

对于给定的块大小,假设块大小为1024,它将计算较大阵列中每1024个元素的FFT和幅度。

对于Chunk size = 2,我得到的值如17.0,1.0,15.0,1.0,12.0,0.0,0.0等

对于块大小= 4096,我得到的值如2334.0,166.05,235.84,313.74等

这里的问题是,为什么我会为不同的块大小获得不同的幅度值,尽管输入数组是相同的。

这里的输入数组是一个表示音频文件的字节数组。什么是理想的块大小?

1 个答案:

答案 0 :(得分:2)

当您更改变换的长度时,有两个原因导致数字不同:

  • 窗口较长时,幅度必然会更大(这是一个总和)。
  • 窗口长度需要计算频率。

没有“理想”长度可供使用。更长的长度提供更“准确”的频率相关信息(更好的分辨率),更短的长度提供更“准确”的时间相关信息(更快的响应)。