begin process at 2012 02 15 08:32:34
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Visual Basic & VB.NET

 > 

Archives Visual Basic

 > 

Maths

 > 

Comment se débarasser du racine de -1 dans la TFD?


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Comment se débarasser du racine de -1 dans la TFD?

dimanche 13 mars 2005 à 16:03:31 | Comment se débarasser du racine de -1 dans la TFD?

PavICF

La formule que j'ai trouvé est la suivante:
résultat(f) = Somme(k)k=0N-1 * s(k) * e2Pi * racine(-1) * f * k
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!

mardi 15 mars 2005 à 10:38:11 | Re : Comment se débarasser du racine de -1 dans la TFD?

Flachy Joe

Réponse acceptée !
Tu cré un type complexe :
Type complex
  real as double
  imag as double
end type

puis tu ecris les opération sur les complexe :
function sommeC (c1 as complex, c2 as complex) as complex
 sommec.real=c1.real+c2.real
 sommec.imag=c1.imag+c2.imag
end function

etc...

et tu réecris ton algo avec pour la "racine de -1" le nombre I
function I() as complex
I.real=0
I.imag=1
end function

L'exponentielle complexe peut etre remplacé :
e(i.x) = cos(x) + i.sin(x)

Je te conseil d'autre part d'utiliser l'algo de la FFT (Fast Fourier Transform) qui est apparement mieux que la DFT (Direct Fourier Transform).

Flachy Joe
mardi 15 mars 2005 à 21:11:26 | Re : Comment se débarasser du racine de -1 dans la TFD?

PavICF

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.
mercredi 16 mars 2005 à 13:23:30 | Re : Comment se débarasser du racine de -1 dans la TFD?

Flachy Joe

Réponse acceptée !
Je peut t'envoyer l'algo de la FFT codé en VB, pour ce qui est de la comréhension, c'est un peu obscure pour moi aussi...
Mail moi  : flachyjoe @ hotmail.com

Flachy Joe
jeudi 24 novembre 2005 à 19:55:07 | Re : Comment se débarasser du racine de -1 dans la TFD?

Sphaxs

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.

Sphaxs



Cette discussion est classée dans : racine, formule, débarasser, tfd


Répondre à ce message

Sujets en rapport avec ce message

texte ----> formule [ par crazycode ] bonjour,je recherche un module permetant de transformer un texte en nombre example:sin(-5^2)deverais donner 0.422est t'il posible de faire cela avec u racine carrée [ par gogoprog ] Bonjour,est-ce que quelqu'un sait comment calculer une racine carrée?merci d'avance Chaine + Formule en VBA [ par obolokemom ] Bonjour, J'ai une chaine de caractère "aaa" dans une cellule, et une formule quelconque, disons somme(1;2)Je cherche à les concaténer, c.à.d. obtenir Pilotage de formule Crystal Report 7 avec VB5 [ par gape ] Bonjour,Je cherche un moyen pour récupérer le contenu d'une formule de Crystal Report.J'essaie d'utiliser PEGetFormula (CRPE32.DLL) mais je n'y arrive problème de formule avec vba excel [ par hervé ] je souhaiterais intégrer, une valeur de variable d'une cellule excel (exemple : la valeur de la cellule B5), dans une formule que je rentre dans une a Formule à "étirer" sous VBA [ par Melinda ] j'aimerais, comme sous Excel, crée une formule, qu'il sear possible d'étirer sur les cases contiguées avce le petit carré noir. ce serait du genre de Formule -> Résultat [ par Denis ] Comment remplacer une formule par son résultat ? Merci d'avance


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,468 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales