carre bleu
carre jaune

Quelques exemples de programmation en langage MUSTIG
Les quelques exemples ci-dessous sont extrêmement simples, mais ils permettent de bien comprendre la "philosophie" de la programmation en langage MUSTIG. Les principes de fonctionnement qui y sont décrits restent bien sûr valides pour des algorithmes plus complexes.


1. Construction d’une sinusoïde bruitée et calcul de son spectre brut

Tous les modules sont pris dans la bibliothèque standard de MUSTIG et amenés dans votre programme par simple ‘Drag&Drop’. Ils peuvent être déverrouillés et modifiés à volonté par l’utilisateur.

On commence par définir un support de variable : ici la variable s’appelle t, comporte 256 points et possède par défaut une fréquence d’échantillonnage de 1Hz (modifiable bien entendu).



Sur ce support on construit :
  • Une sinusoïde : la fréquence, la phase et l’amplitude sont réglables en double-cliquant sur le module
  • Un bruit blanc de variance 1 que l’on multiplie par un gain scalaire (module éditable)
Il ne reste plus qu’à sommer les deux signaux pour obtenir la sinusoïde bruitée. On calcule ensuite sa Transformée de Fourier qui transforme la variable temporelle t en variable fréquentielle f, puis à visualiser le spectre. Le tracé(symboles, type de trait, couleurs, graduations, taille, etc.) est entièrement réglable à la souris.


2. Aspect multidimensionnel de MUSTIG : vectorisation des paramètres d’un algorithme

On souhaite estimer le spectre avec trois valeurs de bruit. En langage MUSTIG, il est inutile d’écrire une boucle ou d’exécuter plusieurs fois le programme. Il suffit de définir le gain scalaire du bruit blanc comme une nouvelle variable à trois valeurs. Cela peut être réalisé directement dans le module d’édition de valeur :



Ici, le nom de la nouvelle variable est bruit. Lors de la sommation, MUSTIG comprend que le signal comporte les deux variables t et bruit : on obtient alors un signal à deux dimensions. Le calcul du spectre est donc effectué automatiquement pour les trois valeurs du bruit. On peut visualiser les trois spectres simultanément grâce au module de visualisation à deux dimensions Visu_2D_n.


3. Convivialité et interactivité : les " faces avant " MUSTIG

L’ensemble {sinusoïde + bruit + gain scalaire} forme un tout cohérent. Il est naturel de les rassembler en un seul module nommé, par exemple, Générateur. On réalise pour cela une macro MUSTIG : l’opération s’effectue en une seconde à la souris.

Ensuite, toujours à la souris par simple ‘Drag&Drop’, on déporte les paramètres auxquels on souhaite accéder rapidement sur la face avant du générateur. Dans l’exemple ci-dessous, c’est la fréquence de la sinusoïde qui a été déportée. La fréquence des signaux peut à présent être directement modifiée.



Ce principe de déport en face avant s’étend à tous les modules MUSTIG : suivant le même principe ultra simple, on a inséré la fenêtre de visualisation des spectres sur la face avant du module Visu_2D_n afin de réaliser un module de pré-visualisation rapide.


4. Encore plus d’interactivité : les documents interactifs MUSTIG.

Lorsque vous avez terminé un programme MUSTIG, vous pouvez rassembler tous les éléments intéressants dans une seule fenêtre active qui sert alors à piloter entièrement votre application, comme un véritable instrument virtuel.

Faites simplement glisser dans votre graphe une Image MUSTIG. Il s’agit d’une fenêtre vide, au format A4 par défaut, dans laquelle vous pouvez amener à la souris n’importe quel élément de votre choix : paramètres d’entrée, courbes de résultats, parties de graphes MUSTIG, faces avants, etc.

Agencez ces éléments convenablement dans l’image, ajoutez du texte mis en forme, et voilà une interface utilisateur graphique et conviviale réalisée en un temps record !

<

Ce document reste totalement actif : lorsque vous modifiez un paramètre tous les résultats qui en dépendent sont automatiquement recalculés ou remis à jour.

Ces interfaces utilisateur graphiques et interactives peuvent servir à piloter votre application.





Logiciel MUSTIG Téléchargements Documentation technique FAQs/forum Contacts