2015-04-05 2 views
0

de Numpy.Incompatibilité de type lors de l'utilisation des numéros

Im effectuer quelques FFT en python pour tester un algorithme de vocodeur, mais dans cette ligne de code

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

Il donne le message d'erreur: TypeError: tableaux de retour doivent être arrayType

Ce n'est pas problème de non-concordance de taille, j'ai compris cela (en plus, le message d'erreur indique explicitement qu'il s'agit d'une incompatibilité de type). Des idées?

+0

Qu'est-ce que Nfft dans le code ci-dessus ?? –

+0

Le nombre d'échantillons sur lesquels la FFT est calculée. Dans ce cas, 2048. –

Répondre

1

Le problème était que j'utilisais

numpy.empty() 

pour créer le tableau de output_time avec un argument de forme incorrecte. J'étais en train de créer une matrice avec un seul élément, qui était le tableau que je voulais, puisque lorsque j'ai imprimé le tableau, il est sorti entouré de deux crochets au lieu d'un. J'ai résolu ce problème en utilisant

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

et cela fonctionne maintenant correctement.