J'essaie de lisser et interpoler certaines données périodiques en python en utilisant scipy.fftp. J'ai réussi à prendre le fft des données, enlever les fréquences d'ordre supérieur au-dessus de wn (en faisant myfft [wn: -wn] = 0) et ensuite reconstruire une version "lissée" des données avec ifft (myfft). Le tableau créé par le ifft a le même nombre de points que les données d'origine. Comment puis-je utiliser ce fft pour créer un tableau avec plus de points.Obtenir la sortie ifft à une résolution différente
x = [i*2*np.pi/360 for i in range(0,360,30)]
data = np.sin(x)
#get fft
myfft = fftp.fft(data)
#kill feqs above wn
myfft[wn:-wn] = 0
#make new series
newdata = fftp.ifft(myfft)
J'ai aussi été capable de recréer manuellement la série à la même résolution que démontré ici Recreating time series data using FFT results without using ifft
mais quand j'ai essayé upping la résolution du tableau x valeurs qu'il ne m'a pas donné la bonne réponse soit.
Merci à l'avance
Niall
Merci pour la réponse Jaime, Le seul problème est que change l'amplitude, que je voudrais préserver. Est-ce aussi simple que, vous avez doublé la longueur de la fft de sorte que l'amplitude est réduite de moitié? – nrob
Salut Jamie. Pour l'enregistrement (comme vous le savez probablement) pour obtenir l'amplitude correcte, vous avez juste besoin de trier la normalisation. Le ifft se normalise par la longueur du fft, que nous avons artificiellement long. Donc, pour corriger l'amplitude, vous devez multiplier par len (f _)/len (f) – nrob