Bonjour a tous
J ai un petit souci, tout de meme genant avec matlab. Je fais du traitement du signal et j ai fait des enregistrements audio. Je sais exactement quelle frequence j envoie et ensuite j'enregistre.
Mon probleme est le suivant: quand j'envoie une frequence, disons par exemple 400 Hz, que je fais mon traitement du signal avec ma FFT, la frequence que je vais recuperer ne sera pas egale a 400Hz mais a une valeur toujours un peu inferieure, 398Hz notamment. J ai regarde la difference et elle reste lineaire en fonction de la frequence. Donc ma question est : d' ou provient cette erreur?
Mon programme est le suivant:
Ma frequence d echantillonnage est de 44100 et j ai 888832 points
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 [signal, Fe, nbits, readinfo] = wavread(nom_fichier) N=length(signal) signal_fft=fft(signal,N) signal_fft=signal_fft(1:N/2) signal_fft=abs(signal_fft) f=(0:N/2-1)*Fe/N graph=plot(f,signal_fft)
L'erreur serait-elle due au fait que la longueur de mon signal n'est pas egale a une valeur de 2 puissance x?
Merci d'avance pour vos reponses
Partager