0

伙计们。

我在 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

这不是大小不匹配的问题,我把它掩盖了(另外,错误消息明确表示它是类型不匹配)。有任何想法吗?

4

1 回答 1

1

问题是我正在使用

numpy.empty() 

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

np.zeros(duration_s, np.int16, 'C')`

现在它可以正常工作了。

于 2015-04-06T10:58:26.460 回答