Accueil > Mathématiques > espaces de fonction > transformée de fourier discrète
transformée de fourier discrète
Publié le 17 août 2015, dernière mise-à-jour le 17 août 2015, 1 visites, visites totales.
- N points forment une fonction f ( f(0) , f(1)...f(N-1) ). On suppose que la fonction est périodique ( on rajoute une infinité de blocs identiques de N points à gauche et à droite).
Alors cette fonction est égale à N sommes de fonctions sinusoïdales An
- Analyse d’un son
- fichier wav :
import wave f=wave.open(_NomFich,'r') _params=f.getparams() # ((1, 2, 44100, 18, 'NONE', 'not compressed')) N=_params[3] s=f.readframes(N) #16b : 2 char/donnee fe = _params[2]*1.0
on crée alors
tt = np.arange(0.0,0.0+N, dtype=np.float64)/fe X=[S16b2Valeur([ord(s[i]),ord(s[i+1])]) for i in range(0,2*N,2)] _valeurs=numpy.array(list(X), dtype=np.float64) fourier = fftpack.fft(sinux)/np.size(_valeurs) resultat=np.fft.fftshift(fourier)+0j _coefficients=[[(0.0+i-N/2)*fe/N,resultat[i]] for i in range(len(resultat)) ] # [ [fq1,c1] , [fq2,c2] ... ]
La fonction intiale est alors égale à
- fichier wav :