Tfd en java...
mnr
-
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... à+
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:
- Tfd en java...
- Jeux java itel - Télécharger - Jeux vidéo
- Waptrick java football - Télécharger - Jeux vidéo
- Waptrick java voiture - Télécharger - Jeux vidéo
- Eclipse java - Télécharger - Langages
- Java apk - Télécharger - Langages
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....