Tfd en java...

mnr -  
 mnr -
bonjour...

je travaille en java sur le traitement du signal. J'ai un problème dans l'implantation de la Transformée de Fourier. C'est que le code ne donne pas des résultats désirés... voici la méthodes:

public CSignal TFourier(){

Signal r = new Signal(other, taille, duree, pas),
im = new Signal(other, taille, duree, pas);
double f1, f2, t;

CSignal cs1 = new CSignal(r, im);
for(int i=0; i<taille; i++){

f1 = 0; f2 = 0;
for(int j=0; j<taille; j++){

t = (2*Math.PI*i*j/taille);
f1 += valeurs[j]*Math.cos(t);
f2 -= valeurs[j]*Math.sin(t);
}
cs1.r.valeurs[i] = (float)f1;
cs1.r.temps[i] = i*cs1.r.pas;

cs1.i.valeurs[i] = (float)f2;
cs1.i.temps[i] = i*cs1.i.pas;
}
return cs1;
}

EXPLICATION: CSignal est une class pour les signaux complexes. Un signal complexe est une composition de deux signaux "re" et "im"...

voilà... je serai content si quelqu'un puisse m'aider ou m'orienter... à+
A voir également:

1 réponse

choubaka Messages postés 39984 Statut Modérateur 2 105
 
salut

et c'est quoi le problème exactement ?
0
mnr
 
bonjour...

merci choubaka...

le problème est dans les résultats. Par exemple je n'obtiens pas pour une porte le sinusCardinal, ni pour un sinusCardinal une porte et même avec d'autres exemples...

je ne sais pas si java permet de manipuler directement des complexes. j'ai peur que ce soit une perte de précision en faisant le sinus et le cosinus au lieu de l'exponentiel:
si (sin x) est approché et aussi (cos x), alors est ce que (sin x) * (sin x) + (cos x) * (cos x) = 1?

voilà, je ne sais pas si vous voyez le problème... en tous cas merci bien de votre aide, c'est gentil....
0