Académique Documents
Professionnel Documents
Culture Documents
FILIERE INGENIEUR
EEI 2016-2017
TRAVAUX PRATIQUE
SIGNAUX ET SYSTEMES
H.AISSAOUI
SOMMAIRE
Introduction l'utilisation du logiciel Matlab......................................................................................3
0.0 Introduction................................................................................................................................3
1.1 Accs MATLAB......................................................................................................................3
1.2 Prise en main du logiciel MATLAB..........................................................................................4
1.2.1 Dclaration par une liste explicite des lments.....................................................................4
1.2.2 Par utilisation des fonctions et oprateurs offerts par Matlab.................................................4
1.2.3 Aide sur quelques fonctions utiles de Matlab.........................................................................5
Commandes gnrales............................................................................................................6
Fonctions mathmatiques..................................................................................................6
Matrices particulires.........................................................................................................6
Manipulations de matrices.................................................................................................6
Manipulation de nombres..................................................................................................7
Manipulations de nombres complexes...............................................................................7
Transformes.....................................................................................................................7
Convolution et corrlation.................................................................................................8
Filtres.................................................................................................................................8
Statistiques.........................................................................................................................8
Polynmes.........................................................................................................................8
Liste de commande avec des exemples.............................................................................9
1.3 Graphique sous matlab.............................................................................................................13
1.4 Fichiers de programmes...........................................................................................................14
1.5 Fonctions function.................................................................................................................15
1.7 Lecture de donnes..................................................................................................................16
1.8 Exemples d'applications...........................................................................................................16
Introduction Simulink......................................................................................................................18
2.1 Introduction Simulink...........................................................................................................18
Fig 2.2 Module simulink......................................................................................................19
2.2 Paramtres de simulation.........................................................................................................20
2.3 Paramtres des oscilloscopes...................................................................................................21
2.4 Rcupration de donnes.........................................................................................................22
OBJECTIF.....................................................................................................................................22
INTRODUCTION.........................................................................................................................22
PREMIRE PARTIE : RPONSE IMPULSIONNELLE DUN SYSTME DORDRE 4.........23
DEUXIME PARTIE : RPONSE LCHELON DUN SYSTME......................................24
Avec o , nous avons :........................................................................................................................24
3.Quelle est a valeur de la rponse en rgime permanent, c'est--dire, quand ?...............................24
TROISIME PARTIE : FILTRAGE DUN SIGNAL...................................................................25
0.0 Introduction
MATLAB est un logiciel interactif permettant deffectuer des calculs numriques complexes
particulirement utiles dans le domaine de lingnierie. Disponible sur de gros systmes, il fut
adapt pour lordinateur personnel muni dun coprocesseur mathmatique permettant une grande
capacit de calcul. Il est utilis en programmation scientifique, pour le calcul numrique et la
visualisation graphique, bas sur la reprsentation matricielle des donnes. Le nom est driv de
cette reprsentation MATLAB = MATrix LABoratory.
Ce logiciel travaille sur des matrices relles ou complexes. Par consquent, afin de l'utiliser
conformment, il est indispensable de garder toujours prsent l'esprit que toute variable ou
paramtre est systmatiquement considr comme une matrice (ou ses cas particuliers: vecteurs
ligne, vecteurs colonne et scalaire.
MATLAB tant disponible sur diffrentes plates formes matrielles, on accde au logiciel en
lanant l'excutable matlab suivant la procdure habituelle de l'environnement concern.
On se retrouve alors d ans un environnement dit fentre de commande dans lequel on peut crire des
commandes ou excuter des fonctions. La sortie du logiciel s'effectue en tapant quit ou exit.
Sur les systmes qui permettent le multi-fentrage, on peut travailler sous MATLAB dans une
fentre et conserver son diteur de texte dans une autre afin de modifier simplement les fonctions
mettre au point.
Matlab est un logiciel qui travaille sur des matrices relles ou complexes. Par consquent, afin de
l'utiliser conformment, il est indispensable de garder toujours prsent l'esprit que toute variable
ou paramtre est systmatiquement considr comme une matrice (ou un de ses cas particuliers:
vecteurs ligne, vecteurs colonne et scalaire.
Vrifiez les galits suivantes: (pour ces premiers exemples, rester dans la fentre de commande
Matlab et crire aprs l'invite >>)
B = [1 2 3;4 5 6;7 8 9]
ones(3,4) ones(1,4)
zeros(3,4) randn(4,5)
Avec ces quelques commandes, vous venez de construire un certain nombre de variables. Matlab
vous donne la possibilit de lister ces variables. Pour cela, utilisez la commande who ou la
commande whos. Vous pouvez ensuite dtruire ces variables. Vrifiez l'effet de who, de clear et
puis de clear all.
Des oprateurs matriciels sont dfinis dans Matlab. Afin de vous familiariser avec ceux ci, traitez
l'exemple suivant :
Il existe une aide "en ligne" que vous pouvez appeler grce Help, dans la barre de menu.
Vous accder alors une table de matire (table of contents) et un index. Appelez la table des
matires: une liste de rpertoires vous est alors propose. Slectionnez, l'aide de la souris, le
rpertoire ops et observer sont contenu.
Oprations mathmatiques
* multiplication .* multiplication
^ puissance .^ puissance
/ division droite ./ division droite
\ division gauche .\ division gauche
' transpose conjugu
.' transpose
- Remarque sur la multiplication
Oprateurs de relation
Voici une courte liste des instructions utiles pour les travaux pratiques, accompagnes d'une brve
description. Pour savoir comment utiliser ces fonctions, se rfrer l'aide de MATLAB, par
exemple en tapant help (nom de la commande) .
Commandes gnrales
Fonctions mathmatiques
Matrices particulires
rand Cre une matrice dont les lments sont gnrs de manire alatoire
logspace Gnre un vecteur dont les lments suivent une progression logarithmique
Manipulations de matrices
Manipulation de nombres
Transformes
fftshift Inverse les deux moitis de courbes obtenues suite au calcul de la fft
Convolution et corrlation
Filtres
filter Filtre les donnes qui lui sont fournies selon le type de filtre qui a t dcrit
Statistiques
Polynmes
demo permet de donner une dmonstration des possibilits que peut donner
MATLAB.
Exp : clear x y z
axis dfinit les limites des axes des abscisses et des ordonnes.
Exp : xmin = 0; xmax = 100; ymin = -100; ymax = 100; axis([ xmin xmax ymin ymax]);
Exp : figure(1);
rand gnre une matrice ou un vecteur de variables alatoires dont les valeurs sont comprises
entre 0 et 1. Distribution uniforme.
zeros gnre une matrice dont les lments sont de valeurs nuls.
ones gnre une matrice dont les lments sont de valeurs gale un.
Exp : a =1 ; inv(a) = 1;
Exp : a = 4 + 3i ; real(a) = 4;
Exp : a = 4 + 3i ; imag(a) = 3;
Exp : a = 4 + 3i ; abs(a) = 5;
Exp : a = 4 ; sqrt(a) = 2;
Exp : function mean = min (x); a = length (x); mean = sum (x)/a;
Exp : a = 1; log(a) = 0;
Exp : fmin('cos',3,4);
Exp : fzero('sin',3);
Matlab permet, comme tout langage volu, d'crire des boucles l'aide d'instructions du type for,
while, mais ces instructions ne sont utiliser que lorsque l'criture matricielle ne permet pas de
rsoudre le problme (cas d'un problme itratif...), car la vectorisation des algorithmes rend les
programmes plus concis et rduit beaucoup leur temps d'excution.
expression ; expression;
expression; end
end
Comparez, par exemple, les deux programmes suivants qui construisent le mme vecteur ligne.
a) b)
i=0; t= [0:.01:20]
i=i+1; plot(y)
y(i)=sin(t);
end
L'excution conditionnelle de programmes peut tre obtenue l'aide des instructions if, else et
elseif. Les programmes de boucle ainsi que les programmes excuts conditionnellement doivent se
terminer par l'instruction end.
end end
end
1.3 Graphique sous matlab
MATLAB peut afficher des courbes planes, des courbes 3D, des surfaces mailles 3D ou des
surfaces facettes 3D. Les commandes respectives sont plot, plot3, mesh et surf.
Une commande plot suivante effacera le premier graphique pour tracer le nouveau dans la mme
fentre si la commande figure n'a pas t utilise entre temps. Cependant il est possible de tracer
des graphiques en surimpression l'aide de la commande hold on. Cette commande a pour effet de
conserver le graphe prsent avant de tracer le suivant. La commande hold off annule cette
possibilit.
MATLAB permet galement de tracer directement partir d'une fonction avec la commande fplot.
Soit la fonction sinus dfinie dans le fichier sinus.m par:
function y = sinus(x)
y = sin(x);
Le graphe obtenu peut tre agrment d'un titre, de lgendes ou de texte. Les commandes MATLAB
correspondantes sont:
Un graphe possde des attributs qui peuvent tre modifis l'aide de commandes, on consultera
l'aide de axis et plot.
La commande plot3 est identique la commande plot, elle ne fait appel qu' une coordonne
supplmentaire. La syntaxe de base est plot3(x,y,z). Les axes, titres et lgendes se traitent comme
dans le cas des courbes planes, la commande zlabel est disponible..
Supposons que l'on veuille reprsenter graphiquement la courbe y=sin(x) sur l'intervalle [-,] avec 200
points.
x=-pi:pi/100:pi;
y=sin(x);
plot(x,y);
Pour ces premiers exemples, les instructions taient crites directement dans la fentre de
commande. Pour des programmes plus longs, il faut utiliser un diteur de texte. Vous utiliserez le
bloc-notes que vous pouvez ouvrir ds que vous slectionnez la commande new dans file de la barre
de menu. Vous pourrez aussi appeler un fichier existant avec la commande open et lancer
l'excution d'un programme avec Run Mfile.
Attention les fichiers ne pourront tre excuts que si leur nom possde l'extension.m. Vous pouvez
crire des programmes qui en appellent d'autres.
Il est possible galement de crer vos propres fonctions MATLAB auxquelles on doit transmettre un
ou plusieurs paramtres. Exemple : on cre un fichier nomm sa.m comprenant les lignes
suivantes :
function Y=sa(X)
if X==0
Y=1
else
end
A chaque fois que lon demandera sa(V), on obtiendra lvaluation de sin(V)/V. Avant lexcution
de la fonction, la valeur du paramtre transmis est place dans X; le rsultat est retourn dans la
variable Y aprs que toutes les instructions aient t excutes.
Notez que les variables dune fonction de type function sont indpendantes des autres
variables, ce qui nest pas le cas lorsque le fichier ne dbute pas par linstruction function .
1.6 Macro-instructions
Bien que chaque instruction puisse tre entre directement au clavier, il est souvent utile de grouper
un ensemble dinstructions excuter qui sera identifi par un seul nom et qui pourra tre conserv
et dit volont. Ceci est possible en plaant les instructions dans un fichier dont le nom se
termine par .m .
Afin de lire des donnes utiles l'excution, on peut procder de deux faons : soit en interrompant
l'excution du programme et en demandant l'utilisateur d'indiquer les donnes, soit en lisant un
fichier de donnes. Cette deuxime solution tant bien souvent prfrable.
Pour interrompre l'excution et demander une valeur, on utilise la commande input, dont voici un
exemple d'utilisation :
Pour plus d'informations, faire help fscanf, help fopen et help fclose. Il existe d'autres mthodes de lecture
et d'criture sur fichier, faire help iofun pour plus dinformations.
Maintenant, vous disposez de tous les outils ncessaires l'criture des programmes.
NB: Enregistrez vos programmes exclusivement dans le sous rpertoire correspondant votre
groupe de TP.
y(t) = a cos (2 f t), sur 128 point avec a = 1, f = 10 Hz, et fe = 100 Hz.
Sn(t)= a n sin(2 n f t) f = 10 Hz
Sn(t)= a n sin(2 n f t) f = 10 Hz
transfert est :
Simulink est un outil de MATLAB qui permet de remplacer les quations mathmatiques entre
certaines variables par des blocs. Lorsquon simule un schma en mode externe avec loutil Real-
Time Workshop (RTW), les donnes sont acquises et transformes en temps rel.
Pour ouvrir un fichier simulink(.mdl), cliquez sur l'icne reprsentant simulink: . La boite de
dialogue suivante apparat.
Cette boite contient une liste de bibliothques disponibles, ainsi quun menu semblable ceux
auquel vous tes familier dans les logiciels de traitement de texte.
Donc, pour ouvrir un nouveau fichier, il suffit de cliquer avec la souris sur licne , alors que
Lorsquun module simulink est ouvert vous pouvez, en vous dplaant dans la liste des librairies,
importez les blocs dsirs sur lespace de travail.
Pour importer un bloc dans votre fichier de travail, glissez le losange qui est devant le nom du bloc
jusqu' votre espace de travail. Vous pouvez rechercher un lment de la liste en tapant une partie de
son nom dans la case libre suivi de ENTER .
Vous pouvez vous exercer en essayant de raliser ce petit module fig. 2.2, avec lequel vous allez
pouvoir simuler une opration de quantification dun signal sinusodal.
A ce stade vous allez pouvoir ajuster les paramtres de chaque bloc dans votre module simulink en
double cliquant sur licne du bloc dsir. Par exemple, en double cliquant sur Quantizer la fentre
de la figure 2.3 va souvrir et vous allez pouvoir changer lintervalle de quantification.
Avant de lancer la simulation vous devez fixer les paramtres de tous les blocs en vous assurant que
cela est conforme avec votre tude thorique.
Enfin, lorsque les paramtres sont entrs, cliquez sur Start dans le menu Simulation ou cliquer
sur licne .
Le temps de simulation apparat dans la case en bas du fichier. Une fois que la simulation est
La variable que vous avez dfinie dans le bloc To Workspace est transmise sur la fentre de
commande Matlab. Vous pouvez comparer son contenu en la traant, avec ce que donne Time
Scope.
Note : Matlab ne garde en mmoire que les derniers points de la simulation. Pour dfinir le nombre
de donnes garder en mmoire, on double-clique sur le bloc Time Scope
contenant la donne, on clique sur le bouton Properties et sous longlet Data History, on ajuste la
longueur du vecteur tel que dsir comme sur le schma ci-dessous :
Comme pour la simulation en mode normal, il est possible de rcuprer les donnes affiches sur un
Pour rcuprer les donnes gnres par la simulation, il faut insrer dans le schma un bloc
provenant de la librairie Simulink, Sinks. Les deux blocs les plus utiliss sont le Time Scope et
To Workspace . Ce dernier enregistre les donnes dans MATLAB mais ne les affiche pas,
contrairement l'oscilloscope. Les ajustements de l'oscilloscope ont t dcrits la section
prcdente. Pour le bloc To Workspace , il faut suivre les tapes suivantes (avant l'excution de
la simulation):
Une fois la simulation excute, on sauve les donnes dans des variables en crivant dans la fentre
de commande MATLAB ou encore dans le M-File les commandes suivantes:
t=ScopeData(:,1)
y=ScopeData(:,2)
Le nom ScopeData doit tre remplac par le nom de variable que l'on a choisi lorsque l'on a ajust
les paramtres de l'oscilloscope ou du bloc To Workspace . Les donnes de la premire colonne
de cette variable correspondent au temps o ont t prlevs les chantillons, tandis que les valeurs
OBJECTIF
Le but de ce travail est de se familiariser avec la technique de drag and drop de Simulink en
valuant la rponse impulsionnelle dun systme linaire (filtre) et en simulant le filtrage dun
signal.
INTRODUCTION
La rponse impulsionnelle h(t ) dun systme linaire est la sortie du systme si lentre est
limpulsion de Dirac (t ) . Dans ce travail vous devrez valuer la rponse impulsionnelle dun
systme linaire et lafficher graphiquement. La fonction de transfert dun systme de quatrime
ordre vous sera prcise au laboratoire.
Vous devrez galement valuer la rponse lchelon dun systme. Vous aurez loccasion
dobserver les diffrentes rponses obtenues selon la position des ples du systme.
La dernire partie du travail traite du filtrage dun signal. Le but est dobserver la sortie dun filtre
Butterworth dont lentre est un signal tel quune onde carre priodique.
2. Cliquer sur le symbole color Simulink ou dans la fentre Command Window de Matlab
taper : simulink.
4. Dans la Library , choisir Continuous . Tirer la bote Transfer function et la dposer sur
le nouveau document simulink.
6. Choisir la source dentre en cliquant sur Sources et transportant la bote dchelon (Step).
7. Vu que le but est dvaluer la rponse impulsionnelle plutt que la rponse lchelon et vu que
les transforme de Laplace de (t) et u(t) sont :
L L1
d ( t ) 1 et u ( t )
s
il faudra annuler le ple introduit par lchelon. Vous pouvez effectuer ceci en multipliant H ( s )
par s, et ainsi annuler le ple de u (t ) par ce zro. Vous devrez ainsi double-cliquer sur la bote
Transfer function et programmer le numrateur par la vecteur [1 0].
11. Pour prolonger la dure de la simulation, cliquer sur Simulation - Simulation parameters .
Augmenter Stop Time 40, par exemple.
1. valuer la rponse lchelon en remplaant la bote Transfer function par deux de ces
botes connectes en parallle et dont les sorties sont additionnes par un sommateur (tir de la
librairie de Simulink : Mat-Sum).
*
noter que pour le cas p2 = p1 , il faudra remplacer les deux botes par une seule dont la
fonction de transfert est :
1 1 2 s - 2 Re [ p ]
H (s) = + = 2
s - 2 Re [ p ] s + p
* 2
s- p s- p
1. Programmer une bote Transfer function pour simuler le filtre Butterworth suivant :
1
H (s) =
s + 2.613s + 3.414 s 2 + 2.613s + 1
4 3
4. Ajuster la priode du gnrateur dimpulsions pour que la sortie du systme soit assez semblable
son entre sauf pour un lger lissage. Imprimer le rsultat.
1
H (s) = ,
s +1
imprimer la sortie et indiquer le type du filtrage qui a produit sa forme.
7. Observer la valeur finale de la sortie. Le filtre ayant admis uniquement les basses frquences,
expliquer la raison de la valeur finale de la sortie observe.