IN211.Signal.TP1
================
I. Lire en de'tail le mode d'emploi (document se'pare').
Re'aliser les e'tapes A.1 et A.2 .
Pour chaque exercice, suivre les e'tapes : sig_comp, sig_make, sig_exec.
II. Cre'er un re'pertoire pour les TP de Signal.
III. Cre'er un sous-re'pertoire pour chacun des exercices ci-dessous,
et suivre la proce'dure A.3 du mode d'emploi.
IV. Exercices (a` finir si possible pendant le TP1, en tous cas avant le TP2)
--------------
- Cre'er des fichiers de tests pertinents, validant le maximum de cas parti-
culiers, fait partie inte'grante du travail demande' pour chaque exercice.
Il est conseille' d'incorporer en commentaires de chaque signal d'entree'
la suite de valeurs utilise'e pour tester le programme.
- D'autre part, incorporer en commentaires les e'quations d'horloges
(. pour l'intersection, + pour l'union, <= pour l'inclusion),
en indiquant les re`gles de transformation utilise'es (voir document se'pare'),
meme si les e'quations sont tre`s simples pour les 3 premiers exercices.
- Pour pouvoir e'crire facilement les e'quations et surtout les de'monstrations,
il est fortement conseille' de de'composer les signaux le plus possible;
cela veut dire qu'il est pre'fe'rable d'avoir plusieurs signaux
interme'diaires pluto^t qu'un seul signal tre`s complique'.
Exercice 1 (calcul de moyenne)
----------
Objet : Prise de contact avec l'environnement et la syntaxe
E'nonce': E'crire le processus Moyenne dont le signal de sortie M de type real
est calcule' a` partir des signaux synchrones entiers S (somme) et N (nombre).
-------
Par exemple :
S 6 5 -8 ... <--- fichier RS.dat
N 2 2 3 ... <--- fichier RN.dat
M 3.0 2.5 -2.66667 ... ---> fichier WM.dat
Essayez aussi 10 / 0 , -5 / 0 , 0 / 0 .
Lire le chapitre C) du mode d'emploi pour e'crire les fichiers de donne'es.
Exercice 2 (multiplication par un parame`tre)
----------
Objet : Passage de parame`tre externe
E'nonce': E'crire le processus MulPar dont le signal de sortie S de type real
est e'gal a` F fois le signal d'entree E du type real.
F est un parame`tre externe de type real.
Par exemple, si F=2.5 :
E 3 5 1 -2 0 4 ...
S 7.5 12.5 2.5 -5.0 0.0 10.0 ...
Lire le chapitre B) pour e'crire le fichier de parame`tre.
Exercice 3 (convertisseur coordonne'es Polaires -> Carte'siennes)
----------
Objet: Fonctions imme'diates externes.
E'nonce': E'crire le processus PolCar prenant pour entre'es deux signaux
synchrones : le rayon R de type dreal et l'angle A en degre's de type
integer, et pour sorties les deux signaux X et Y de type dreal; ce
processus implantera une transformation de coordonne'es polaires en
coordonne'es carte'siennes.
Rappels: X = R cos D et Y = R sin D pi_en_radians
si D est un angle exprime' en radians = A -------------
pi_en_degres
si A est un angle exprime' en degre's
Contrainte : De'finir en constante pi_en_radians et pi_en_degres.
Par exemple :
R 1.0 3.0 1.0 3.0 1.0 1.0 ...
A 0 0 90 90 180 270 ...
X 1.0 3.0 0.0 0.0 -1.0 0.0 ...
Y 0.0 0.0 1.0 3.0 0.0 -1.0 ...
Exercice 4 (valeur absolue)
----------
Objet : Instructions de sous-e'chantillonnage et de me'lange prioritaire;
e'quations et calculs d'horloges.
E'nonce': E'crire le processus abs dont le signal de sortie S est la valeur
absolue du signal d'entre'e E de type integer, sans utiliser de fonction
externe.
Remarques: - Les 3 premiers exercices ne permettaient que des e'quations
d'horloges triviales. A partir de cet exercice, il est ne'cessaire
d'e'crire conscencieusement ces e'quations et d'appliquer rigoureusement
les re`gles de transformation pre'sente'es en annexe.
- Pour que l'e'criture des e'quations d'horloge ne soit pas trop
complique'e, il faut utiliser des signaux interme'diaires et de'composer
le processus en plusieurs e'quations.
Par exemple:
E 3 5 -1 -2 3 0 -4 ...
S 3 5 1 2 3 0 4 ...
Exercice 5 (lissage sur 2 valeurs)
----------
5.1)
Objet : Signal retarde'
E'nonce': E'crire le processus Lissage2 dont le signal de sortie S (de type real)
est e'gal a` la moyenne du signal d'entre'e E (du type real) et de sa valeur
pre'ce'dente.
Par exemple :
E 8.8 6.6 2.2 4.4 -2.2 -4.4 ...
S 4.4 7.7 4.4 3.3 1.1 -3.3 ...
5.2)
Objet : Correction de la premie`re valeur
E'nonce': Cre'er le processus Lissage2b a` partir du processus pre'ce'dent
pour que la premie`re valeur de S soit moins aberrante, c'est-a`-dire
qu'elle soit e'gale a` la premie`re valeur de E.
Pour cela, introduire un signal interme'diaire F qui vaudra FAUX
pour chaque valeur de E et un signal interme'diaire Fprec dont la
valeur d'initialisation sera judicieusement choisie ...
Par exemple :
E 8.8 6.6 2.2 4.4 -2.2 -4.4 ...
S 8.8 7.7 4.4 3.3 1.1 -3.3 ...
Exercice 6 (Cre^te)
----------
Objet: horloge du signal de sortie
E'nonce': E'crire le processus Crete dont le signal de sortie C de type
event n'est pre'sent que lorsque le signal d'entree re'el de'passe
la valeur re'elle passe'e en parame`tre externe.
Par exemple, pour M=7.5 :
E 1.2 8.8 -9.9 0.0 10.0 7.5 3.4 ...
S T T ...
Regardez WS.dat ; contient-il les bonnes valeurs ? au bon moment ?
Ajoutez un signal pour pouvoir visualiser l'horloge de S
par rapport a` celle de E.
Exercice 7 (Veilleur)
----------
Objet: Tests pertinents et visualisation du signal de sortie
E'nonce': voir de'but du re'sume' de cours et mode d'emploi partie C
Exercice 8 (Compteur a` partir de)
----------
Objet: Processus avec deux horloges d'entre'e diffe'rentes.
E'nonce': E'crire le processus CptFrom dont le signal de sortie N de type
integer compte les occurences TRUE du premier signal d'entre'e top de
type boolean.
Chaque occurence TRUE du second signal d'entre'e raz, e'galement du type
boolean, induit une occurence de N ayant pour valeur 1 si l'occurence de
raz est simultane'e avec une occurence TRUE de top, et pour valeur 0 sinon.
Remarque: Dans le cas P(S)>=P(E), l'horloge de S n'est que partiellement
de'termine'e; elle doit donc e^tre de'termine'e par une autre e'quation
d'horloge qui, de plus, doit e^tre compatible avec la de'termination
partielle.
Par exemple:
TOP T T F T T T F T T T T T F F T ...
RAZ F T F F T T ...
N 1 2 3 0 1 2 3 4 1 2 3 0 1 ...