2015-04-05 1 views
0

ребята.Тип несоответствия при использовании Numpy's ifft

Im выполнение некоторых 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

Что такое Nfft в приведенном выше коде ???? –

+0

Число выборок, по которым вычисляется БПФ. В этом случае 2048. –

ответ

1

Проблема заключалась в том, что я использовал

numpy.empty() 

для создания массива output_time с неправильным аргументом формы. Я на самом деле создавал матрицу с одним элементом, который был массивом, который я хотел, так как это, когда я печатал массив, вышел из двух квадратных скобок вместо одного. Я решил эту проблему, используя

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

и теперь он работает правильно.