Transformee de fourier discrete

Contenu du snippet

Petit programme permettant de calculer la transformée de Fourier Discrète de la fonction
f(x) = x*(1-x).

N'hésiter pas à mettre des commentaires.

Source / Exemple :


#include <stdio.h>
#include <stdlib.h>
#include <math.h>

#define max 10
#define pi 3.1415926535897932385E0

int main(int argc, char *argv[])
{
  
  FILE *output;
  output=fopen("fourier.dat", "w");
  
  double h;
  double x;
  int i,j,k;
  double f[max+1]
  double imag, real;
  
    
  h = 1.0/(max-1); /* pas */
    
  // On calcul les valeurs de f(x)=x*(1-x) 
  // avec un pas de h
  for (i = 0; i < max; ++i)
  {
  
  x = h*i;
  f[i] = x*(1-x);
    
  }
  
  
   for (j=0; j<i; j++)			/* boucle pour l'index de frequence */
   {
      real=imag=0.0;			/* variables a zero */
      for (k=0; k<i; k++)		/* boucle pour la somme */
      {
         real+=f[k]*cos((2*pi*k*j)/i);
         imag+=f[k]*sin((2*pi*k*j)/i);
               
      }
      fprintf(output, "%d %f %f %f\n", j, real, real/i, imag/i );
   }
   printf("donnees sauvegardees dans fourier.dat.\n");
   
   fclose(output);
   
  system("PAUSE");	
  return 0;
}

A voir également

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.