Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
TRAITEMENT DU SIGNAL
BAB3 IG et FS/INFO
Edition du 10/10/2016
Copyright © 2000-2001 Faculté Polytechnique de Mons – T. Dutoit
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 :
Une épreuve pratique sera également organisée après les 6 premiers TP.
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
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.
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.
On demande de :
On demande de :
c. Prédéterminer la position des pôles et zéros et vérifier cela sous Matlab grâce
à la fonction zplane.
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 ?
On demande de :
c. Prédéterminer la position des pôles et zéros et vérifier cela sous Matlab grâce
à la fonction zplane.
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% ?
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.
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.
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)
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.
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.
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 :
Les fonctions zoom et ginput nous permettrons de vérifier que les spécifications sont
bien respectées.
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)
f1 158 Hz , a1 1
avec f 2 312 Hz , a2 1
f 401 Hz , a 1
3 3
D 13 dB 40 dB 60 dB
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
4.1 Introduction
Le filtrage numérique est une des applications majeures du traitement du signal.
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.
Une fenêtre contenant les différentes librairies de blocs de modélisation s'ouvre alors:
Pour ouvrir une librairie de blocs de modélisation, il suffit de double cliquer dessus ou
d'effectuer un "clic droit > open the … library".
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.
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).
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:
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).
x(t)= 3+2*sin(2*pi*f1*t)+sin(2*pi*f2*t)
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.
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.
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.
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 ?).
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 :
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:
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).
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 :
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 :
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).
l’onde carrée
la sinusoïde d’entrée
le signal de sortie global (du boc merge)