Supernaz
Messages postés9Date d'inscriptionmardi 29 mars 2005StatutMembreDernière intervention14 janvier 2008
-
29 mars 2005 à 14:15
cs_otan
Messages postés1Date d'inscriptionmercredi 1 mars 2006StatutMembreDernière intervention10 mars 2006
-
10 mars 2006 à 21:09
bonjour,
je souhaiterais pouvoir extraire une frequence a partir d'une sinusoide
echantillonnée contenue dans un vecteur. Aparament, l'algorithme de
Goertzel, derivée de la FFT (transformée de Fourier rapide), presente
quelques avantages en ce qui concerne mon probleme.
Or, je ne trouve rien d'interessant sur le net concernant cet
algorithme. Si quelqu'un peux me venir en aide, ou me donner quelques
URL, ce serait avec joie.
ma methode serait de ce type (programmation objet en C++):
Supernaz
Messages postés9Date d'inscriptionmardi 29 mars 2005StatutMembreDernière intervention14 janvier 2008 29 mars 2005 à 15:47
wowowo!!
merci pour ces info mais je comprend pas tout ....
par exemple
k = Fs * N / Fe, mais je ne connais pas Fs, c'est justement ce que je veux chercher.
et q(0), q(1), x(n), qu'est-ce au juste?
pour preciser peu etre un peu les choses, mon projet est basée sur une
eolienne, qui tourne et qui delivre une sinusoide (echantillonnée,
valeurs contenues dans un tableau). a partir de ca et d'une frequence
d'echantillonage, je voudrais recuperer la frequence delivrée par cette
eolienne.
ricky78
Messages postés126Date d'inscriptionjeudi 5 juin 2003StatutMembreDernière intervention11 juillet 2006 29 mars 2005 à 16:17
Fe c'est la frequence d'échantillonnage de la sinusoide de l'eolienne
Fs est la frequence recherchée, tu fais donc une boucle de la frequence min de l'eolienne a sa frequence max de rotation et pour CHAQUE point de frequence tu calcul le k, le coefficient alphak, le echantillon q(n) et enfin le module.
Le module max correspondra à la frequence de rotation de l'eolienne.
les q(n) correspondent à des étapes de calcul et le x(n) à l'echantillon de ton tableau.
si tu a un tableau du genre
0 10
1 15
2 6
3 -1
4 -9
...
tu commence avec x(0) = 10q(n) x(n) + ak * q(n-1) - q(n-2) pour n 2 à n = N
exemple avec ak = 1
soit q(0) 10 + ak* 0 - 0 10q(1) x(1) + ak * q(0) - 0 soit q(1) 15 + ak * 10 - 0 = 25q(2) x(2) + ak * 25 - 10 soit q(2) 6 + ak*25 - 10 = 21
.....
des que tu as tout les qn, tu calcul le module pour chaque frequence, le module max est la frequence de ton tableau
la presicion dépend du nombre de calcul de frequence cherchée