人
我在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
这不是一个大小不匹配问题,我把它掩盖了(加上,错误信息明确表示它是类型不匹配)。有什么想法吗?
答案 0 :(得分:1)
问题在于我正在使用
numpy.empty()
使用不正确的形状参数创建output_time数组。我实际上创建了一个带有单个元素的矩阵,这是我想要的数组,因为当我打印数组时,它出现在两个方括号中,而不是一个。我使用
解决了这个问题np.zeros(duration_s, np.int16, 'C')`
现在它可以正常工作。