使用Numpy的ifft时类型不匹配

时间:2015-04-05 22:46:56

标签: python numpy signal-processing fft 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:返回数组必须是ArrayType

这不是一个大小不匹配问题,我把它掩盖了(加上,错误信息明确表示它是类型不匹配)。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

问题在于我正在使用

numpy.empty() 

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

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

现在它可以正常工作。