Bonjour,
je galère depuis deux jours.
J'ai un signal fréquentiel de 10 MHz à 40 GHz que je dois transformer en temporel
J'ai fait une TFD inverse toute simple et mon "Chefstain" veut que je vérifie que mon calcul est bon avec la fonction ifft... oui mais voilà, je n'arrive pas à la mettre en oeuvre !
Voici mon programme pour la TFDinv :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
#calcul par TFD inverse
for n in range(0,len(Freq)):
    SigFreq = 0
    for nz in range(0, len(Freq)-1):
        #écriture de la valeur du signal à la fréquence donnée
        z = complex(float(RealS21[nz]), float(ImS21[nz]))
        SigFreq0 = (abs(z)*exp(phase(z)*1j))*exp((2*1j*pi*(1/float(Freq[n]))*(float(nz)/float(len(Freq)))))
        SigFreq = SigFreq0+SigFreq
    SigFreq = SigFreq/float(len(Freq))
Pour IFFT :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
for nz in range(0,len(Freq)):
    SignalZ = signal(RealS21[nz],ImS21[nz])
    FFTinv = np.fft.ifft(SignalZ)
ça me retourne une erreur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
Traceback (most recent call last):
  File "R:/LABO HF/DEP HF/USER/PVincent/P114930/FFT inverse.py", line 135, in <module>
    FFTinv = np.fft.ifft(SignalZ)
  File "C:\Python27\lib\site-packages\numpy\fft\fftpack.py", line 246, in ifft
    n = shape(a)[axis]
IndexError: tuple index out of range
je sais que c'est de la façon que j'ai écrit ifft mais comme je n'y comprends rien, et que toutes les aides sur ce module sont in english... je ne m'en sors pas
Merci pour votre aide qui me sera très préciseuse !

Patricia