2

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

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

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

对于块大小 = 2,我得到诸如 17.0、1.0、15.0、1.0、12.0、0.0、12.0 等值

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

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

这里的输入数组是一个字节数组,代表一个音频文件。使用的理想块大小是多少?

4

1 回答 1

2

更改变换长度时数字不同的原因有两个:

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

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

于 2013-11-15T03:17:07.197 回答