MKL FFT bin 零实部和虚部

问题描述

我正在尝试使用 MKL's ComputeForward 方法做一些 ffts。有时我在实部和虚部上得到零。我,.e 我正在对以 1.024 Msps 采样的 16K 音调的 20480 个样本的浮点数进行 FFT,因此每个 bin 的分辨率为 50 Hz。与 496K 对应的 bin 9920 是 0+0i。 其余的 10240 个 bin 似乎是正确的。 我已经在 Octave 上完成了 FFT,那个 bin 应该适合浮点数。

什么会导致这种情况?

注意:

奇怪的是,失败的 bin 是关于 16K 音的对称,即 16K 音在 bin 320,而 9920 是从右边开始的第 320 个 bin。

解决方法

英特尔 MKL 不正式支持 Matlab/octave,因此可能导致错误。这可能可以通过使用支持的语言来解决,例如 C/C++、DPC++ 和 Fortran。

https://software.intel.com/content/www/us/en/develop/articles/oneapi-math-kernel-library-system-requirements.html

https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/MKL-FFT-bin-zero-real-and-imaginary-parts-part-II/m-p/1296917#M31708