LABO 5 TRAITEMENT DE SIGNAL SOUS SIMULINK 5.1 Introduction
Transcription
LABO 5 TRAITEMENT DE SIGNAL SOUS SIMULINK 5.1 Introduction
LABO 5 TRAITEMENT DE SIGNAL SOUS SIMULINK 5.1 Introduction Simulink est l'extension graphique de MATLAB permettant, d’une part de représenter les fonctions mathématiques et les systèmes sous forme de diagrammes en blocs, et ensuite de simuler leur fonctionnement. La simulation permet de s’assurer que le système correspond aux spécifications. Elle est paramétrée de manière à optimiser les performances. Il est possible de simuler des composants numériques, analogiques ou mixtes. Simulink permet de modéliser des données simples ou multicanaux, des composants linéaires ou non, d’intégrer des composants comme un signal analogique, des communications numériques ou des logiques de contrôle. NB : SIMULINK ne sera pas utilisé pour l’épreuve pratique. L’objectif de cette séance est donc d’aller le plus loin possible dans le protocole, d’apprendre à maîtriser cet outil fantastique et … de s’amuser. 5.1.1 Lancement de Simulink Il existe deux façons de lancer Simulink depuis Matlab: taper simulink dans la fenêtre de commandes de Matlab, cliquer sur l'icône Simulink dans la barre d'outils Matlab. Une fenêtre contenant les différentes librairies de blocs de modélisation s'ouvre alors: LABORATOIRE DE TRAITEMENT DU SIGNAL 16 Les blocs de modélisation permettent d'effectuer la modélisation, la simulation, l’implémentation et le contrôle de votre système. Pour ouvrir une librairie de blocs de modélisation, il suffit de double cliquer dessus ou d'effectuer un "clic droit > open the … library". Parmi les librairies les plus courantes, citons: Simulink>Sources: Librairie de sources de signaux (ex: générateur) Simulink>Sinks: Librairie de blocs d'affichage (ex: oscilloscope) Simulink>Discrete: Librairie de blocs de traitement numérique Simulink>Continuous: Librairie de blocs de traitement analogique Simulink>Math operations: Librairie d'opérateurs mathématiques (produit, somme, minimum, etc.) LABORATOIRE DE TRAITEMENT DU SIGNAL 17 5.1.2 Construction d'un diagramme Simulink Pour créer un diagramme Simulink, il faut commencer par ouvrir une nouvelle fenêtre de travail en cliquant sur l'icône File> New–Model. de la fenêtre simulink ou en cliquant sur menu Ensuite, il suffit d'y faire glisser les blocs de modélisation dont on a besoin pour construire le diagramme souhaité. La liaison entre blocs s'effectue à l'aide de la souris. Si une flèche de liaison reste en pointillé, c'est qu'elle ne relie pas correctement les blocs entre eux. LABORATOIRE DE TRAITEMENT DU SIGNAL 18 Les paramètres d'un bloc peuvent être changés en double cliquant dessus. L’aide concernant un bloc peut être obtenue en effectuant un clic droit>Help. Une fois le diagramme terminé, il est possible de l'enregistrer au format .mld en effectuant Menu file>Save As et en donnant un nom (*.mdl) au fichier. 5.1.3 Simulation avec Simulink Avant de lancer une simulation, on doit choisir les paramètres appropriés au modèle du système. Pour cela, sélectionner Menu Simulation>configuration parameters. Il est notamment possible de déterminer le temps de début de simulation (start time) et le temps de fin (stop time). Remarque: En utilisation normale (et non en utilisation temps réel), le temps de simulation de simulink et le temps réel de l'horloge ne sont pas identiques. Par exemple, la réalisation d'une simulation de 10 secondes sous simulink prendra généralement moins de temps en réalité. Ce temps pris par le programme pour réaliser une simulation dépend de beaucoup de facteurs. Parmi ceux-ci : la complexité du modèle, la durée du pas de traitement et la vitesse de l'ordinateur. Ainsi, la vitesse d'exécution peut même varier au cours de la simulation lorsque d'autres processus sont en cours. Pour démarrer la simulation, il suffit de choisir menu Simulation>Start, de cliquer sur l'icône de la fenêtre simulink, ou encore de taper la ligne de code suivante dans la fenêtre de travail Matlab : LABORATOIRE DE TRAITEMENT DU SIGNAL 19 sim('nom_graph',[Tdebut Tfin]). 5.2 Analyse de signaux continus Pour créer des signaux continus, on utilise les générateurs de la librairie simulink/sources. Les paramètres de ces blocs peuvent être modifiés en doublecliquant dessus. Notamment, le paramètre "sample time" (période d'échantillonnage) doit être mis à zéro pour une analyse en continu. Q1) A l'aide de générateurs de la librairie simulink/sources et d'un oscillateur scope situé dans la librairie simulink/sinks, visualiser pendant 30 secondes les signaux continus suivants: a. Une sinusoïde d'amplitude=2, de période=10s et de phase=pi/4; b. Un échelon passant de la valeur 0 à la valeur 5 à la 10ème seconde; Q2) A l'aide d'un bloc Add de la librairie simulink/math operations réaliser le signal x(t)= 3+2*sin(2*pi*f1*t)+sin(2*pi*f2*t) avec f1=0.1 Hz et f2=1 Hz. Visualiser celui-ci pendant 15 secondes sous simulink et retourner ses valeurs dans l'espace de travail Matlab, grâce au bloc To workspace de la librairie simulink/sinks (utiliser le nom "xout" pour la variable de sortie). Afficher ensuite le signal sous Matlab (à l'aide de la fonction plot) et comparer les figures obtenues. En réalité, tout comme Matlab, Simulink est un logiciel numérique: il traite les signaux de manière numérique et les "échantillonne" donc automatiquement afin de pouvoir calculer leurs valeurs. Lorsque l'on utilise un bloc de sortie "To workspace", ce sont ces valeurs qui sont retournées sous forme de vecteurs dans la fenêtre de travail Matlab. Le nombre d'échantillons obtenus dépend donc du pas de traitement. Il est possible de modifier ce paramètre dans Menu Simulation>configuration parameters>solver>solver option>fixed step size. Il ne faut cependant pas oublier d'adapter la longueur maximale des vecteurs renvoyés en sortie si l'on veut pouvoir obtenir tous les échantillons de ces derniers (Menu Simulation>configuration parameters->data import/export->limit data points to last). Q3) Pour bien comprendre ce phénomène, on vous demande de travailler avec un pas de traitement fixe d'une valeur de 0.01 sec et de refaire la simulation demandée à la question Q2. La longueur du signal x renvoyé est-elle cohérente? Quelles conclusions peut-on tirer lorsque l'on compare les figures obtenues aux questions Q2 et Q3? Sous Simulink, il est également possible d'insérer des fonctions sous forme de blocs afin de les utiliser lors d'une simulation. Q4) Pour tester ceci, on vous demande de réaliser le même signal que précédemment de trois manières différentes: x(t)= 3+2*sin(2*pi*f1*t)+sin(2*pi*f2*t) avec f1=0.1 Hz et f2=1 Hz LABORATOIRE DE TRAITEMENT DU SIGNAL 20 a. Au moyen du bloc Fcn se trouvant dans la librairie simulink/User-defined Functions. Visualiser le signal ainsi généré. Le bloc « clock » est le temps qui est l’entrée du système. Les deux blocs clock et Fcn forment ainsi le générateur du signal x(t). b. Au moyen du bloc MATLAB Fcn se trouvant dans la librairie simulink/Userdefined Functions. Créer pour cela une fonction Matlab qui prend le vecteur temps en entrée et qui fourni en sortie le signal x (remarque : le nom de cette fonction ne peut comporter ni chiffre, ni espace, ni caractères spéciaux). Utiliser ensuite le bloc MATLAB Fcn pour générer le signal sous simulink et visualiser le signal ainsi généré. c. Au moyen du bloc Embedded MATLAB Function acceptant de traiter plusieurs entrées et plusieurs sorties. Pour cela, créer le signal u1= sin(2*pi*f1*t) et le signal u2= sin(2*pi*f2*t). Utiliser un bloc Embedded MATLAB Function de la librairie simulink/User-defined Functions pour générer les signaux x=2u1+u2+3 et y=2u1+u2. Enfin, ajouter la constante 3 au signal y de manière à visualiser de deux manières différente le signal désiré : x(t)= 3+2*sin(2*pi*f1*t)+sin(2*pi*f2*t) 5.3 Analyse de signaux discrets 5.3.1 Génération de signaux discrets (transmis par échantillons) Sous Simulink, il est possible de créer des signaux discrets (càd. numériques) en utilisant les générateurs de la librairie simulink/sources et en fixant leur paramètre "sample time" à la période d'échantillonnage souhaitée. Attention, il convient de ne pas confondre cette fréquence d'échantillonnage avec le pas de traitement de l'algorithme de simulation : ceux-ci peuvent être complètement différents! D'autre part, lorsque les signaux sont discrets, il convient d'utiliser LABORATOIRE DE TRAITEMENT DU SIGNAL 21 l'algorithme itératif parameters. de type "discrete" du Menu Simulation>configuration Q5) Réaliser une sinusoïde d'amplitude=2, de pulsation=1 rad/s, de phase nulle et de période d'échantillonnage=0.5 secondes. Visualiser la sous simulink en utilisant un pas de simulation fixe égal à la période d'échantillonnage, et reporter ses valeurs dans la fenêtre de travail Matlab. Relancer ensuite la simulation avec un pas de simulation fixe de 0.0001s. Quelles sont vos conclusions au point de vue de l’allure du signal observé, de la taille des vecteurs renvoyés et du temps de simulation? Pour obtenir un signal discret, il est également possible d'effectuer un échantillonnage d'un signal continu. Cet échantillonnage peut être réalisé à l’aide d’un bloc zeroorder Hold de la librairie Simulink / Discrete: Q6) A l’aide de ce bloc zero-order Hold, échantillonner une sinusoïde continue d'amplitude=2, de pulsation=1 rad/s et de phase nulle, avec une période d'échantillonnage de 0.5s. Lancer la simulation avec un pas de traitement variable valant au maximum 0.01s et visualiser les deux signaux (continu et échantillonné) sur un même graphe à l'aide d'un bloc mux de la librairie simulink/signal routing. Reporter ensuite les valeurs de ces signaux (continu et échantillonné) dans Matlab et comparer les tailles des vecteurs obtenus. 5.3.2 Utilisation de la librairie "Signal Processing Blockset" pour la génération de signaux discrets transmis par échantillons et par trames Une librairie a été spécialement créée sous simulink pour modéliser, simuler et générer des algorithmes de traitement de signaux numériques. Il s'agit de la librairie Signal Processing Blockset. Celle-ci permet de soumettre les signaux numériques à divers types de traitements : par échantillons (typiquement, du filtrage numérique ou de la modulation) ou par bloc (typiquement, des analyses spectrales ou des modélisations). LABORATOIRE DE TRAITEMENT DU SIGNAL 22 Ainsi, les signaux numériques transmis peuvent être de deux types: De type discret transmis par échantillons (sample-based signal) De type discret transmis par trames (frame-based signal) Un signal discret monocanal transmis par échantillons se propage au travers du système échantillon par échantillon. Il est représenté par une matrice 1x1. (Notons que jusqu’à présent nous n’avons travaillé qu’avec ce type de signaux.) Un signal discret monocanal transmis par trames se propage au travers du système trame par trame (bloc par bloc). Une trame est une collection d'échantillons séquentiels du même signal. Elle est représentée par un vecteur colonne Mx1. Pour bien les différencier les signaux transmis par échantillons des signaux transmis par trames, simulink fait apparaitre (une fois la simulation lancée) des lignes de liaison distinctes selon le type de signal transmis: D'autre part, nous recommandons à l'utilisateur d'afficher les dimensions des signaux transmis ([1x1] ou [3x1] ou …) pour bien voir la longueur des trames transmises. Ceci peut être réalisé en sélectionnant le Menu Format>Port/Signal Displays>Signal dimensions. Les signaux discrets transmis par trames peuvent être créés à partir des générateurs de la librairie Signal Processing Blockset>DSP sources. Il suffit pour cela d'indiquer le nombre désiré de valeurs par trame dans le paramètre sample per frame de ces blocs. LABORATOIRE DE TRAITEMENT DU SIGNAL 23 Notons qu'imposer une valeur de sample per frame à 1 revient à générer un signal discret par échantillon. Il est également possible d'obtenir des signaux discrets transmis par trames à l'aide de buffers (situés dans la librairie Signal Processing Blockset>Signal Management> Buffers) : Les Buffers permettent d’accumuler les valeurs d’un signal transmis par échantillons pour les restituer en sortie par trames de longueur souhaitée Mo. Il est également possible de répéter en sortie un certain nombre L d'échantillons de la trame précédente. Cela correspond au paramètre buffer overlap du bloc. L'utilisation d'une transmission par trames permet notamment de calculer des moyennes, des variances, ou encore d'effectuer des transformées de Fourier à court terme comme nous le verrons par la suite. Q7) A l'aide des blocs de la librairie Signal Processing Blockset, modéliser le schéma suivant permettant de calculer la moyenne d'un signal par tranche de 10 échantillons. Lancer la simulation pendant 150s (pour bien voir tous les échantillons) avec un pas de traitement fixe de 0.001s et visualiser les signaux obtenus. LABORATOIRE DE TRAITEMENT DU SIGNAL 24 Q8) Pour afficher l’allure temporelle d’un signal transmis par trame (avec plus de 1 échantillon par trame), il faut utiliser un bloc Vector Scope de la librairie Signal Processing Blockset>DSP Sinks. Pour vérifier cela, on vous demande de: a. Essayer de connecter un bloc Time scope (semblable à ceux utilisés dans Q7) à la sortie du buffer de la question Q7, et de vérifier que celui-ci ne peut pas fonctionner en présence d’un signal d’entrée transmis par trames. b. Remplacer le bloc Time scope de la question Q8a (placé à la sortie du buffer) par un bloc Vector Scope. Régler les paramètres de ce dernier de manière à pouvoir afficher 20 trames du signal reçu dans un même graphe avec un axe des ordonnées limité à [-10, 120]. Visualiser le signal transmis (simulation de 150s avec un pas de traitement de 0.01s). Diminuer ensuite le nombre de trames affichées à 10 et relancer la simulation. Que constatez-vous. c. Générer un signal équivalent à celui obtenu en sortie du buffer, mais en l’émettant directement par trames au moyen d'un générateur de la librairie Signal Processing Blockset>DSP Sources. Visualiser ce dernier à l’aide d’un bloc Vector Scope. Quelle(s) différence(s) pouvez-vous observer par rapport au graphe précédent lorsque le même nombre de trames affichées (=20) est utilisé? 5.3.3 Analyse spectrale de signaux discrets Q9) Soit une sinusoïde de fréquence=2 Hz et d'amplitude=1 échantillonnée avec une période d’échantillonnage de 0.04s et générée par trames de 2048 échantillons. Pour une simulation de 10 secondes, on demande de: a. Visualiser son spectre en amplitude en décibel à l'aide des blocs suivants la librairie Signal Processing Blockset: Remarque: pour obtenir des informations sur ces blocs, il suffit pour rappel d'effectuer un clic droit sur ces blocs dans simulink et de cliquer sur Help. b. Vérifier l’exactitude du spectre obtenu (en fréquences et en amplitudes). c. Essayer d'utiliser la même chaine de traitement, mais en générant cette fois le signal par trames de 2000 échantillons. Que constatez-vous? Q10) Montrer (et expliquer pourquoi) qu'il est possible d'obtenir le même spectre en utilisant seulement ces deux blocs: Expliquer alors le gros avantage de cette chaine utilisant le bloc |FFT|2, par rapport à la chaine précédente utilisant le bloc FFT. Pour cela, examiner l’aide concernant ces deux blocs et baser votre réflexion sur la taille des trames générées en entrée (essayer par exemple de générer le signal avec 200 échantillons par trame: que se passe-t-il alors ?). LABORATOIRE DE TRAITEMENT DU SIGNAL 25 Q11) Soit une onde chirp (càd une sinusoïde dont la fréquence varie avec le temps), de durée égale à 120 secondes, échantillonnée à 25Hz, bidirectionnelle (càd que sa fréquence augmente et puis diminue), possédant une fréquence de départ égale à 0.05Hz et une fréquence maximum obtenue au bout de 60 secondes égale à 2Hz. Dans un même graphe Simulink, on vous demande de: a. Générer ce signal par trames de 100 échantillons. b. Visualiser à l'aide d'un bloc Vector Scope (Time) de la librairie Signal Processing Blockset>DSP Sinks, les 31 trames de ce signal en lançant une simulation de 120 secondes avec un pas de traitement de 0,0004s. (Pour bien visualiser l’onde, imposer les limites de l’axe y à [-1.5 1.5]) c. Visualiser à l'aide d'un bloc Vector Scope (Freq) de la librairie Signal Processing Blockset>DSP Sinks, la transformée de Fourier calculée pour chaque trame sur NFFT=256 échantillons. Pour bien visualiser le spectre, afficher cette dernière de 0 à fe Hz en abscisse et de -30 dB à 40 dB en ordonnée. d. Utiliser un bloc Waterfall de la librairie Signal Processing Blockset>DSP Sinks pour visualiser les coefficients de la transformée de Fourier de 8 trames successives. e. Après avoir compris le fonctionnement de la chaine suivante permettant de visualiser le spectrogramme d’un signal en dB, ajouter là à votre simulation de manière à observer le spectrogramme de l’onde chirp (choisir M0=31 pour visualiser la transformée de Fourier de 31 trames): LABORATOIRE DE TRAITEMENT DU SIGNAL 26 Remarque1: Le spectrogramme est défini comme la représentation de l’évolution du spectre à court terme en fonction du temps. Il s'agit donc de reporter pour chaque instant t, la transformée de Fourier à court terme du signal. Le résultat est bien souvent une image graphique avec le temps en abscisse, la fréquence en ordonnée et l'amplitude représentée (souvent en décibels) par un degré de couleurs. Les spectrogrammes sont largement utilisés dans le domaine de la reconnaissance de la parole. Remarque2: le bloc Matrix Viewer de la librairie Signal Processing Blockset>DSP Sinks permet de représenter une matrice MxN par une image de hauteur M et de largeur N dont les pixels sont colorés en fonction de la valeur des éléments ij de la matrice. Q12) Nous allons maintenant remplacer l’onde Chirp de la question Q12 par un signal audio pré-enregistré, afin d’effectuer son analyse en fréquence. Pour cela, on vous demande de : a) Importer le son wave "labo6.wav" au moyen du bloc From Wave File de la librairie Signal Processing Blockset>Platform Specific I/O>Windows(Win32). b) Utiliser un bloc To Wave Device de la librairie Signal Processing Blockset>Platform Specific I/O > Windows(Win32), pour écouter le signal. Régler pour cela ses paramètres comme suit : Queue duration =2 secondes Initial output delay = 0.1 seconde. c) Lancer une première fois la simulation pendant 20 secondes avec un pas de traitement variable, puis relancer la simulation avec un pas de traitement deux fois plus grand que la période d’échantillonnage du signal (dont la fréquence d’échantillonnage est de fe=11025Hz). Examiner alors l’évolution de la transformée de Fourier et du spectrogramme en fonction du signal audio écouté. Q13) En reprenant le même schéma que la question 13, remplacer le son provenant du fichier .wav par le son acquis au moyen d’un microphone. Utiliser pour cela le bloc From Wave Device de la librairie dont vous réglerez les paramètres de la manière suivante: LABORATOIRE DE TRAITEMENT DU SIGNAL 27 Fréquence d’échantillonnage=11025 Hz 512 échantillons par trame 16 bits par échantillon Queue duration=3 secondes Data type= double 5.4 Filtrage numérique 5.4.1 Analyse de filtres numériques Q14) Soit l'équation de récurrence suivante: y(n) 0.1 x(n) 1.3 y(n 1) 0.9 y(n 2) a. Réaliser ce filtre sous simulink à l'aide des blocs , et . b. En lançant une simulation de 150 secondes, examiner sa réponse impulsionnelle. Utiliser pour cela une impulsion générée au moyen du bloc discrete impulse de la librairie Signal Processing Blockset>DSP Sources, et transmise par échantillons avec une fréquence d’échantillonnage de 1 Hz. c. Déterminer la fonction de transfert opérationnelle correspondante (sur papier). d. Réaliser ce filtre à l'aide du bloc Discrete Filter de la librairie Simulink>Discrete et vérifier que sa réponse impulsionnelle est bien identique à celle du point b. Si l’on désire qu’un filtre de fonction de transfert connue puisse accepter en entrée un signal transmis par trames, il est nécessaire d’utiliser un bloc Digital Filter de la librairie Signal Processing Blockset>Filtering>Filter Designs. Dans ce cas, le filtre suppose à priori que les trames proviennent d’un même signal. Il mémorise donc les sorties du filtre de la trame courante afin de les utiliser lors de la prochaine trame (c.à.d. qu’il mémorise les y(n-i) d’une trame à l’autre). Q15) Pour vérifier cela, créer un filtre de même fonction de transfert opérationnelle que la question précédente (Q15), mais permettant d’accepter un signal transmis par trames en entrée. Vérifier son bon fonctionnement ainsi que sa réponse impulsionnelle en utilisant une impulsion transmise par trames de 50 échantillons (fe=1, durée de la simulation=100 secondes). LABORATOIRE DE TRAITEMENT DU SIGNAL 28 5.4.2 Approximation de filtres numériques L’approximation et la synthèse de filtres numériques peut être effectuée au moyen du bloc Digital Filter Design de la librairie Signal Processing Blockset>Filtering>Filter Designs. Q16) Soit le signal x(t)=sin(2*pi*1*t)+2*sin(2*pi*0.7*t)+3*sin(2*pi*0.1*t) échantillonné à 100Hz. On vous demande de: a. Réaliser ce signal au moyen de trois générateurs de sinusoïdes (et d’un bloc add). b. Visualiser ce signal x(t) sous simulink pendant 50s. c. Concevoir un filtre récursif de Cauer permettant d'extraire uniquement la sinusoïde à 1 Hz. d. Examiner la réponse en fréquence de ce filtre et vérifier qu’elle correspond bien aux spécifications désirées. e. Passer le signal x(t) au travers de votre filtre et vérifier l'allure du signal de sortie. 5.5 Sous systèmes et Masques Lorsqu’un graphe Simulink devient trop complexe, il est possible de regrouper une partie de sa structure dans un sous-système représenté par un bloc de type Subsystem. Ceci peut être réalisé, soit en sélectionnant la partie du graphe concernée et en cliquant sur le Menu Edit> Create Subsystem, soit en introduisant directement un bloc Subsystem à partir de la librairie Simulink<Ports & Subsystems (la structure interne peut alors être créée en double cliquant sur ce bloc). Q17) A partir du graphe de la question précédente (Q17), regrouper les blocs permettant de générer le signal x(t) dans un seul sous système que vous appellerez: "générateur de x(t)". Une fois le sous-système créé, il est possible de lui assigner des paramètres qui seront utilisés comme variables d’entrées de certains blocs du sous-système. Pour cela, il est question de réaliser un masque en sélectionnant le sous-système et en cliquant sur le Menu Edit> Mask subsystem. Les divers paramètres de celui-ci sont créés dans l’onglet parameters comme le montre la figure suivante : LABORATOIRE DE TRAITEMENT DU SIGNAL 29 Il s’ensuit qu’un double clic sur le bloc subsystem ne permettra plus d’accéder directement à sa structure mais bien uniquement de régler la valeur de ses paramètres. Pour pouvoir à nouveau accéder à la structure interne du sous-système, il sera nécessaire d’effectuer un clic droit>Look Under Mask. Q18) Réaliser un masque à partir du sous-système de la question Q18 et assigner lui 3 paramètres correspondant aux fréquences des trois sinusoïdes. Changer ensuite la valeur de ces fréquences et observer le signal de sortie. Ces modifications sont-elles bien prises en compte? Certain sous-systèmes peuvent être rendus disponibles (ou non) à divers instants de la simulation. Leur construction requiert toutefois d’utiliser un bloc de type Enabled Subsystem de la librairie Simulink<Ports & Subsystems. En effet, ce type de bloc dispose d’une entrée « Enable » permettant d’activer le sous-système selon que sa valeur est positive ou non. Q19) Afin de vous familiariser avec les sous-systèmes de type Enabled Subsystem, on vous demande de : a. Générer une sinusoïde continue (c.à.d. Te=0) d’amplitude=1 pulsation=1 rad/s. Utiliser un pas de traitement fixe de 0.1 seconde. et de b. De créer un bloc Enabled Subsystem permettant de calculer la valeur absolue de la sinusoïde. c. D’activer ce sous-système de manière périodique au moyen d’une onde carrée de période=5s. d. De visualiser la sinusoïde d’entrée, le signal de sortie du sous-système et le signal d’activation (l’onde carrée) sur une même figure contenant 3 graphes distincts. Utiliser pour cela un bloc scope de la librairie Simulink>Sinks. Notons finalement la possibilité d’effectuer des branchements conditionnels sous simulink. Notamment, le branchement classique de type « if…then…else » réalisable au moyen des blocs If et If Action Susystem de la librairie Simulink<Ports & Subsystems. LABORATOIRE DE TRAITEMENT DU SIGNAL 30 Q20) Afin de vous familiariser avec les branchements conditionnels, on vous demande de : a. Générer (comme à la question Q19) une sinusoïde continue (c.à.d. Te=0) d’amplitude=1 et de pulsation=1 rad/s. Utiliser un pas de traitement fixe de 0.1 seconde. b. Générer une onde carrée de période=5s (comme à la question Q19) c. Réaliser un branchement conditionnel permettant de renvoyer la valeur absolue de la sinusoïde lorsque l’onde carrée est positive, et la constante -5 lorsque l’onde carrée est négative. d. Rassembler les deux sorties des blocs if et else en une seule sortie au moyen d’un bloc merge (voir l’aide concernant ce bloc). e. De visualiser sur une même figure contenant 3 graphes distincts : l’onde carrée la sinusoïde d’entrée le signal de sortie global (du boc merge) LABORATOIRE DE TRAITEMENT DU SIGNAL 31