FFT 的内存要求

信息处理 fft
2022-01-24 11:50:47

我有一个内存有限的系统。所以基本上问题是这样的:如果我有(比如说)24KB 的数据空间和 4096 个单精度浮点数(16KB)的数据样本,我可以对数据进行 FFT 吗?更一般地说,执行 FFT 所需的最小数据空间是多少?

1个回答

CMSIS-DSP FFT 函数的文档中

FFT 函数就地运行。也就是说,保存输入数据的数组也将用于保存相应的结果。输入数据很复杂,包含 2*fftLen 交错值,如下所示。

可以通过这样一种方式实现 FFT,即它不需要额外的缓冲区,而是使用输入数组的内存进行输出。这种方法通常被称为“就地”计算。从上面的引文中,我认为 CMSIS-DSP 库正是这样做的(尽管没有源代码我们无法确定)。

所以在这种情况下,是的,16 KB 的内存大小就足够了。

可以从蝶形图中理解就地计算是可能的,例如参见此处