使用 Numpy 的 ifft 时类型不匹配

Type mismatch when using Numpy's ifft

伙计们。

我在 python 中执行了一些 FFT 以测试声码器算法,但在此代码行中

for i in range(0, duration_s, Nfft):
    output_time[i:i+Nfft] = np.fft.ifft( np.multiply(carr_fft, np.fft.fft(in_samples[i:i+Nfft]) , Nfft) )

它产生错误信息: TypeError: return 数组必须是 ArrayType

这不是大小不匹配问题,我已经解决了(另外,错误消息明确指出这是类型不匹配)。有什么想法吗?

问题是我使用的是

numpy.empty() 

使用不正确的形状参数创建 output_time 数组。我实际上是在创建一个只有一个元素的矩阵,这是我想要的数组,因为当我打印数组时,它被包含在两个方括号而不是一个方括号中。我使用

解决了这个问题
np.zeros(duration_s, np.int16, 'C')`

现在可以正常工作了。