[Matlab] Soucis avec fft()

Répondre
Partager Rechercher
Bonsouar

Ca fait une semaine que j'ai un "bug" sous Matlab.

Je simule une sinusoide. Et j'essaye de constater que la puissance générée en spectre fréquentiel, sur exactement la fréquence de la sinusoide, est egale à la valeur efficace de ma sinusoide en temporel.

Mais ca marche pas, y a comme un facteur de racine de 2 entre mes deux résultat.

Si quelqu'un avait la gentillesse de m'aider.... je suis une m**** en Matlab et traitement du signal.

Code:
%%%%%%%%2048 échantillons sur 1 seconde%%%%%%
x= 1:1/2048:2-1/2048;

%%%%%%%%La sinusoide une fréquence de 128Hz%%%%%%%%%
mySin = sin(2*pi*128*x);

%%%%%%%%Génération de la transformée de Fourier %%%%%%%%
nb_points=2048;
FFTSinus=fft(mySin, nb_points);

%%%%%%%%Puissance générée par chaque unité de fréquence %%%%%%
PSinus=10*log10(2*(abs(FFTSinus).^2 +1)/(nb_points.^2));

figure(11)
semilogx(PSinus(1:2048/2))

%%%%%%%% Calcul de la valeur efficace en temporel %%%%%%%%%%%
testRMS=sqrt(sum(mySin.^2)/nb_points) %= 0.7071
testRMS2 = 1/sqrt(2) %= 0.7071

%%%%%%%%% Puissance générée par f=128Hz %%%%%%%%%%%%%%
Energie128= 2*(abs(FFTSinus(129))^2)/2048^2 %=0.5000 *va se pendre*
merci d'avance!
je sais pas trop je comprend pas tous
mais je sais calculer une fft a la main ca donne 391.87 reel 946.05 imaginaire en 129 tous le reste est a 0 bien sur
Bah j'ai obtenu un début de réponse au taff.

Si j'ai bien compris, il semblerait que quand on utilise une "boite noire" logicielle pour calculer une DFT, on se retrouve très souvent avec un coefficient de normalisation, racine(2) dans mon cas.

J'vais me servir de ton calcul pour tout refaire à la main, merci Cricri

edit: en fait c'etait pas ca, fallait que je mette ma valeur efficace au carré puisque c'est en terme de puissance qu'il faut faire le calcul et non en terme de volts "simple"
Je retombe sur mes pattes sans coefficient de normalisation. 0.7071^2 ~=0.5
oups en plus je t ai peut etre donne une htt (hartley) je sais plus trop en tous ca
ca trouve la frequence vu que c est le point 129 (0 a 2047 ) 128 htz

j ai ecrit sous excell ( m en sert aussi pour multiplier rapidement des nombre de plus de 1 million de chiffre )

je te dis pas le mal que j ai eu a trouver un site qui explique correctement la fft il y a 2 ans

http://craftac2.free.fr/spectre.xls
Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés