Bonjour à tous !
Voilà maintenant quelques temps que je cherche à tracer le spectre de fourier de quelques signales sonores enregistrés sur mon PC (ceci dans le cadre d'un projet de fin d'année).
J'essaie de faire ça avec python car mon programme d'info repose principalement sur python.
J'utilise sur python le module fft de numpy et j'obtiens assez facilement la fft de mon signal ainsi, cependant pour tracer un spectre de fourier, il faut tracer l'amplitude en fonction de la fréquence, et je ne vois malheureusement pas comment faire ceci. Comment je fais pour relier mon tableau "array" d'amplitudes à un "array" de fréquences ?
from scipy.io import wavfile as w
import matplotlib.pyplot as plt
import numpy as np
def affiche_proprietes(filename): #retourne la fréquence d'échantillonage, le tableau des échantillons du son numérisé, et la durée de l'enregistrementF,T=w.read(filename,'r')
time=float(len(T))/float(F)
return (F,T,time)
def affiche_onde(filename): #Ici j'affiche simplement l'onde en elle même comme des logiciels tels qu'Audacity pourraient le faireson,F,T,resolution,time=affich e_proprietes(filename)
x=np.linspace(0,time,len(T))
plt.plot(x,T)
plt.show()
J'effectue ensuite ma fft de la façon suivant: Fft=np.fft.fft(T)
Ensuite je ne sais plus quoi faire, donc j'ai quelques questions:
-Dois-je prendre la partie réelle ou le module des résultats de ma fft pour tracer le spectre ?
-Comment construire l'axe des abcisses, donc des fréquences ?
Et je crois que c'est tout.
Petit information supplémentaire, je voudrais pouvoir tracer ce spectre pour retrouver la fréquence d'une note de guitare par exemple.
Voilà voilà merci d'avance pour votre aide !
-----