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:
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)
Ma frequence d echantillonnage est de 44100 et j ai 888832 points

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