Escolar Documentos
Profissional Documentos
Cultura Documentos
1. Introduction
Matlab (abrviation de " MATrix LABoratory ") est un puissant logiciel de calcul
numrique. Cest un environnement informatique conu pour le calcul matriciel.
L'lment de base est une matrice dont la dimension n'a pas tre fixe. Matlab est
un outil puissant qui permet la rsolution de nombreux problmes en beaucoup
moins de temps qu'il n'en faudrait pour les formuler en C ou en Pascal. La
programmation au mme titre que C, Pascal ou Basic. Par contre, sa singularit est
quil sagit dun langage interprt, c'est--dire que les instructions sont excutes
immdiatement aprs avoir t tapes.
1.1. Lancement
Au lancement de Matlab, la fentre "command" apparat. C'est dans cette fentre que
l'on peut taper les instructions Matlab ( la suite des chevrons >>).
Fenetre Command
Puisque Matlab est un langage interprt. Il n'est pas ncessaire de compiler un Matlab travaille indiffremment avec des nombres rels et complexes. Par dfaut les
programme avant de l'excuter. Toute commande tape dans la fentre de variables i et j sont initialises la valeur complexe. Naturellement si vous
commande est immdiatement excute. redfinissez la variable i ou j avec une autre valeur elle n'aura plus la mme
signification.
Les fonctions usuelles de manipulation des nombres complexes sont prdfinies dans
La rponse est affiche si on ne met pas de point-virgule en fin de ligne. Elle est de
Matlab : real, imag, abs, angle (en radian), conj.
plus stocke dans une variable nomme ans (answer). La plupart des fonctions
mathmatiques usuelles sont dfinies dans Matlab, et ceci sous une forme naturelle
(sin, cos, exp, ...). Cest galement le cas de certaines constantes comme pi par
exemple :
En fait, toute variable de Matlab est une matrice (scalaire : matrice 1x1, vecteur :
1.3. Les variables
matrice 1xN ou Nx1). On peut spcifier directement une matrice sous la forme d'un
On peut videmment indiquer le nom de la variable dans laquelle le rsultat doit tre tableau avec des crochets, l'espace ou la virgule spare deux lments d'une mme
stock (ce nom doit commencer par une lettre et occuper moins de 19 caractres). ligne, les points virgules sparent les lments de lignes distinctes.
Le nom de la variable ainsi que le rsultat sont alors affichs. On peut taper plusieurs Les lments d'une matrice peuvent tre n'importe quelle expression de Matlab :
commandes par ligne si elles sont spares par un point virgule.
Maths de lIngnieur ENSI 2011-2012 Page 3 Maths de lIngnieur ENSI 2011-2012 Page 4
Les lments d'une matrice peuvent ensuite tre rfrencs par leurs indices, on
utilise alors des parenthses et non des crochets. Le mot-cl end peut tre utilis en
indice pour signifier le dernier lment.
Le pas d'incrmentation peut tre omis, un pas de 1 est alors pris par dfaut :
On peut avoir des informations sur la taille d'une matrice :
On peut aussi utiliser le " : " pour slectionner des lments d'un vecteur ou d'une
matrice :
On peut ajouter des lignes et des colonnes des matrices dj existantes (attention,
les dimensions doivent toutefois tre compatibles ...).
Maths de lIngnieur ENSI 2011-2012 Page 5 Maths de lIngnieur ENSI 2011-2012 Page 6
1.7. Oprations matricielles
Les oprations usuelles sont dfinies de faon naturelle pour les matrices :
On peut aussi demander des valeurs l'utilisateur :
Matlab permet un grand nombre de types d'affichage 1D et 2D, seuls les plus courant
seront dcrits ici. La commande plot permet l'affichage d'une courbe 1D :
Autres fonctions utiles pour les oprations matricielles
Maths de lIngnieur ENSI 2011-2012 Page 7 Maths de lIngnieur ENSI 2011-2012 Page 8
3.2. Sauvegarde et chargement de variables
2.4. Affichage de plusieurs courbes Il peut tre utile, lors d'une session de travail, de sauvegarder des variables dans des
On peut bien videmment vouloir afficher plusieurs courbes l'cran. Pour cela deux fichiers du rpertoire de travail. Cela peut tre ralis l'aide de la fonction save dont
solutions s'offrent nous :On peut effectuer plusieurs affichages sur une mme la syntaxe est :
figure en utilisant la commande subplot qui subdivise la entre graphique en save nom_fichier nom_variables .
plusieurs sous figures. Sa syntaxe est :
subplot(nombre_lignes,nombre_colonnes,numro_subdivision).Les subdivisions
sont numrots de 1 nombre_lignes*nombre_colonnes, de la gauche vers la droite
puis de haut en bas. Si le nom des variables est omis, tous l'espace de travail est sauv; si l'extension du
fichier est omise elle sera automatiquement .mat, si de plus, le nom du fichier est
omis, la sauvegarde se fera dans le fichier matlab.mat. Pour recharger des variables
sauves dans un fichier, il suffit de taper :
Maths de lIngnieur ENSI 2011-2012 Page 9 Maths de lIngnieur ENSI 2011-2012 Page 10
pour-cent " % ". Toute commande situe aprs " % " n'est pas prise en compte par faire des fonctions Matlab pouvant dpendre d'un nombre variable de paramtres.
Matlab, jusqu' la ligne suivante. Les variables de l'espace de travail ne sont pas accessibles la fonction sauf si elles
sont entres comme variables d'entre. De mme les variables dfinies dans une
3.4. Fonctions fonction ne sont pas accessibles dans l'espace de travail.
On a parfois (souvent) besoin de fonctions qui ne sont pas fournies par Matlab. On
peut alors crer de telles fonctions dans un fichier spar et les appeler de la mme 4. Boucles et contrles
faon que les fonctions prexistantes. La premire ligne (hormis les lignes de Comme de nombreux autres langages de programmation, Matlab possde trois types
commentaires) d'une fonction doit imprativement avoir la syntaxe suivante : d'instructions de contrles et de boucles : for, if et while.
Exemple de fonction :
Le nom de la fonction doit imprativement tre le mme que le nom du fichier dans
La suite dinstructions est rpte un nombre indfini de fois jusqu ce que
lequel elle est stocke (sinon Matlab ne prendra pas en compte ce nom mais
lexpression logique soit fausse.
uniquement celui du fichier). Les nombres d'arguments en entre et en sortie ne sont
pas fixes et peuvent tre rcuprs par nargin et nargout. Cela nous permet donc de
Maths de lIngnieur ENSI 2011-2012 Page 11 Maths de lIngnieur ENSI 2011-2012 Page 12
4.3. Boucle : "for" nous donne le mme rsultat (mais en moins de temps) que :
La boucle for a pour syntaxe :
Maths de lIngnieur ENSI 2011-2012 Page 13 Maths de lIngnieur ENSI 2011-2012 Page 14
2. Affichage de limage (en utilisant la fonction imshow). TP2 : GNRATION DES SIGNAUX
3. Balayer limage et chercher le nombre de pixel correspondant la couleur
blanche et ceux correspondant la couleur noire.
Ce TP a pour but de familiariser l'tudiant avec l'utilisation du logiciel MATLAB
pour la gnration des diffrents types de formes d'ondes.
Exercice 2 :
Ecrire une fonction traitement _surface_3D(x) qui prend comme paramtre The Signal Processing Toolbox de MATLAB contient des fonctions pour la gnration
dentre le nom dun fichier contenant les coordonnes x,y et z des points dune des formes d'ondes couramment utilises priodiques et non priodiques, squences
surface 3D et qui renvoie en sortie le point parmi tous ces points qui soit le plus (impulsion, chelon, rampe), train d'impulsions
. . . . . MATLAB suivante :
. . . . .
u = [1 zeros(1,N-1)] ;
. . . . .
V xn y n zn De mme, limpulsion unit ud[n] de longueur N et dcales de M chantillons, tel
que M<N, peut tre gnre par la commande MATLAB suivante :
Maths de lIngnieur ENSI 2011-2012 Page 15 Maths de lIngnieur ENSI 2011-2012 Page 16
% Gnration d'un vecteur de -10 20 **************************************************
n=-10:20; % Programme P2
stem(n,u); phase = 0;
Application : stem(n,x);
1- Modifier le programme prcdent pour gnrer une impulsion unit dcale axis([0 100 2 2]);
de 11 chantillons. Excuter le programme et tracer le signal gnr.
grid;
2- Modifier le programme prcdent pour gnrer un chelon unit dcal de 20
chantillons. title(Signal Sinusoidal);
Avec MATLAB, ce type de signaux peut tre gnr en utilisant les oprateurs Application :
trigonomtriques cos et sin.
1- Modifier le programme prcdent pour gnrer et tracer un signal sinusodal
Le programme P2 est un exemple qui gnre un signal sinusodal. de longueur 50, frquence 0.08, amplitude 2.5 et phase dcale de 90 degrs.
2- Gnrer et tracer les squences dfinies ci dessus :
Maths de lIngnieur ENSI 2011-2012 Page 17 Maths de lIngnieur ENSI 2011-2012 Page 18
subplot(212), plot(t,x2), xlabel('Time (sec)'); ylabel('Amplitude'); title('Square Periodic
( )
Wave')
x1 (n )=sin n 0n35
17
************************************************************************
( )
x2(n)=sin n
17
15n25
3. Gnration des signaux exponentiels
(
x3 (n)=sin 3n+
2
) 15n15
Un autre type de signaux de base sont les signaux exponentiels. Ce type de signaux
peut tre gnr par les oprateurs de MATLAB .^ et exp .
x4(n)=sin n 0n50 Le programme P4 est employ pour gnrer un signal exponentiel x[n] = A exp(jn)
23
valeurs complexes.
En plus des fonctions sin et cos, le toolbox de MATLAB offre d'autres fonctions qui
****************************************************************
produisent des signaux priodiques comme sawtooth et square.
% Programme P4
La fonction sawtooth gnre une onde triangulaire avec des maximums en +-1 et une
priode de 2*pi. % Gnration d'un signal exponentiel complexe
La fonction square gnre une onde carre avec une priode de 2*pi. Un paramtre clf ;
optionnel spcifie le cycle, la priode en pourcent pour laquelle le signal est positif.
c = -(1/12)+(pi/6)*i;
Maths de lIngnieur ENSI 2011-2012 Page 19 Maths de lIngnieur ENSI 2011-2012 Page 20
xlabel (Temps index en n) ; ylabel(Amplitude) ; Application :
title (Partie imaginaire) ; Gnrer et tracer un signal alatoire de longueur 100 tels que ces lments sont
uniformment distribus dans lintervalle [-2,2].
*******************************************************************
5. Gnration des signaux complexes
Le programme P5 gnre lui une squence exponentielle valeurs relles partir de
Des signaux complexes peuvent tre gnrs en utilisant les oprations faites pour les
lexpression suivante :
signaux lmentaires.
X[n]=A.cn
Par exemple un signal de modulation damplitude peut tre gnr par la
*********************************************************************** modulation dun signal sinusodal de haute frquence xH[n] = cos(Hn) avec un
% Programme P5 signal sinusodal de basse frquence xB[n] = cos(Bn). Le signal rsultant y[n] a la
forme suivante :
% Gnration d'une squence exponentielle valeurs relles
y[n] = A(1+m xB[n]) xH[n] = A(1 + m cos(Bn)) cos(Hn)
n = 0 : 35; a = 1.2; k = 0.2;
avec m, appel facteur de modulation, est choisi pour sassurer que lexpression
x = k*a.^n;
(1+m xB[n]) est positive pour toutes les valeurs de n.
stem(n,x)
Le programme P6 est utilis pour gnrer un signal modul en amplitude.
*************************************************************************
% Programme P6
n = 0 :100 ;
x = rand(1,N) ;
Maths de lIngnieur ENSI 2011-2012 Page 21 Maths de lIngnieur ENSI 2011-2012 Page 22
stem(n,y); grid; TP2 (SUITE) : CONVOLUTION DES SIGNAUX
xlabel(Temps index en n); ylabel(Amplitude);
Il sagit dans cette manipulation dtudier la convolution sur quelques exemples de
**************************************************************
signaux. On va e situer dans le cas dun systme linaire et invariant dans le temps,
Application : ces--dire que le signal de sortie de ce systme se prsente comme le rsultat du
Gnrer et tracer un signal de modulation damplitude de frquence fH=0.08 et produit de convolution entre le signal dentre x(t) et sa rponse impulsionnelle h(t).
fL=0.04 et de facteur de modulation m=0.5. Interprter.
Manipulation
1. Lancer MATLAB.
2. Excuter le programme convolution-demo.
3. A laide de cette interface gnrer le signal x(t)=u(t)-u(t-2), avec u(t) le
signal chelon unit. Pour cela utiliser le bouton choisir x(t).
4. Gnrer le signal h(t)=x(t). Pour cela utiliser le bouton choisir h(t).
5. Slectionner ensuite le signal faire dplacer, soit dplacer x(t), soit
dplacer h(t).
6. Utiliser la sourie pour faire dplacer linstant de translation t sur laxe
.
7. Interprter les signaux obtenus au fur et mesure.
8. Vrifier le rsultat obtenu graphiquement par rapport celui calcul
thoriquement.
9. Changer maintenant le signal x(t) par x(t)=u(t)-u(t-5).
10. Interprter le rsultat de la convolution obtenu.
11. Refaire la mme manipe ave les signaux suivants :
x(t ) = u (t ) u (t 5)eth(t ) = e 1 / 2 [u (t ) u (t 10)]
Maths de lIngnieur ENSI 2011-2012 Page 23 Maths de lIngnieur ENSI 2011-2012 Page 24
TP3 : INTRODUCTION LANALYSE DE FOURIER La variable u est une matrice de 20 lignes (nombre dharmoniques) et 1024
colonnes (nombre dchantillons dans le temps). On peut vrifier les tracs des
parties relles de la premire et seconde exponentielle par la syntaxe suivante :
1. Srie de Fourier
*************************************************************************
Il sagit dans cette premire manipe de voire comment calculer lamplitude et la
plot(t,real(u(1, : )))
phase des 20 premiers harmoniques du signal carr x(t) priodique de priode T=1s.
plot(t,real(u(2, : )))
Ce signal vaut 1 sur 25% de la priode et 0 sur le reste de la priode.
*************************************************************************
Utiliser le programme suivant pour gnrer le signal x(t) :
**************************************************************************
On a maintenant tous les lments pour calculer les coefficients de Fourier du
T0=1/1024 ; % priode dchantillonnage
signal x(t). Puisque lintgrale est la limite dune somme.
t=0 :T0 :1-T0 ; % discrtisation de laxe temporel
*************************************************************************
uns=ones(1,256) ; %25 pour cent de la priode vaut 1
C0=sum(x)*T0 ;
zer=zeros(1,1024-256) ;% le reste de la priode vaut 0
for k=1 :20
x=[uns,zer] ; % construire le signal x(t)
X(k)=sum(x.*u(k, : )*T0 ;
plot(t,x) % tracer le signal
end
axis([0 1 -1 2])
*************************************************************************
**************************************************************************
La 1re ligne calcule la composante continue C0. Il sagit simplement dintgrer x(t)
Maintenant que nous avons gnr le signal temporel x(t), nous allons gnrer
sur une priode. La boucle k=1 :20 calcule successivement les coefficients X(k) (20
les fonctions exponentielles : e-jkw0t qui se trouve dans lintgrale de Fourier.
premires harmoniques). La somme sum est lapproximation de lintgrale, le
Dans notre cas la priode T est gale 1s de sorte que la pulsation
symbole .* en MATLAB signifie la multiplication point par point de deux
fondamentale 0=2.
fonctions, et llment T0 est llment diffrentiel de lintgration.
Le programme suivant montre comment gnrer avec MATLAB les 20 premires
Pour afficher les spectres damplitude et de phase, on utilise les fonctions
fonctions exponentielles :
abs et angle de MATLAB :
*************************************************************************
*************************************************************************
w0=2*pi ;
A=abs(X) ;
for k=1 :20
subplot(2,1,1) ; stem(0 :20,[C0 A])
u(k, : )=exp(-j*k*w0*t) ;
P=angle(X)
end
subplot(2,1,2); stem(0:20,[angle(C0) P])
*************************************************************************
*************************************************************************
Maths de lIngnieur ENSI 2011-2012 Page 25 Maths de lIngnieur ENSI 2011-2012 Page 26
Sur la 1re ligne, on calcule le spectre damplitude partir du spectre complexe X.
Sur la 2me ligne, on affiche le spectre damplitude (incluant la composante continue
1
Finalement, on montre ici comment faire pour reconstituer le signal dorigine -0.2
0 1 2 3 4 5 6 7 8
y=y+2*A(k)*cos(k*w0*t+P(k)) ; T=1s. Les coefficients de Fourier X(k) sont calculs par la formule suivante :
T
end 1
x(t )e jkt dt
T 0
X (k ) =
plot(t,y,b,t,x,r)
*************************************************************************
Dans ce code, on a utilis la proprit des sries de Fourier pour les signaux rels qui Reprsenter le module des 20 premiers coefficients spectraux de ce signal.
remplace les exponentielles en cosinus. La dernire ligne trace le signal y Que se passe-t-il maintenant si on double la priode du signal qui devient
reconstruit partir des harmoniques en bleu et le signal dorigine x(t) en rouge. T=2 ?
On peut vrifier lapport du nombre des harmoniques sur lapproximation du Mme questions pour T=4 et T=8.
signal dorigine x(t) en faisant varier le nombre des harmoniques entre 5 et 30 Que se passe-t-il si on fait tendre la priode du signal vers linfini ?
Application :
Calculer et reprsenter les spectres damplitude et de phase (20 premires
harmoniques) du signal triangulaire ci-dessous. Afficher la reconstruction de ce
signal partir de ces harmoniques en faisant varier le nombre des harmoniques entre
5 et 30 par pas de 5.
Maths de lIngnieur ENSI 2011-2012 Page 27 Maths de lIngnieur ENSI 2011-2012 Page 28
TP 3(suite) : ANALYSE ET SYNTHSE DE SIGNAUX A : amplitude
PRIODIQUES En utilisant lquation (2) pour calculer les coefficients de Fourier, nous obtenons :
t
x(t ) = A cos(2 )
T0
T0 : priode
Maths de lIngnieur ENSI 2011-2012 Page 29 Maths de lIngnieur ENSI 2011-2012 Page 30
1
T0 T0
x0 = a 0 = x(t )dt
Les relations donnant les valeurs de an et bn sont obtenues partir des quations (6)
et (2) :
2 t
x(t ) cos(2n )dt
T0 T0
an =
T0
2 t
x(t ) sin(2n )dt
T0 T0
bn =
T0
Les coefficients an et bn ne sont dfinis que pour des valeurs de n positives. Dans le
cas des signaux rels ( partie imaginaire nulle) une relation simple provenant de la
Cette reprsentation permet de faire un calcul trs simple de la puissance moyenne
proprit de symtrie hermitienne permet de calculer les coefficients xn pour des
totale par le thorme de Parseval :
indices n ngatifs partir des valeurs de xn pour n positif : x n = x *n
+
1 T0 2
P= x (t )dt = xn2 En appliquant ces relations notre signal sinusodal, le seul coefficient diffrent de 0
T0 0
n = est a1=A. Ce rsultat sobtient galement de faon trs simple dans ce cas particulier
Le rsultat P=A2/2 est alors immdiat partir du spectre reprsent prcdemment. en identifiant les quations (3) et (5).
formule (1) par cosinus + i sinus. Ensuite, on identifie le rsultat obtenu avec le priodique de priode T0, le rsultat obtenu donne en ralit les mmes informations
dveloppement en srie trigonomtrique donn ci-dessous : que les coefficients de Fourier, ceci va tre dmontr prsent :
+ +
t t
x(t ) = a0 + an cos(2n ) + bn sin(2n )
T0 n = T0
n =
a ibn
xn = n
2 pour n diffrent de 0
Maths de lIngnieur ENSI 2011-2012 Page 31 Maths de lIngnieur ENSI 2011-2012 Page 32
+ a) Sinusode redresse
X( f ) = x(t ) exp(2ift )
+ + t
= x n exp 2in exp( 2ift )dt
T
n= 0
+
+ n
= xn
exp 2i f t dt
T
n = 0
+
n
= x n f
T
n = 0
b) Rampe
a) pour un signal rel et pair tous les coefficients bn sont nuls seuls les coefficients an
sont diffrents de zro.
b) pour un signal rel et impair tous les coefficients an sont nuls seuls les coefficients
bn sont non nuls.
4. Travail demand
bien relever les priodes des signaux (attention laxe des abscisses est donn en
millisecondes):
Maths de lIngnieur ENSI 2011-2012 Page 33 Maths de lIngnieur ENSI 2011-2012 Page 34
- Calculer les coefficients de Fourier dun peigne de Dirac de priode gale 1
seconde.
c) Signal modul en amplitude
- En dduire les valeurs des coefficients a0, an et bn.
dcomposition en srie trigonomtrique dece signal, il n'est pas ncessaire d'utiliser Pour chaque fonction il faudra calculer les valeurs pour an, bn et a0. C'est ainsi que
les formules 7 et 8 pour calculer les coefficients an et bn, il suffit de dvelopper le l'on pourra synthtiser de faon exacte ou de manire approche les signaux
produit des fonctions cosinus apparaissant dans l'quation prcdente. Le signal y(t) a),b),c),d) partir de leurs dcompositions en srie trigonomtrique.
peut alors s'exprimer comme la somme de fonctions cosinus, on ralise donc aussi la - Pour les signaux a) et b), relevez et commentez l'volution des ondulations
dcomposition de ce signal en somme de plusieurs sinusodes que l'on peut appeler prsentes sur les signaux synthtiss x(t) au fur et mesure que vous augmentez le
srie trigonomtrique. nombre N de sinusodes. En dduire l'origine de ces ondulations qui constituent ce
- Dterminer la priode du signal modul ainsi que les coefficients de Fourier. qu'on appelle l'effet Gibbs. Comment expliquez-vous que ces ondulations soient plus
importantes sur la rampe que sur le sinus redress. Pour vos explications, basez-vous
Le peigne de Dirac a t tudi en cours et nous avons dtermin la transforme de - Pour le signal c), vrifiez que le signal que vous obtenez par synthse de
Fourier de ce signal et donc ses diffrents coefficients de Fourier. plusieurs sinusodes correspond exactement celui reprsent dans l'nonc.
Maths de lIngnieur ENSI 2011-2012 Page 35 Maths de lIngnieur ENSI 2011-2012 Page 36
- Pour bien visualiser leffet Gibbs et son volution avec le nombre N de TP 4 : UTILISATIO N DE LA TFD
sinusodes ajoutes, crer dans la fonction Dirac une animation obtenue en r
initialisant dans une boucle while le graphe obtenu pour le tracer de x(t) au fur et
POUR LANALYSE SPECTRALE DE SIGNAUX
mesure que N augmente. Expliquer en conclusion pour quelles raisons il est
impossible de gnrer un peigne de Dirac ou une impulsion de Dirac. 1. Introduction
Le but de ce TP est dinterprter correctement les rsultats obtenus par le calcul
dune transforme de Fourier discrte dans le cas de signaux priodiques. Il faudra
pouvoir lier ces rsultats aux coefficients de Fourier et la transforme de Fourier du
signal chantillonn. A titre dillustration on traitera des cas simples de signaux
priodiques et on verra tout lintrt de lanalyse spectrale sur des signaux
priodiques bruits. Nous verrons comment le choix de la frquence
dchantillonnage et du nombre dchantillons influe sur les spectres obtenus. Pour
des rappels sur lanalyse de Fourier de signaux priodiques, reportez vous
lintroduction du TP 2. On peut facilement exprimer la transforme de Fourier X(f)
partir des coefficients de Fourier xn pour un signal priodique x(t) :
+ n
X( f ) = xn f
T
n = 0
+
x s (t ) = x(t ) Te (t ) = x(t ) (t nTe )
n=
Maths de lIngnieur ENSI 2011-2012 Page 37 Maths de lIngnieur ENSI 2011-2012 Page 38
X s ( f ) = X ( f ) * f e f e ( f ) Cette quation sobtient en simplifiant lexpression de la transforme de Fourier de
+ xs(t) calcule en
= fe X ( f nf e )
n=
f=n/T0. T0 dsigne ici le temps de mesure du signal, N reprsente le nombre de
La simplification opre pour passer de la premire la deuxime ligne de lquation points chantillonns sur cette dure, et tm=mte o te est la priode dchantillonnage
(3) est due la proprit dlment neutre de limpulsion de Dirac pour la qui correspond T0/N. La majeure partie des problmes danalyse spectrale par
convolution. La figure suivante illustre la relation existant entre X(f) et Xs(f). calcul de transforme de Fourier discrte proviennent de cette limitation de dure du
Attention la fonction Xs(f) tant priodique de priode fe, il est impossible de la signal qui est videmment indispensable. En effet limiter la dure de x(t) revient
reprsenter dans son intgralit (de - +). multiplier x(t) par une fonction porte de largeur gale T0. X(f) sera alors convolu
par la transforme de Fourier de cette fonction porte qui est un sinus cardinal. Au
lieu davoir un spectre de raies pour un signal priodique on aura des fonctions sinus
cardinales prsentant diffrents lobes (un lobe principal ou central et des lobes
secondaires) qui donnent lieu leffet Gibbs. Les problmes de rsolution spectrale
en analyse par transforme de Fourier discrte sont lis au recouvrement possible de
ces lobes.
Cette figure montre bien quil est ncessaire dchantillonner le signal une x(t ) = cos(2f1t ) avec f1 = 1Hz
frquence fe suprieure ou gale 2 fois la bande limite du signal B de manire
1
viter un recouvrement de spectre (thorme de Shannon). On comprend ds lors X( f ) = ( ( f f1 ) + ( ( f + f1 )
2
lintrt dun filtre anti-repliement placer avant lchantillonneur pour limiter le
spectre du signal. On conoit galement quune simple opration de filtrage passe- Le spectre en amplitude de ce signal priodique est donc form dune impulsion de
bas puisse permettre de reconstruire le signal initial partir de ces chantillons. La Dirac dans les frquences positives situe en f1=1Hz. Pour calculer une TFD sur ce
figure prcdente montre galement une proprit importante de Xs(f) : la signal, on est amen limiter le nombre dchantillons du signal, donc la dure de
priodicit. celui-ci. On note alors x(t) le signal x(t) limite un intervalle de temps allant de 0
Dans notre exemple, nous avons choisi N=8 et fe=8Hz. Voici ce que nous obtenons
dans ce cas au niveau des spectres.
+
X s ( f ) = fe X '( f kf e ) Dans lexemple que nous venons de traiter, nous avons particulirement bien choisi
k =
la frquence dchantillonnage fe et la dure de mesure T0.
Maths de lIngnieur ENSI 2011-2012 Page 41 Maths de lIngnieur ENSI 2011-2012 Page 42
Fourier ou la transforme de Fourier du signal priodique. Cest ce que nous
pouvons observer au travers de l'exemple suivant dans lequel pour le mme signal
priodique, nous avons choisi une dure de mesure T0 diffrente dun multiple entier
de la priode.
2) partie imaginaire
3) module
Pour tracer ces 4 graphes, il faut bien sur dfinir la fonction tudier et les conditions
dchantillonnage. On choisit danalyser une fonction cosinus, il faudra fournir son
amplitude et sa frquence ainsi que la frquence dchantillonnage fe et la dure de
mesure T0 comme paramtres dentres de votre programme. Si vous voulez par
exemple tudier un signal de frquence 3kHz et damplitude 0.2 avec une frquence
Maths de lIngnieur ENSI 2011-2012 Page 43 Maths de lIngnieur ENSI 2011-2012 Page 44
dchantillonnage 30kHz et une dure de mesure 1ms, il faudra taper exemple sommer la fonction cosinus un vecteur ab*randn(1,length(t)) o ab dsigne
tfd(3000,0.2,30000,0.001) pour obtenir les 4 graphes donnant les reprsentations lamplitude du bruit et length(t) la longueur du vecteur temps not t.
temporelles et spectrales du signal.
La variable ab devra tre fourni comme paramtre dentre de la fonction tfd. Au
NB : - pour calculer la transforme de Fourier discrte vous pouvez utiliser niveau des graphes tracer, contentez vous prsent de reprsenter le signal en
linstruction fft. fonction du temps et le spectre en amplitude (reporter uniquement le module et pas
les parties relles et imaginaires).
- utiliser toujours de prfrence linstruction stem plutt que plot.
Si vous voulez par exemple tudier un signal sinusodal de frquence 3kHz et
- Expliquer comment vous allez calculer le vecteur temps ncessaire la
damplitude 0.1 bruit par la fonction randn damplitude 0.1 et chantillonn une
reprsentation temporelle du signal.
frquence dchantillonnage 100kHz sur une dure de mesure 1ms, il faudra taper
- Expliquer comment vous allez calculer le vecteur des frquences ncessaire pour tfd(3000,0.1,0.1,100000,0.001) pour obtenir les 2 graphes donnant les reprsentations
pouvoir reprsenter le spectre. temporelles et spectrales du signal.
- En reprenant lexemple donn prcdemment expliquez comment vous pouvez - Observer et commenter les graphes obtenus pour le signal pris comme exemple
exploiter le spectre pour retrouver lamplitude et la frquence du signal. auparavant en choisissant pour ab diffrentes valeurs : 0.01, 0.05 et 0.1. Essayer dans
chaque cas dexploiter les deux reprsentations (temporelles et frquentielles) pour
- Dterminer les valeurs minimales de fe et T0 qui permettent dobtenir un spectre
en extraire lamplitude et la frquence de la sinusode, quelles conclusions peut-on en
exploitable pour ltude dun signal dfini par x(t) = 5cos(100t), jentends par
tirer quant lintrt de ltude frquentielle dun signal.
spectre exploitable un spectre partir duquel il est possible de dterminer
lamplitude et la frquence du signal sans aucune ambigut. Il est bien sr
souhaitable de donner les graphes obtenus pour les valeurs de fe et T0 choisies.
2.3. Analyse dune somme de sinusodes
- Expliquer pourquoi lorsque vous tapez tfd(1000,1,1050,0.04) vous observez une
Reprenez la fonction tfd prcdente en remplaant cette fois le bruit par une
reprsentation temporelle du signal qui laisse penser que le signal a une priode de
deuxime fonction cosinus. Pour raliser cette addition, il faudra par exemple
0.02s. Commenter et interprter galement le spectre obtenu.
sommer la fonction cosinus de dpart un vecteur a2*cos(2*pi*f2*t) o a2 et f2
dsignent lamplitude et la frquence de la deuxime sinusode. Les variables a2 et f2
devront tre fournis comme paramtres dentre de la fonction tfd.
2.2. Analyse dune fonction cosinus bruite
Si vous voulez par exemple tudier une somme dun signal sinusodal de frquence
Reprenez la fonction tfd prcdente en rajoutant cette fois la fonction cosinus du
3kHz et damplitude 0.1 et dune fonction cosinus de frquence 3.3kHz et
bruit obtenu grce linstruction randn qui permet de gnrer des nombres
damplitude 0.05 chantillonne une frquence dchantillonnage 100kHz sur une
alatoires qui suivent une loi gaussienne. Pour raliser cette addition, il faudra par
Maths de lIngnieur ENSI 2011-2012 Page 45 Maths de lIngnieur ENSI 2011-2012 Page 46
dure de mesure 1ms, il faudra taper tfd(3000,0.1,3300,0.05,100000,0.001) pour TP 5 : UTILISATION DE LA TFD
obtenir les 2 graphes donnant les reprsentations temporelles et spectrales du signal.
POUR LESTIMATION DUNE FONCTION DE
- Observer et commenter les graphes obtenus dans lexemple prcdent.
Essayer dextraire de ces graphes les amplitudes et frquences des deux
CORRLATION
sinusodes.
1. Introduction
- Quel est le paramtre dchantillonnage modifier pour pouvoir extraire
Un signal alatoire X(t,) est dfini chaque instant t1,t2,t3, par sa loi de probabilit
correctement les amplitudes et frquences des deux sinusodes. Reprsenter et
temporelle:
exploiter les graphes alors obtenus.
p(x1,x2,x3,,t1,t2,t3,). Il existe un grand nombre de lois de probabilit dont la loi
- En guise de conclusion gnrale ce TP donner les points forts de lanalyse gaussienne et la loi uniforme:
frquentielle de signaux priodiques par transforme de Fourier discrte.
1 (x m )2
loi gaussienne : p( x) = exp x
2 2 2
loi uniforme :
1
p( x) = xsup xinf
[
sur xinf , xsup ]
ailleurs
0
Il est possible de gnrer les signaux alatoires partir de variables alatoires qui
suivent ces lois de probabilit. On peut ainsi gnrer des bruits en prenant comme
modle:
Y (t , ) = Y (t , X ) = aX + b
Maths de lIngnieur ENSI 2011-2012 Page 47 Maths de lIngnieur ENSI 2011-2012 Page 48
Ces moments sont calculs partir d'ensembles statistiques forms par des L'avantage de cet estimateur est son absence de biais, mais sa variance devient
observations du signal en diffrents instants (t1, t2, ). Pour obtenir des rsultats importante lorsque p tend vers N-1. Les fonctions de corrlation qui vont tre
significatifs, il est donc ncessaire de constituer des ensembles importants, et pour calcules par la suite permettront de saisir les notions de biais et de variance dun
cela un grand nombre de relevs doit tre entrepris. Il est souvent plus facile de estimateur.
travailler sur un seul relev du signal en fonction du temps et de calculer alors des
moments temporels. C'est ce qui est fait habituellement pour des signaux 3. Utilisation de la TFD pour calculer ces estimes
dterministes, pour les signaux alatoires, ces moments temporels ne donnent des Pour calculer une fonction de corrlation numrique, il est plus intressant de passer
rsultats significatifs que si on fait l'hypothse d'ergodicit, c'est dire que les dans le domaine frquentiel au moyen de la TFD pour des signaux prsentant plus
moments ou moyennes temporelles correspondent aux moments statistiques. Nous de 80 chantillons car les oprations sont moins nombreuses donc plus rapides
allons prsenter les deux principales manires d'estimer numriquement la fonction excuter. Lutilisation de la TFD est base sur le thorme de Plancherel qui dit que la
d'autocorrlation. transforme de Fourier dun produit de convolution de deux signaux donne le
produit simple de la transforme de Fourier des deux signaux :
2. Estimation numrique de l'autocorrlation TF ( x (t ) * y (t )) = X ( f )Y ( f )
La fonction d'autocorrlation Rx() est calcule en prenant la valeur moyenne de Il est possible dutiliser ce thorme pour estimer la fonction dautocorrlation car
X(t,) multipli par X(t-,). Pour simplifier les critures, les signaux numriss sont cette dernire renferme une convolution : R x ( ) = x( ) * x * ( )
le plus souvent exprims en fonction d'indices prenant des valeurs entires. Par
Si on applique cette dernire relation au cas dun signal numrique sur lequel on
exemple, au lieu d'crire x(tm) avec tm=mte (te: priode d'chantillonnage), on prfre
essaie de calculer lestimateur biais de lautocorrlation, on obtient :
crire x(m). Ainsi, pour estimer numriquement la fonction d'autocorrlation, on
pose simplement le calcul d'une valeur moyenne sur lensemble de N chantillons
1 N 1 1
qui constituent x(m): r1 ( p ) = x(m) x* (m p) = N ( x( p) * x* ( p))
N m= p
1 N 1
r1 ( p ) = x ( m) x * ( m p ) pour 0 p N 1 N 1
N m= p O * dsigne la convolution linaire dfinie par: x( p ) * y ( p ) = x ( m) y ( p m)
m=0
Lorsque p tend vers N-1, peu de termes interviennent dans le calcul de la moyenne
alors que le terme de normalisation reste constant 1/N. Cela a pour consquence Avec y( p -m) = 0 pour ( p -m) est en dehors de l'intervalle [0, N -1]
d'introduire un biais dans l'estimation: l'autocorrlation est pondre par une fentre
La difficult pour les signaux numriques est quil existe deux dfinitions de la
triangulaire.
convolution : la convolution cyclique et la convolution linaire. La convolution
Pour liminer le biais, un second estimateur peut tre dfini de la faon suivante:
cyclique est dfinie par la relation :
1 N 1
r2 ( p ) = x ( m) x * ( m p )
N p m= p
pour 0 p N 1
Maths de lIngnieur ENSI 2011-2012 Page 49 Maths de lIngnieur ENSI 2011-2012 Page 50
N 1 laxe des abscisses ncessaire reprsenter les autocorrlations. Les valeurs de r(p)
x( p ) * y ( p ) = x ( m) y ( p m) en imposant une priodicit N pour les signaux et x et
pour des valeurs de p ngatives sont obtenues grce la proprit de priodicit des
m =0
y de manire pouvoir calculer les valeurs de y(m-p) lorsque m-p<0 (y(m-p)=y(m- autocorrlations estimes avec la TFD.
p+N)).
TFD ( x( p ) * y ( p )) = TFD( x( p )).TFD ( y ( p )) , ce qui permet de raliser cette opration de 4.1. Autocorrlation d'une sinusode
la manire suivante :
Ecrivez une fonction que vous nommerez autocor.m et dans laquelle vous gnrez
x( p ) * y ( p ) = TFD 1 (TFD ( x( p )).TFD ( y ( p))) o TFD dsigne la TFD inverse par exemple un signal sinusodal d'amplitude 1 de frquence 0.1Hz chantillonn
-1
une frquence de 1Hz en 50 points en partant de 0s. Les paramtres dentre seront :
Cette dernire galit ntant pas applicable la convolution linaire, une manire de
lamplitude et la frquence de la sinusode, la frquence dchantillonnage et le
contourner le problme pour pouvoir utiliser la TFD afin de calculer une convolution
nombre dchantillons. On considrera que le vecteur temps part de 0. Pour traiter
linaire est de rajouter N zros aux signaux x et y. La convolution inaire de deux
lexemple prcdent, il faudra taper : autocor(1,0.1,1,50).
signaux x et y de N chantillons chacun peut donc tre calcule de la manire
suivante : - La fonction devra effectuer les calculs et tracs des estimations biases et non
biaises de ce signal par les diffrentes formules donnes auparavant : 4.1, 4.2,
1
x( p ) * y ( p ) = TFD ( X ' Y ' ) avec X' et Y' correspondant : X '= TFD(x + N0), Y'= TFD( 4.3 et 4.4. Vrifier que vous obtenez les mmes rsultats par ces trois mthodes
y + N0). Les deux estimes de lautocorrlation peuvent donc tre calcules de la pour les deux estimations. Ne passer pas plus dune heure sur cette partie car
manire suivante : lessentiel du TP nest pas l. Par la suite, on se contentera de calculer et tracer
uniquement les deux estimes obtenues avec linstruction xcorr.
1
r1 ( p ) = TFD 1 ( X ' X '* )( p ))
N
- Tracer et comparer les estimations biaises et non biaise de lautocorrlation
[r1,p]=xcorr(x,x,biased) pour lestimateur biais - Sachant que la puissance moyenne totale est donne par la fonction
d'autocorrlation en zro, donnez l'expression de l'estime numrique de la
[r2,p]=xcorr(x,x,unbiased) pour lestimateur non biais
puissance moyenne totale partir des estimateurs biais et non biais de
r1 et r2 sont les deux vecteurs renfermant les deux estimes ; p reprsente un vecteur l'autocorrlation. Calculer l'estime la puissance moyenne totale du signal et
qui contiendra les valeurs entires allant de (N-1) (N-1) et va servir pour calculer confronter votre rsultat la thorie.
Maths de lIngnieur ENSI 2011-2012 Page 51 Maths de lIngnieur ENSI 2011-2012 Page 52
4.2. Autocorrlation d'un bruit blanc 4.3. Autocorrlation d'un sinus bruit
Sous Matlab comme dans la plupart des langages de programmation, il existe un Rajoutez prsent dans la fonction autocor.m des instructions pour gnrer et tracer
gnrateur de nombres alatoires qui permet de modliser un bruit chantillonn. un sinus bruit par un bruit blanc gaussien centr. On prendra comme exemple un
Matlab propose deux types de gnrateur: rand et randn. sinus damplitude 1 et de frquence 0.1Hz constitu de 500 chantillons relevs une
frquence de 1Hz.
- En comparant les histogrammes obtenus pour ces deux bruits en tapant
hist(rand(1,1000)) et hist(randn(1,1000)) donnez les diffrences essentielles des - Sachant que l'on dsire un rapport signal sur bruit de 0dB, en dduire la variance
deux gnrateurs. du bruit blanc.
- Calculer l'estime de la puissance moyenne totale du signal obtenu partir - Commenter le trac du signal bruit, peut-on dterminer lamplitude et la frquence
de l'instruction randn(1,1000). de la fonction sinus ?
- Calculer galement l'estime de la valeur moyenne du mme signal. - Tracer et commenter les estimations biaises et non biaises de son autocorrlation
- Comment partir dun ensemble de variables alatoires qui suivent une loi - Exploiter ces tracs afin de retrouver la puissance moyenne totale du bruit, du sinus
de distribution gaussienne de moyenne nulle et de variance 1 est-il possible de et la frquence du sinus.
gnrer un signal alatoire de moyenne a et de variance b ?
Maths de lIngnieur ENSI 2011-2012 Page 53 Maths de lIngnieur ENSI 2011-2012 Page 54