kiss_fftr后跟kiss_fftri(窗口尺寸非常大)不会返回输入信号

时间:2018-08-07 03:37:43

标签: c++ signal-processing kissfft

我正在执行一个较短的音频片段(44100 * 14个样本)和一个较长的音频片段(44100 * 60 * 6个样本)之间的互相关。据我了解,因此我无法对FFT进行窗口处理。在测试kiss_fftr和kiss_fftri时,我发现反向操作会返回很大的噪音(但在节奏上仍与输入类似)。我已经确认我的输入音频是正确的,并且损坏仅在此函数内发生:

>>>import numpy as np
>>>lst = numpy.array(lst)

与输入相比,输出看起来像这样: 放大以显示细节:

如果您对内存感到疑惑,该程序是64位的,并且仅使用几GB的ram(只有几gg,没什么大的:P)

1 个答案:

答案 0 :(得分:3)

不同的FFT库使用不同的缩放因子,和/或在其FFT和IFFT实现之间以不同的方式分配缩放因子。

kiss_fft要求您在fft / ifft对期间或fft / ifft对之间按fft的长度进行缩放,以返回(大约在数字或舍入误差之内)原始时域输入向量。

在您的情况下,这是一个相当大的比例系数,因为数据的长度很大。