IV) Outils informatiques

Dans ce chapitre nous allons présenter plusieurs outils qui peuvent être utilisés pour simuler ou analyser les sources susceptibles d'être chaotiques. Ces outils représentent l'implémentation de l'une ou plus des méthodes déjà étudiées. Les deux premiers outils (CDA et TISEAN) sont des logiciels spécifiques et spécialisés, qui ont déjà fait l'objet d'utilisation dans beaucoup de références. Les deux derniers (MATLAB© et Scilab©) sont des outils généraux, où des implémentations personnalisées des méthodes de reconnaissance de chaos existent ou peuvent facilement être développées.

Nous mettrons l'accent sur Scilab, cousin « Open Source » de MATLAB, sous lequel nous avons développé une boite à outils appelée « IsItChaos ». La boite à outils est constituée de deux types de fonctions, le premier regroupe des fonctions Scialb qui exploitent la bibliothèque TISEAN, le deuxième type est constitué de méthodes directement implémentées sous Scilab.

Par la suite, trois classes d'applications qui peuvent bénéficier de notre boite à outils seront proposées. Des exemples de l'utilisation des fonctions de la bibliothèque sont donnés pour la première classe. Les deux classes d'application suivantes sont proposées comme une introduction pour de futurs travaux.


CDA et CDA pro [SPR01]

CDA « Chaos Data Analyzer »: C'est un logiciel sous MS-DOS commercialisé comme étant « 14 tests pour détecter du déterministe dans des données qui apparaissent aléatoires ». C'est un outil hautement spécialisé destiné à la détection du chaos et il existe sous deux versions, l'une standard « CDA » et l'autre professionnelle « CDA Pro ». C'est pratiquement le premier outil spécialisé dans le domaine qui a été utilisé dans de nombreuses études dès le début (1991).

Figure IV-1: Une copie de l'écran du logiciel CDA

Dans la forme standard, la taille de la série temporelle à explorer peut aller jusqu'à 16,382 points fournis dans un fichier texte « ASCII ». Le programme commence avec un menu dans lequel on trouve les options suivantes

  • Manipulation de données: pour visualiser les données, faire un lissage une différentiation ou une intégration numérique.

  • Graphe des données : pour visualise une reconstitution de l'espace de phase de la série temporelle (par variables à retard) à 2 ou 3 dimensions.

  • Distribution de probabilité : pour visualiser l'histogramme des valeurs de la série temporelle.

  • Interpolation polynomiale : pour visualiser le résultat d'une interpolation polynomiale avec différents paramètres possibles.

  • Spectre de puissance : pour visualiser le FFT (Fast Fourrier Transform) de la série temporelle.

  • Fréquences dominantes: pour visualiser les fréquences dominantes dans le spectre de la série temporelle.

  • Exposant de Hurst

  • Exposant de Lyapunov

  • Dimension de capacité

  • Dimension de corrélation

  • Fonction de corrélation

  • Matrice de corrélation

  • Tracé de l'espace de phase

  • Application de retour : construction de la section de Poincaré

  • Animation de la construction de Poincaré

  • Transformé d'ondelette

  • Identification par réseaux de neurones

  • Prédiction non linéaire

  • Génération de donnée de substitution.

Avec CDA Pro, en plus on peut estimer les faux voisins plus proches, l'entropie, les statistiques BDS, la complexité algorithmique et davantage de méthodes de prédiction. Cet utilitaire est construit par le langage BASIC et publié par « Physics Academic Software ». Il est principalement basé sur les travaux du pionnier professeur honoraire Julien C. Sprott (voire [SPR01]).

TISEAN

Le nom vient de TIme SEries ANalysis ou « Analyse des séries temporelles » qui est un projet de logiciel spécialisé dans l'analyse des séries temporelles par les méthodes basées sur la théorie de chaos. C'est un logiciel à libre usage (licence GPL) et référencé par [KAN01,SCH01].

Le langage utilisé est principalement le C et partiellement le Fortran. Ainsi, les routines fournies avec le paquet sont assez efficaces, et contrairement au CDA, peuvent bénéficier de la puissance maximale de la machine utilisée. En effet le paquet est distribué avec le code source et peut facilement être recompilé.

TISEAN est un ensemble d'algorithmes d'exploration non linéaires collectionnés par des groupes de travail durant plusieurs années, et mis à disposition du monde scientifique, mais avec un avertissement sur l'interprétation des résultats. En effet les routines disponibles n'étaient pas développées pour l'utilisateur commun, mais pour l'individu qui possède d'un minimum de connaissance dans le domaine et peuvent ainsi interpréter les résultats intelligemment. Dans la philosophie des auteurs, il est mentionné la phrase « chaque question compliquée a une réponse simple, mais en même temps fausse », soulignant ainsi le fait que les algorithmes fournis ne doivent pas être utilisés comme des boites noires et doivent être soumis à la critique du scientifique suivant les circonstances.

Tous les programmes du paquet s'exécutent en mode ligne de commande, avec certains options et paramètres propres à chaque commande. L'option -h associée à n'importe quelle commande génère un résumé d'aide.

La communication avec les routines se fait via des fichiers ou l'entrée/sortie standard. Par conséquent si l'utilisateur a besoin de visualiser les résultats il doit utiliser un logiciel tierce (ex. gplot). D'où est née l'idée chez nous d'interfacer TISEAN avec Scilab, à fin d'unifier la plateforme "utilisateur" et faciliter l'intégration des commandes TISEAN dans les simulations et scripts . Cette intégration sera plus détaillée par la suite.


Le paquet intègre un grand nombre d'utilitaires, un nombre qui est sujet à l'augmentation, car le paquet est toujours en état de développement et de croissance. Ces utilitaires peuvent être groupés comme suite:

  • Représentation de l'espace de phase

  • Test de non-stationnarité

  • Prédictions non linéaires

  • Réduction de bruit non linéaire

  • Exposants de Lyapunov

  • Entropie et dimensions

  • Divers test de non-linéarité (Données de substitution, Transformé de Fourrier itératif... etc.)

Sous MATLAB

C'est l'environnement de calcul scientifique par excellence. N'ayant probablement pas besoin de présentation, MATLAB constitue une plateforme complète de bibliothèque (toolbox) publiée par MATHWORKS et destinée à toutes les disciplines scientifiques ayant besoin de calculs numériques. Néanmoins, on constate l'absence ( jusqu'à la version 7) de toolbox dédié à l'analyse chaotique. C'est probablement dû au fait que les systèmes chaotiques sont considérés comme une classe de systèmes non linéaires dont l'analyse se rapporte aux toolbox des équations différentielles ou celui de l'identification non linéaire. Toutefois, les algorithmes de détection de chaos peuvent être très rapidement implémentés sous MATLAB selon le besoin.

Plusieurs études récentes ont utilisé MATLAB parmi lesquelles on cite [GAL01] où un nouveau toolbox à interface graphique a été introduit pour l'analyse des systèmes chaotiques discrets unidimensionnels (Map). Le même auteur a publié plusieurs études dans le sujet avec d'intéressants utilitaires d'exploration du chaos dans les modèles mathématiques.


Dans l'esprit d'encourager les outils libres et « open source », nous avons choisi de suivre les solutions basées sur Scilab© ou lieu de MATLAB©, sachant que les deux sont fortement compatibles et dans beaucoup de cas, le passage de l'un à l'autre est faisable.

Sous SciLAB©

Scilab© est un logiciel de calcul numérique scientifique qui fournit un puissant environnement de développement pour les applications scientifiques et de l’ingénierie. Scilab© est un logiciel distribué librement (licence GPL 2.0) avec le code source sur Internet depuis 1994. Initialement développé par l'institut INRIA, Scilab est actuellement sous le contrôle du « Consortium Scilab » au sein de DIGITEO.

Beaucoup d'études ont choisi d'utiliser Scilab comme plateforme de développement d'outils d'analyse chaotique. L'étude publiée dans [BUR01] a combiné Scialb avec d'autres utilitaires pour étudier le chaos dans les dynamiques des fluides.

Mais, c'est surtout dans le cadre du projet « ACI- SI TRANSCHAOS »1 que des outils intéressants ont été développés entièrement sous Scilab. Le projet a été clôturé par plusieurs publications parmi lesquelles la thèse d'Alan LAYEC (2006) [LAY01] ou une méthode de communication chaotique a été simulée sous Scilab avant d'être réalisée. Les outils développés et les simulations réalisées ont été regroupés dans une grande bibliothèque dénommée « Modnum ». Cette dernière est publiée en étant ''une boite à outils comportant des blocs et schémas Scicos©équivalent de Simulink© sous MATLAB) et des fonctions et scripts Scialb pour la construction de chaines de communication ''.

Parmi ces blocs et fonctions, on trouve 2:

  • Des composants utilisés dans les systèmes de communication à étalement de spectre (générateurs de séquences de Gold, PN et quasi-chaotiques)

  • De divers "oscilloscopes" Scicos, pour l'observation de diagrammes de l'œil, de constellations et un analyseur de spectre.

  • Des schémas et blocs constitutifs de synthétiseurs de fréquence à rapport de division entier et fractionnaire (Détecteur phase/fréquence, OCT, modulateurs Sigma-Delta et autres).

  • Des simulations de systèmes chaotiques (système de Chua, de Rössler, de Van Der Pol, et bien d'autres).

Dans la suite nous avons utilisé plusieurs blocs appartenant à la dernière catégorie pour simuler des signaux chaotiques générés par différents systèmes dynamiques et un système de transmission chaotique.


1 Mise en point en France par (LESIA) de l'INSA de Toulouse, (LOPMD) de Besançon et (IRCOM) de Limoges

2 Comme cité dans http://www.scicos.org/ScicosModNum/modnum_web/web/fr/fr.htm