Transformée de fourier classique

Soyez le premier à donner votre avis sur cette source.

Snippet vu 11 382 fois - Téléchargée 30 fois

Contenu du snippet

Décomposotion en sinus et cosinus pour le traitement du signal (/!\ ce n'est pas la FFT)

Source / Exemple :


bool CxImage::DFT(int dir,long m,double *x1,double *y1,double *x2,double *y2)
{
   long i,k;
   double arg;
   double cosarg,sinarg;
   
   for (i=0;i<m;i++) {
      x2[i] = 0;
      y2[i] = 0;
      arg = - dir * 2.0 * 3.14159265358f * i / (double)m;
      for (k=0;k<m;k++) {
         cosarg = cos(k * arg);
         sinarg = sin(k * arg);
         x2[i] += (x1[k] * cosarg - y1[k] * sinarg);
         y2[i] += (x1[k] * sinarg + y1[k] * cosarg);
      }
   }
   
   /* Copy the data back */
   if (dir == 1) {
      for (i=0;i<m;i++) {
         x1[i] = x2[i] / m;
         y1[i] = y2[i] / m;
      }
   } else {
      for (i=0;i<m;i++) {
         x1[i] = x2[i];
         y1[i] = y2[i];
      }
   }
   
   return true;
}

A voir également

Ajouter un commentaire

Commentaires

cs_LordBob
Messages postés
2865
Date d'inscription
samedi 2 novembre 2002
Statut
Membre
Dernière intervention
11 mai 2009
8 -
tu n'avais pas deja deposé une source dans le meme style?
lpikachu58
Messages postés
351
Date d'inscription
samedi 2 février 2002
Statut
Membre
Dernière intervention
6 mai 2004
2 -
si mais cette transformée là est la décomposition classique en sinus cosinus et non la FFT avec l'algorithme du papillon
perig
Messages postés
358
Date d'inscription
vendredi 1 novembre 2002
Statut
Membre
Dernière intervention
5 septembre 2006
-
Merci pour ce source mais
pour le prototype,
"bool CxImage::DFT(int dir,long m,double *x1,double *y1,double *x2,double *y2)"

m c'est le nb d'échantillons
x1 c'est le tab des x
y1 le tab des y

mais
C’est quoi dir ?
Et a quoi correspond x2 et y2 a la fin du prog?
perig
Messages postés
358
Date d'inscription
vendredi 1 novembre 2002
Statut
Membre
Dernière intervention
5 septembre 2006
-
je crois avoir pigé,
dir c'est pour faire l'inverse ifft
c'est bien ca?

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.