4-10-1. Que sont les formules en langage MUSTIG ?
4-10-2. Quand utiliser des formules ?
4-10-3. Comment utiliser des formules ?
Numéros de bornes et étiquettes
Syntaxe du texte de la formule
Erreurs de syntaxe dans les formules
Exemple de formule : seuiller des données
4-10-1. Que sont des formules en langage MUSTIG?
Bien que le mode de programmation habituel en langage MUSTIG soit la construction de graphes, la macro Formule fournit une interface texte à l'utilisateur, en permettant de remplacer une portion d'un graphe par des lignes de comamnde, dans le style C ou Fortran.
En compilant le graphe, MUSTIG remplace la formule par un graphe équivalent, et ce graphe est compilé de la manière habituelle.
Les formules sont capables de faire des opérations scalaires seulement. C'est-à-dire, elles exécutent les mêmes opérations sur toutes les données de l'entrée. Des opérations logiques peuvent être incluses.
Le module Formule est disponible dans la section " <-> " de la Bibliothèque standard. Cette section contient tous les outils de l'interface proposés avec MUSTIG.
4-10-2. Quand utiliser des formules ?
En matière de graphe, c'est quelquefois plus simple d'écrire explicitement une formule que construire le graphe correspondant. Par exemple, pour convertir une base du temps en une sinusoïde, vous pouvez trouver plus commode d'écrire :
Y = sin(2*PI*nu*t + phi)
que de construire le graphe MUSTIG suivant :
Donc, des algorithmes qui contiennent beaucoup d'opérations simples scalaires ou logiques consécutives peuvent être décrits plus clairement en utilisant des formules qu'en utilisant des graphes MUSTIG.
4-10-3. Comment utiliser les formules?
Numéros de borne et étiquettes
La macro Formule a 8 bornes, numérotées de 1 à 8 dans le sens des aiguilles d'une montre comme montré ci-dessous :
Glissez-en une dans votre fenêtre programme. Vous pouvez ajouter ou effacer des bornes si nécessaire (voir Créer une borne et Effacer une borne). Dans ce cas, toutes les bornes sont re - numérotées dans le sens des aiguilles d'une montre.
Vous pouvez étiqueter aussi une ou plusieurs bornes pour faire référence à elles plus facilement : cliquez sur la borne pour la sélectionner et taper Alt+L. Cliquer où vous voulez que l'étiquette apparaîsse pour entrer en mode d'édition et entrez l'étiquette. Cliquez pour sortir du mode d'édition n'importe où ailleurs. Vous pouvez alors déplacer l'étiquette. Les bornes non étiquetées sont référencées en utilisant leur numéro.
Le numéro de la borne ou l'étiquette sont utilisés pour faire référence aux données correspondantes. Toute borne peut être une entrée ou une borne de sortie, MUSTIG vérifie la validité du script de la formule en conséquence.
Vous pouvez renommer le module Formule en quelque chose de plus explicite, tel que Seuillage personnalisé, ou Calcul de la Fréquence, etc.,
Syntaxe du texte de la formule
Cliquez deux fois sur le module Formule : une fenêtre de texte paraît. Tapez Majuscule+Ctrl+Clic pour entrer en mode d'édition (voir Editer un texte). Vous êtes maintenant prêt à entrer le texte de la formule. Cliquez n'importe où à l'extérieur de la fenêtre de la formule pour sortir.
Le texte de la formule peut contenir plusieurs lignes, chaque ligne est séparée de la précédente par un retour chariot. Chaque ligne doit être composée de deux parties, séparées par le signe " = " :
Identificateur = Valeur
L'identificateur peut être:
La Valeur peut être:
Exemples :
Dans les exemples ci-dessous, les variables du texte peuvent être soit variables intermédiaires soit entrées étiquetées soit bornes de sortie
Threshold=$1 |
Charge la(les) valeur(s) d'entrée sur la borne 1 dans une variable intermédiaire nommée Threshold. Ou envoie les valeurs sur la borne 1 sur une borne étiquetée "Threshold" (laquelle doit exister). |
Tmp=Threshold |
Copies une variable (ou borne étiquetée) en une autre variable (ou borne étiquetée). |
x=2*$2+0.5 |
Charges la variable (ou borne étiquetée) x avec 0.5 plus deux fois la(les) valeur(s) d'entrée sur la borne 2. |
$5=result |
Envoie la(les) valeur(s) de la variable (ou borne étiquetée) result à la borne de la sortie de numéro 5. |
Erreurs de syntaxe dans les formules
Erreur de la syntaxe à l'intérieur de formule
La borne n'est pas reliée
Quelques valeurs scalaires particulières peuvent être directement utilisées dans le texte de la formule :
PI |
3.14159… |
DPI |
Même que ci--dessus de, mais en type réel 8 octets |
J |
Nombre complexe élémentaire (0,1) |
Les opérateurs de calcul suivants peuvent être utilisés dans le texte de formule :
FIX (), FLOAT () |
Conversion de type |
- |
Moins unaire |
SIN(), COS(), TAN() |
Les opérateurs trigonométriques |
ASIN (), ACOS (), ATAN () |
Les opérateurs trigonométriques inverses |
LOG(), LOG10() |
Les opérateurs logarithmiques |
EXP(), EXP10() |
Les opérateurs exponentiels |
+ - * / |
Les opérations arithmétiques |
Les opérateurs logiques suivants peuvent être utilisés dans le texte de formule :
>, < |
Comparaison : a<b retourne 0 ou 1. |
= |
Test d'égalité : a=b retourne 0 ou 1 |
.. ? .. : .. |
La syntaxe de la commutation conditionnelle |
Exemples :
a>b |
Retourne un entier égal à 1 si a>b, ou égal à 0 si a<=b |
a<b |
Retourne un entier égal à 1 si a<b, ou égal à 0 si a>=b |
a=b |
Retourne un entier égal à 1 si a=b, ou égal à 0 autrement |
a? b: c |
Retourne b si a n'est pas égal à zéro, c autrement |
Exemple de formule : seuillage de données
Le graphe suivant et sa formule peuvent être utilisés pour seuiller un signal d'entrée :
Graphe MUSTIG
Le processus de seuillage est fait par la formule (voir le texte de la formule à droite). Le module Visu2C/t permet d'afficher signal original et signal seuillé à la fois :
|
Texte entré dans le module Formule
Ici, des variables intermédiaires sont utilisées pour manipuler les données d'entrée (signal et valeur de seuil). Le signal seuillé est envoyé sur la borne 6.
Note : Comme seulement des opérations scalaires peuvent être faites, il n'est pas besoin ici de spécifier si les données sur une borne donnée sont un scalaire, ou un vecteur, ou une matrice, etc. Les opérations décrites sont faites sur chaque échantillon de l'entrée. |
Une formule encore plus simple est obtenue en utilisant des étiquettes des bornes :
Graphe MUSTIG |
Le texte de la formule |
|
|
Quand vous demandez les résultats (clic à droite), MUSTIG construit et compile en interne un graphe équivalent :