PavICF
Messages postés17Date d'inscriptiondimanche 8 août 2004StatutMembreDernière intervention14 avril 2007
-
13 mars 2005 à 16:03
Sphaxs
Messages postés56Date d'inscriptionmardi 18 juin 2002StatutMembreDernière intervention27 mars 2009
-
24 nov. 2005 à 19:55
La formule que j'ai trouvé est la suivante:
résultat(f) = Somme(k)k=0N-1 * s(k) * e<SUP>2Pi * racine(-1) * f * k
</SUP>où:
f = fréquence
N = nombre de points dans le spectre et d'échantillons analysés (à moins que j'ai mal compri)
s(k) = valeur de l'échantillon à la position k: amplitude quoi
e = exponentielle
Je veux faire une routine qui utilise cette formule, mais le problème, c'est que je ne sais pas comment considérer ce racine(-1) dans le calcul.
Est-ce que quelqu'un pourait m'éclairer à ce sujet?
D'avance merci et bonne prog à tous!
PavICF
Messages postés17Date d'inscriptiondimanche 8 août 2004StatutMembreDernière intervention14 avril 2007 15 mars 2005 à 21:11
Alors là, vraiment, UN GRAND MERCI!
Pour être honnête, je ne pensais pas que le topic trouverait une réponse.
Cela va m'être très utile.
En ce qui concerne la FFT, j'ai aussi entendu dire que c'était plus rapide (ou plutôt je l'ai lu sur internet).
La raison principale pour laquelle j'ai finalement opté pour la TFD est qu'un de mes potes m'a expliqué à quoi correspondaient les notations de la formule que j'avais vu sur internet, et qu'il m'a donné la formule telle qu'il la connaissait.
Mon gros problème dans cette histoire est que je n'ai jamais vu ces formules en cours et, si j'ai cherché sur internet, je n'ai pas trouvé de docs assez complètes pour être de mon niveau de maths.
Donc, la FFT, je préférerais, mais je n'arrive pas à la comprendre (déjà que j'ai du mal avec la TFD).
Mais vu que t'as l'air de bien connaître la question, penses-tu avoir le temps de faire un petit tutoriel sur la question? Ou aurais-tu des adresses de sites web où le sujet est expliqué assez clairement pour quelqu'un qui n'a jamais abordé ces question?
En tout cas, encore merci, je vais essayer de creuser la question un peu plus de mon côté en attendant d'en savoir plus.
Bonne prog!
PS: je dis TFD pour Transgormée de Fourier Discrète, la même chose mais en français quoi.
Sphaxs
Messages postés56Date d'inscriptionmardi 18 juin 2002StatutMembreDernière intervention27 mars 20091 24 nov. 2005 à 19:55
Salut,
Je viens de tomber sur ton mess.
Je me suis intéressé à la FFT il y a un peu plus d'un an maintenant et je continu à m'y intéresser pour les besoins d'un projet avec un ami.
J'avais trouvé un pdf qui expliquait bien le calcul de la fft mais je ne remet pas la main dessus ...
La FFT demande beaucoup moins de calculs que la TFD, elle est donc nettement plus rapide. Par contre, pour calculer la FFT, il faut un nombre de valeurs égal à une puissance de 2.
En VB, j'utilise le module de calcul de la FFT fait par un certain MacCallais ou un truc dans le genre, tu le trouves très facilement sur VBFrance, la dernière version est la 2-B il me semble. Il fonctionne très bien et est relativement rapide, par contre il calcule tout, c'est a dire les valeurs réelles (le niveau en fonction de la fréquence) et les valeurs imaginaires (le déphasage en fonction de la fréquence), ces dernières ne sont pas toujours utiles.
De plus, il y a un effet de repliement dans les résultats, c'est à dire que pour un signal de 1024 valeurs par exemple, les 512 dernières valeurs sont la symétrie des 512 premières valeurs (théorème de Shannon).
Donc si tu veux le spectre d'un signal avec ce module, tu envois 2 puissance N valeurs et tu récupères les premières 2 puissance N-1 valeurs réelles.
Il te permet aussi de calculer 2 ou 3 autres trucs qui peuvent être utiles comme le niveau pour une seule fréquence, etc ... Par contre, de mémoire car ca fait un moment que je ne l'ai pas utilisé et je ne l'ai pas sous les yeux, il me semble que le calcul de la FFT se fait sur une fenêtre rectangulaire dans ce module, ce n'est pas terrible pour les valeurs limites de fréquence. Mais tu peux trouver les formules de pleins de fenêtres différentes sur internet si tu n'en as pas déjà trouvé.
En espérant t'avoir aidé.
Sinon, regarde mon code SAA - Sphaxs Audio Analyser sur VBFrance, c'était la première version, non terminée, du projet cité plus haut.