Vous êtes sur la page 1sur 33

TRAVAUX PRATIQUES DE

TRAITEMENT DU SIGNAL

BAB3 IG et FS/INFO

Edition du 10/10/2016
Copyright © 2000-2001 Faculté Polytechnique de Mons – T. Dutoit

Faculté Polytechnique Professeur : Thierry Dutoit


Assistante : Stéphanie Devuyst

de Mons
Faculté Polytechnique de Mons
TCTS Lab
Ave. Copernic Ph: +32 65 374774
Parc Initialis Fax: +32 65 374729
B-7000 Mons Thierry.Dutoit@fpms.ac.be
Belgium http://tcts.fpms.ac.be/~dutoit
AVANT-PROPOS

Organisation
Ce manuel rassemble une série d’exercices pratiques ayant pour but de permettre à
l’étudiant de mieux comprendre les implications pratiques de son cours de traitement
du signal. L’accent y est mis sur l’utilisation pratique du logiciel MATLAB (y compris sa
Toolbox SIMULINK) pour la conception de systèmes de traitement de signal. Matlab
est en effet un logiciel largement répandu aujourd’hui, autant dans les universités que
dans les centres de recherche et développement, ainsi que dans l’industrie.

Les cinq premières séances de laboratoire passent en revue les outils de traitement du
signal sous MATLAB et SIMULINK, en relation avec le cours. Les TP se clôturent par
une épreuve pratique en 6ème séance. On y aborde les problèmes suivants :

1. Génération de signaux numériques déterministes et traitement numérique -


Systèmes SLI
2. Traitement numérique – Systèmes SLI (suite)
3. Analyse spectrale de signaux numériques déterministes
4. Filtrage numérique : approximation et synthèse
5. Traitement de signal sous SIMULINK
6. Epreuve pratique (EP)

A la fin de chaque laboratoire, il sera demandé à l’étudiant de remettre un rapport


écritcontenant:
• l'analyse des problèmes,
• le détail des calculs de prédétermination des solutions des problèmes posés,
• les lignes de commande et les lignes de scripts MATLAB ;
• les graphiques obtenus par Matlab, commentés de façon à mettre en évidence la
concordance (ou discordance) entre les résultats obtenus et vos
prédéterminations.
La seule lecture du rapport doit permettre de vérifier que vous avez compris les
problèmes posés et utilisé correctement MATLAB pour les résoudre.

Appréciation du travail de l’étudiant


L’étudiant sera coté :

 En fonction de son niveau de participation aux séances de laboratoires


 En fonction de la qualité des rapports rendus aux séances de laboratoires
 En fonction de la qualité (fond et forme) du rapport de projet

Une épreuve pratique sera également organisée après les 6 premiers TP.

LABORATOIRE DE TRAITEMENT DU SIGNAL 1


La répartition des points est la suivante: Epreuve pratique (35/100), Examen
(65/100).

Informations sur le Web


Le présent manuel, ainsi qu’un certain nombre d’informations utiles au déroulement
du projet, sont disponibles sur le site Moodle :

https://moodle.student.fpms.ac.be/

Les étudiants sont par ailleurs invités à nous communiquer d’éventuelles autres
sources d’informations utiles, en envoyant un email à :

thierry.dutoit@umons.ac.be

LABORATOIRE DE TRAITEMENT DU SIGNAL 2


LABO 1
GENERATION DE SIGNAUX
NUMERIQUES DETERMINISTES
ET TRAITEMENT NUMERIQUE -
SYSTEMES SLI
1.1 Introduction
Les systèmes de traitement du signal numérique manipulent des signaux qui sont
soumis à 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).

Ces signaux peuvent soit être générés directement sous forme numérique, soit
provenir d’un signal analogique que l’on échantillonne et numérise à l’aide de
convertisseurs analogiques-numériques.

Dans la cadre de cette séance de travaux pratiques, nous allons envisager la


génération de ces deux types de signaux numériques.

Ensuite, nous examinerons l’étude de l’effet d’opérateurs numériques simples (+,*,z-1)


sur ces signaux numériques. Ces opérations constituent ce que l’on appelle une
récurrence linéaire. Leur effet peut être étudié dans le domaine temporel comme dans
le domaine spectral. Le lien entre ces deux vues du même effet est réalisé par la
transformée en Z.

Au cours de cette séance de travaux pratiques, nous étudierons des récurrences


simples, et vérifierons leurs effets dans les domaines temporel et spectral.

1.2 Commandes Matlab utilisées


Les fonctions ones, zeros, sin, square serviront à générer les signaux. La fonction
stem nous servira à afficher leurs allures temporelles et la fonction freqz(x,1,2048)
sera utilisée pour afficher leur spectre (nous expliquerons cela au prochain
laboratoire).

Concernant les systèmes SLI, la fonction freqz(B, A)nous servira à afficher leur
réponse en fréquence, la fonction zplane nous permettra d’observer leurs pôles et
zéros, la fonction filter nous permettra de calculer les réponses à divers signaux
d’entrée, et la fonction fvtool nous permettra d’examiner les principales propriétés en
une seule commande.

LABORATOIRE DE TRAITEMENT DU SIGNAL 3


1.3 Génération de signaux numériques déterministes

1.3.1 Signaux apériodiques


Q1) Créer une impulsion numérique de 100 échantillons, afficher le signal de sorte
que l’échantillon non nul soit bien positionné en t=0.

NB : ce signal étant purement numérique (il ne provient pas de l'échantillonnage


d'un signal analogique), il est inutile de spécifier la "fréquence
d'échantillonnage".

1.3.2 Signaux périodiques


Q2) Simuler l’échantillonnage à 10 kHz d’une sinusoïde de fréquence f de 500 Hz.
Calculer 200 échantillons et visualiser le signal échantillonné en fonction du
temps. Obtient-on ce à quoi on doit s’attendre (amplitude, fréquence, nombre de
périodes observées)?

Q3) Générer et visualiser 3 périodes d’une onde carrée de période=2s,


d’amplitude=±2 et échantillonnée à 10 Hz.

1.4 Traitement numérique

1.4.1 Récurrence linéaire simple


Q4) Soit la récurrence suivante :

y(n)  x(n)  x(n  1) (Différence du premier ordre)

On demande de :

a. Calculer la fonction de transfert opérationnelle du système (sur papier)


b. Prédéterminer (sur papier) la réponse impulsionnelle du système, puis de la
visualiser sous Matlab à l’aide de la fonction filter qui implémente une
récurrence généralisée.
c. Prédéterminer la position des pôles et zéros et vérifier cela sous Matlab grâce
à la fonction zplane.
d. Prédéterminer l’allure de sa réponse en fréquence en fonction de la position
des pôles et zéros, puis de la visualiser sous Matlab à l’aide de la fonction
freqz. L’amplitude mesurée en    correspond-elle à vos prédéterminations?

e. Prédéterminer, en appliquant la récurrence, quelle est la sortie d'un tel filtre


lorsque l'entrée est une constante de valeur 1 (échelon numérique).
f. Confirmer (sur papier) vos prédéterminations du point e) à partir de la
réponse en fréquence du système et en vous rappelant qu’un signal constant
n’est jamais qu’une cosinusoïde de fréquence nulle (DC)
g. D’afficher sous Matlab la sortie du filtre lorsque l'entrée est une constante et
de vérifier ainsi vos prédéterminations.

LABORATOIRE DE TRAITEMENT DU SIGNAL 4


h. Réaliser sous Matlab le filtrage de 500 échantillons d’un signal sinusoïdal à
1000 Hz échantillonné à 16 kHz. Afficher les signaux d’entrée et de sortie,
ainsi que leurs spectres grâce à freqz(x,1,2048). Vérifier alors
temporellement et fréquentiellement que les amplitudes des signaux d’entrée
et de sortie sont bien liées par la réponse en fréquence du filtre.
i. Utiliser la fonction fvtool pour visualiser en une commande l’ensemble des
propriétés du filtre (réponse en fréquence, position des pôles et zéros, réponse
impulsionnelle et réponse indicielle). Les résultats correspondent-ils ?
Q5) Soit le problème suivant :

« Un homme place un couple de lapins dans un enclos. Si on suppose que


chaque couple donne naissance à un nouveau couple chaque mois, et que chaque
nouveau couple devient lui-même productif à partir de son deuxième mois, combien
de couples aura-t-il de mois en mois ? »

La récurrence suivante répond à ce problème :

y(n) = y(n-1) + y(n- 2) + x(n) (Séquence de Fibonacci)

On demande de :

a. Calculer la fonction de transfert opérationnelle du système (sur papier)

b. Prédéterminer (sur papier) la réponse impulsionnelle du système, puis de la


visualiser sous Matlab à l’aide de la fonction filter qui implémente une
récurrence généralisée.

c. Prédéterminer la position des pôles et zéros et vérifier cela sous Matlab grâce
à la fonction zplane.

d. Vérifier la stabilité du système.

e. Prédéterminer, en appliquant la récurrence, quelle est la sortie d'un tel filtre


lorsque l'entrée est une constante de valeur 1 (échelon numérique).

f. D’afficher sous Matlab la sortie du filtre lorsque l'entrée est une constante et
de vérifier ainsi vos prédéterminations. Que devient l’énoncé du problème
dans ce cas ?

Q6) Soit la récurrence suivante :

y(n) = y(n-1) + p* y(n-1) + x(n) (Intérêts composés)

On demande de :

a. Calculer la fonction de transfert opérationnelle du système (sur papier) si p =


5%.

LABORATOIRE DE TRAITEMENT DU SIGNAL 5


b. Prédéterminer (sur papier) la réponse impulsionnelle du système, puis de la
visualiser sous Matlab à l’aide de la fonction filter qui implémente une
récurrence généralisée.

c. Prédéterminer la position des pôles et zéros et vérifier cela sous Matlab grâce
à la fonction zplane.

d. Vérifier la stabilité du système.

e. Prédéterminer, en appliquant la récurrence, quelle est la sortie d'un tel filtre


lorsque l'entrée est une constante de valeur 1 (échelon numérique).

f. D’afficher sous Matlab la sortie du filtre lorsque l'entrée est une constante et
de vérifier ainsi vos prédéterminations. Que se passe-t-il si le taux passe de
5% à 8% ?

g. Quel somme d’argent aurais-je après 50 ans si je place 2 euros les 3


premières années et 5 euros les 2 années suivantes ? (avec p = 5% et 8%)

LABORATOIRE DE TRAITEMENT DU SIGNAL 6


LABO 2

TRAITEMENT NUMERIQUE DES


SYSTEMES SLI (SUITE)
2.1 Introduction
Les systèmes de traitement du signal numérique manipulent des signaux qui sont
soumis à divers types de traitements par échantillons (typiquement, du filtrage
numérique) ou par bloc (typiquement, des analyses spectrales).

Dans la cadre de cette séance de travaux pratiques, nous examinerons l’étude de


l’effet d’opérateurs numériques simples (+,*,z-1) sur ces signaux numériques. Ces
opérations constituent ce que l’on appelle une récurrence linéaire. Leur effet peut être
étudié dans le domaine temporel comme dans le domaine spectral. Le lien entre ces
deux vues du même effet est réalisé par la transformée en Z. Au cours de cette
séance de travaux pratiques, nous étudierons des récurrences simples, et vérifierons
leurs effets dans les domaines temporel et spectral.

Il a également été vu lors de la séance précédente que les signaux numériques


pouvaient être le résultat d’un échantillonnage d’un signal analogique. Le choix de la
période d'échantillonnage Te influe sur le phénomène de repliement spectral
(théorème de Shannon).

Dans le cadre de cette séance de travaux pratiques, nous examinerons par la pratique
l’influence de la fréquence d’échantillonnage. Entre autres, nous essayerons de
comprendre pourquoi les spectres examinés lors de la séance précédente présentaient
des différences parfois importantes avec les spectres théoriques.

2.2 Commandes Matlab utilisées


Les fonctions ones, zeros, sin serviront à générer les signaux. La fonction stem nous
servira à afficher leurs allures temporelles et la fonction freqz(x, 1, 2048, 'whole',
fe) sera utilisée pour afficher leur spectre.

Concernant les systèmes SLI, la fonction freqz(B, A,2048)nous servira à afficher


leur réponse en fréquence, la fonction zplane nous permettra d’observer leurs pôles
et zéros, la fonction filter nous permettra de calculer les réponses à divers signaux
d’entrée, et la fonction fvtool nous permettra d’examiner les principales propriétés en
une seule commande.

LABORATOIRE DE TRAITEMENT DU SIGNAL 7


2.3 Traitement numérique

2.3.1 Filtre intégrateur


Q1) En vous basant sur le document "The Swiss Army Knife of Digital Networks"
extrait du magazine IEEE signal processing (may 2004), on vous demande de:

a. Déterminer la fonction de transfert opérationnelle du filtre (Integrator p°92).

b. Donner le type de ce filtre (récursif ou non récursif)

c. Prédéterminer l’allure de sa réponse en fréquence en fonction de la position


des pôles et zéros, puis de la visualiser sous Matlab

d. Visualiser la position des pôles et zéros ainsi que la réponse en fréquence


grâce à la fonction fvtool. Justifier alors l’allure de la réponse en fréquence
en fonction de la position des pôles et zéros.

e. Que peut-on observer concernant la réponse impulsionnelle et indicielle


(visualisée grâce à fvtool)?

2.3.2 Filtre à moyenne mobile


Q2) En vous basant sur le document "The Swiss Army Knife of Digital Networks"
extrait du magazine IEEE signal processing (may 2004), on vous demande de:

f. Déterminer la fonction de transfert opérationnelle d’un filtre à moyenne mobile


d’ordre 8 du document (moving averager p°92 avec N=8).

g. Donner le type de ce filtre (récursif ou non récursif)

h. Visualiser la position des pôles et zéros ainsi que la réponse en fréquence


grâce à la fonction fvtool. Justifier alors l’allure de la réponse en fréquence
en fonction de la position des pôles et zéros.

i. Que peut-on observer de particulier concernant la réponse impulsionnelle


(visualisée grâce à fvtool)?

j. Donner l'expression de la fonction de transfert opérationnelle du filtre RIF


possédant la même réponse impulsionnelle que ce filtre à moyenne mobile.

k. De vérifier que leurs réponses en fréquence sont identiques (avec freqz).

LABORATOIRE DE TRAITEMENT DU SIGNAL 8


2.3.3 Oscillateur réel
Q3) En vous basant sur le document "The Swiss Army Knife of Digital Networks"
extrait du magazine IEEE signal processing (may 2004), on vous demande de:

a. Déterminer la fonction de transfert opérationnelle d’un oscillateur réel (real


oscillator p°93).

b. Pour Ө=π/4, visualiser la position des pôles et zéros ainsi que la réponse en
fréquence grâce à la fonction fvtool. Justifier alors l’allure de la réponse en
fréquence en fonction de la position des pôles et zéros.

c. Visualiser la réponse impulsionnelle sur le graphe de fvtool et justifier son


allure temporelle en fonction de la position des pôles.

d. Prédéterminer, quelle est la sortie d'un tel filtre lorsque l'entrée est une
constante de valeur 1 à partir de la réponse en fréquence du système et en
vous rappelant qu’un signal constant n’est jamais qu’une cosinusoïde de
fréquence nulle (DC)

e. D’observer (toujours sur le graphe de fvtool) la sortie du filtre lorsque


l'entrée est une constante de valeur 1 (échelon unitaire). Que constatez-vous?
Cela correspond-il à vos prédéterminations? Justifier.

f. Réaliser sous Matlab le filtrage de 500 échantillons d’un signal sinusoïdal à


1000 Hz échantillonné à 10 kHz. Afficher les spectres des signaux d’entrée et
de sortie et justifier les positions des raies observées.

2.4 Analyse spectrale d’une sinusoïde

2.4.1 Influence du paramètre N


Q5) Soit une sinusoïde d’amplitude 1 et de fréquence égale à 600 Hz, échantillonnée
à 10 kHz et limitée à N=200 échantillons. Visualiser son allure temporelle et
afficher son spectre complet (c.à.d. correspondant à φ allant de 0 à 2π) sur
NTFD=2048 échantillons. Justifier la position des raies, leur allure et la valeur de
leurs amplitudes mesurées à l’aide des fonctions zoom et ginput.

Q6) Soit une sinusoïde d’amplitude 1 et de fréquence égale à 600 Hz, échantillonnée
à 10 kHz et limitée à N=2000 échantillons. Visualiser son allure temporelle et
afficher son spectre complet (c.à.d. correspondant à φ allant de 0 à 2π) sur
NTFD=2048 échantillons. Justifier la position des raies, leur allure et la valeur de
leurs amplitudes mesurées à l’aide des fonctions zoom et ginput. Comparer avec
le résultat obtenu à la question 6.

LABORATOIRE DE TRAITEMENT DU SIGNAL 9


LABO 3
ANALYSE SPECTRALE DE SIGNAUX
DETERMINISTES NUMERIQUES

3.1 Introduction
Il a été vu lors de la séance précédente que les signaux numériques pouvaient être le
résultat d’un échantillonnage d’un signal analogique. Le choix de la période
d'échantillonnage Te influe sur le phénomène de repliement spectral. Plus Te est petit,
plus faible est le repliement. Le théorème de Shannon impose dès lors un filtre de
garde, qui permet d’éviter cet effet perturbateur.

Dans la cadre de cette séance de travaux pratiques, nous examinerons par la pratique
l’influence de la fréquence d’échantillonnage.

Entre autres, nous essayerons de comprendre pourquoi les spectres examinés lors de
la séance précédente présentaient des différences parfois importantes avec les
spectres théoriques.

3.2 Commandes Matlab utilisées


Outre les commandes de la séance précédente, les fonctions hamming, blackman et
rectwin seront utilisées pour générer des fenêtres de pondération.

La fonction freqz nous permettra de voir les spectres des signaux numériques
générés. Elle sera utilisée selon la syntaxe suivante :

freqz(x, 1, NTFD, 'whole', fe)

De manière à calculer la TFD de x, pour des fréquences f allant de 0 à fe (fe étant la


fréquence d’échantillonnage), et en afficher le module et la phase sur NTFD points.

On notera au passage que la fonction freqz calcule en réalité la FFT de la suite


d’échantillons, et non sa TFD (la FFT étant la façon pratique de calculer une TFD). On
choisira donc de préférence un nombre NTFD de points multiple de 2.

Les fonctions zoom et ginput nous permettrons de vérifier que les spécifications sont
bien respectées.

LABORATOIRE DE TRAITEMENT DU SIGNAL 10


3.3 Analyse spectrale d’une sinusoïde

3.3.1 Influence du paramètre N


Q1) Soit une sinusoïde d’amplitude 1 et de fréquence égale à 600 Hz, échantillonnée
à 10 kHz et limitée à N=200 échantillons. Visualiser son allure temporelle et
afficher son spectre complet (c.à.d. correspondant à φ allant de 0 à 2π) sur
NTFD=2048 échantillons. Justifier la position des raies, leur allure et la valeur de
leurs amplitudes mesurées à l’aide des fonctions zoom et ginput.

3.3.2 Influence de la fréquence d’échantillonnage


Q2) Soit une sinusoïde d’amplitude 1 et de fréquence f, échantillonnée à 10 kHz et
limitée à N=200 échantillons. Visualiser son allure temporelle, et son spectre
complet (avec NTFD=2048) pour f = 600, 4400, 5000, 5600, 10600 Hz. Justifier
ce que vous observez en ce qui concerne l’allure temporelle du signal et la
position des différentes raies du spectre.

Ceci doit illustrer clairement le théorème de Shannon.

3.3.3 Influence du paramètre NTFD


Q3) Pour chacun des signaux suivants comportant N=32 points et échantillonnés à
10 kHz, on vous demande de prédéterminer ce qui sera affiché par freqz. Plus
précisément, on vous demande de:

 Prédéterminer la position des raies de la transformée de Fourier ;


 Examiner si les maxima des fonctions pieuvres seront atteints ou non ;
 Calculer le nombre moyen d’échantillons en fréquence présents par lobe
secondaire.

Vérifier ensuite ces prédéterminations sous Matlab.

a. une sinusoïde de fréquence 2650 Hz, NTFD=N (c’est le cas général : la


fréquence de la sinusoïde est quelconque par rapport à la fréquence
d’échantillonnage)

b. une sinusoïde de fréquence 2650 Hz, NTFD= 256

c. une sinusoïde de fréquence 2500 Hz, NTFD=32 (c’est la cas particulier d’une
sinusoïde de fréquence normalisée égale à un multiple entier de 1/ NTFD)

d. une sinusoïde de fréquence 2500 Hz, NTFD=256

LABORATOIRE DE TRAITEMENT DU SIGNAL 11


3.4 Analyse spectrale de plusieurs sinusoïdes
Q4) Soit un signal composé d’une somme pondérée de sinusoïdes :
3
x  t    ai sin  2 f i t 
i 1

 f1  158 Hz , a1  1

avec  f 2  312 Hz , a2  1
 f  401 Hz , a  1
 3 3

Prédéterminer, et vérifier ensuite, les valeurs de fe, N et NTFD à utiliser pour


pouvoir observer avec précision son spectre, tout en maintenant minimale la
charge de calcul.

3.5 Utilisation de fenêtres de pondération


Q5) Sous Matlab, on veut examiner les propriétés spectrales des fenêtres suivantes :

 fenêtre rectangulaire (fournie par la fonction rectwin)


 fenêtre de Hamming (fournie par la fonction hamming)
 fenêtre de Blackman (fournie par la fonction blackman)
On demande d’afficher leurs allures temporelles et de vérifier sur leurs spectres
que la différence D (en dB) entre l'amplitude du lobe principal et celles des lobes
secondaires, et la demi-largeur LP du lobe principal (en Hz) vérifient
approximativement les valeurs suivantes:

Rectangulaire Hamming Blackman

D 13 dB 40 dB 60 dB

LP (en F) 1/N 2/N 3/N

On supposera pour les calculs que fe=1, N=50, NTFD=512.

Q6) Déterminer (sur papier) et vérifier ensuite sous Matlab, la fenêtre à utiliser pour
pouvoir distinguer au mieux les fréquences d’un signal f  t   
ai sin  2 f i  t dans
i
les cas suivants :

 f1  1100 Hz , a1  1
a.  fe = 8 kHz, N = NTFD = 256
 f 2  1200 Hz , a 2  1
 f1  510 Hz , a1  500
b.  fe = 8 kHz, N = NTFD = 256
 f 2  1020 Hz , a 2  1

LABORATOIRE DE TRAITEMENT DU SIGNAL 12


LABORATOIRE DE TRAITEMENT DU SIGNAL 13
LABO 4
FILTRAGE NUMERIQUE :
APPROXIMATION ET SYNTHESE

4.1 Introduction
Le filtrage numérique est une des applications majeures du traitement du signal.

Une des précédentes séances de laboratoire a été consacrée à l’étude de récurrences


simples, et à la relation entre récurrences, transformées en Z, pôles et zéros
correspondants, et réponses en fréquence. Ces récurrences caractérisaient des filtres
numériques, dont nous avons donc analysé les caractéristiques générales.

Nous allons ici aborder le problème de l’approximation et de la synthèse des filtres


numériques. Comme c’était déjà le cas en Théorie des Circuits, nous commencerons
par examiner les possibilités de simples cellules du second degré. Nous poursuivrons
ensuite par la synthèse de filtres d’ordre plus élevé.

4.2 Commandes Matlab utilisées


Les fonctions ellipord et ellip seront utilisées pour réaliser l’approximation et la
synthèse de filtres numériques récursifs de Cauer d’ordre plus élevé (filtres RII à
phase non linéaire), tandis que les fonctions firpmord et firpm seront utilisées pour
réaliser l’approximation et la synthèse des filtres numériques non récursifs d’ordre
plus élevé (filtre RIF à phase linéaire).

4.3 Filtrage numérique

4.3.1 Approximation de filtres du second degré


Q1) Soit un signal utile composé d’une sinusoïde à 120 Hz  1 Hz, et dont l’amplitude
est de l’ordre de 20 V. Ce signal se trouve superposé à deux signaux
perturbateurs : la tension du réseau à 50 Hz  0,1 Hz d’amplitude 220 V, et un
bruit blanc. Le tout est échantillonné à 400 Hz.

LABORATOIRE DE TRAITEMENT DU SIGNAL 14


On désire créer un filtre numérique simple, composé de 2 cellules du second
degré (un coupe-bande et un passe-bande), qui permette d’isoler le mieux
possible le signal utile des signaux auxquels il se trouve mélangé. On demande
par ailleurs que l’amplitude du signal utile ne se trouve pas modifiée de plus de
1%.

On demande de créer un script labo441.m qui permette de:

a) Calculer les fonctions de transferts de ces deux cellules (déterminer leur d et


leur d respectifs).
b) Vérifier pour chaque cellule, la réponse en fréquence ainsi que la position de
ses pôles et zéros.
c) Vérifier la réponse en fréquence du filtre complet ainsi que la position de ses
pôles et zéros.

4.3.2 Approximation de filtres d’ordre élevé


Q2) On désire réaliser l'approximation d'un filtre passe-bas numérique (à fréquence
normalisée : fe=1) dont les spécifications sont les suivantes :

Bande passante : 0 à 0.2 Hz avec une tolérance de 0.1 dB (au total)

Bande atténuée : 0.25 à 0.5 Hz avec une atténuation d'au moins 60 dB


On demande de:
a) créer un script labo442.m qui fournisse
 un filtre récursif (de Cauer)
 un filtre non récursif à phase linéaire
répondant tous les deux à ces spécifications.
b) Pour chacun des filtres :
 visualiser la réponse en fréquence et la réponse impulsionnelle
 visualiser la position des pôles et zéros
 vérifier (avec zoom et ginput) que les spécifications sont bien
respectées.
c) Comparer les degrés de ces filtres, et estimer les charges de calcul
correspondantes (en nombres d’opérations par échantillon).

LABORATOIRE DE TRAITEMENT DU SIGNAL 15


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 de la fenêtre simulink ou en cliquant sur menu
File> New–Model.

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 double-
cliquant 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/User-


defined 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 de type "discrete" du Menu Simulation>configuration
parameters.

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 zero-
order 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 et de


pulsation=1 rad/s. Utiliser un pas de traitement fixe de 0.1 seconde.

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

Vous aimerez peut-être aussi