[Users-fr] TR: Problème bizarre

classic Classic list List threaded Threaded
1 message Options
Lesept Lesept
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

[Users-fr] TR: Problème bizarre

Bonjour

 

J’ai un problème étrange avec Scilab, et je me casse les quelques neurones qui me restent à essayer de le comprendre.

Mon programme génère un signal et le filtre. Il le fait en boucle pour tester plusieurs valeurs du signal.

Pour filtrer, je génère un gabarit de filtre et je passe dans le domaine fréquentiel par fft puis ifft.

Rien de bien sorcier…

 

Le programme fait les étapes suivantes :

-          Calcul du gabarit du filtre

-          Boucle for

o   Calcul du signal initial

o   Autocorrélation du signal initial

o   Filtrage

o   Autocorrélation du signal filtré

-          Fin boucle

Normalement, avec les paramètres que j’ai, le maximum d’autocorrélation du signal initial est une valeur proche de 140. C’est mon critère pour constater que les résultats sont bons.

 

Le problème est le suivant : 2 cas

1 : si je calcule le gabarit. Dans ma boucle, le second calcul d’autocorrélation (ligne 61) fait que la génération du signal initial à l’étape suivante est fausse (son autocorrélation devient bien plus élevée que 140), mais ce signal est généré par une fonction sans rapport avec le filtrage et les autres calculs. Si je ne calcule pas l’autocorrélation du second signal (ligne 61 commentée), tout est bon…

2 : si je laisse le gabarit à 1 (ligne 48 commentée), tout est bon aussi. Les différentes versions du signal initial sont bonnes, que je calcule ou non l’autocorrélation du signal filtré.

 

En bref, il y a une interaction entre les lignes 48 et 61 que je n’arrive pas à trouver, et qui provoque un calcul faux de ma fonction générant le signal (Gene), placée en début de programme…

 

J’ai aussi remarqué que si je lance le programme avec les options qui donnent des résultats faux, puis que je commente les lignes qui posent problème et que je le relance, la première version du calcul (premier pas de la boucle) est fausse puis les autres sont correctes. Ceci malgré le clear en début de programme.

 

Je m’interroge sur la fonction clear, dont je pensais qu’elle effaçait les variables. Ca ne doit pas être aussi simple puisque le programme conserve un souvenir de l’exécution précédente.

 

Pour info : j’utilise Scilab 5.5.2 sous Windows 7.

Merci de votre aide…

 

Fabrice Auzanneau

 

 


_______________________________________________
users-fr mailing list
[hidden email]
http://lists.scilab.org/mailman/listinfo/users-fr

Test.sce (2K) Download Attachment
Loading...