我正在使用KissFFT的实数函数将一些真实音频信号转换。我感到困惑,因为我输入了一个有nfft个样本的实数信号,但结果是nfft/2+1个复杂频率项。
来自KissFFT的README:
实数(即非复数)优化代码仅适用于偶数长度的fft。它会并行地进行两个半长度的FFT(打包到实数和虚数中),然后通过旋转组合它们。结果是从DC到Nyquist的nfft/2+1个复杂频率项。
所以我没有具体的知识来解释结果。我的假设是数据像这样打包:
来自KissFFT的README:
实数(即非复数)优化代码仅适用于偶数长度的fft。它会并行地进行两个半长度的FFT(打包到实数和虚数中),然后通过旋转组合它们。结果是从DC到Nyquist的nfft/2+1个复杂频率项。
所以我没有具体的知识来解释结果。我的假设是数据像这样打包:
r[0]i[0]r[1]i[1]...r[nfft/2]i[nfft/2]
,其中r[0]将是DC,i[0]是第一个频率项,r[1]是第二个,依此类推。是这种情况吗?
r[nfft/2]
和i[fftn/2]
(即奈奎斯特)。 - Paul Rr [0]
和i [nfft / 2 +1]
。 这些将是直流和奈奎斯特偏移吗? - Steve Barnanfft/2
),即使这些的虚部是不需要的。 - Paul R