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 ...