Bonjour,
Je cherche à utiliser la fonction FFT de numerical recipie en C mais le résultat que j’obtiens n’est pas cohérent.
(pour reference, http://www.developpez.net/forums/d74.../probleme-fft/ , mais j'utilise l'algorythme de la 3eme edition, a partir du livre)

Je ne pense pas que le problème vienne de la fonction en elle-même vu que j’ai recopié exactement leur travail.
Mon problème peut donc venir soit de la façon dont je rempli mon tableau de valeur à partir de la fonction (tableau de N points, rangés de la manière suivante REEL IM REEL IM…, donc de taille 2*N)
La fonction est définit comme suit :
f(t)=sin(w1t+fi1)+sin(w2t+fi2),0≤t≤10

Pour remplir ce tableau j’utilise des boucles for (les variables sont définis avant, l’idée est de mettre tout les points réels tout les 024….20 du tableau qui correspondent au point de 1 a 10.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
for (j=0;j<(2*n);j+=2) 
{ 	   
         if ((0<=j) && (j<=20)) data2[j] = sin(w1*j+FI1)+sin(w2*j+FI2) ; 
         else data2[j]=0;
}
for (j=1;j<(2*n);j+=2)
data2[j]=0;
Mon problème peut aussi venir de l’utilisation de la macro SWAP, utilisé dans la fonction FFT. Je me suis contenté d’un
#define SWAP(a,b)
Est-ce suffisant ?

Ou de l’appel de la fonction, pourtant tout me semble bon,
four1(data2,n,isign); (data2 mon tableau de donné, n, le nombre de point, de la moitié de la taille du tableau, isign = 1 ou -1)

Merci de votre aide,