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