2015-04-05 69 views
0

伙计们。使用Numpy's ifft时类型不匹配

林执行一些FFT的在python测试一个声码器的算法,但在这个代码行

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)) 

它产生的错误消息: 类型错误:返回数组必须的数组类型

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

+0

以上代码中的Nfft是什么? – 2015-04-05 23:18:44

+0

计算FFT的样本数。在这种情况下,2048。 – 2015-04-05 23:21:30

回答

1

的问题是,我使用

numpy.empty() 

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

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

解决了这个问题,现在它工作正常。