A_cours_TdS_master_Signaux_Generalites_DeltaDirac

Report
Modélisation des signaux
Un signal expérimental est une grandeur physique (oscilloscope, ...) et doit donc être
physiquement réalisable. Ces signaux physiques sont représentés par des fonctions x(t) à
valeurs réelles d'une variable réelle t. Le signal possède les caractéristiques suivantes :
- énergie bornée (tend vers 0 lorsque  → ∞) ;
- amplitude bornée ;
- continu temporellement ;
- causal (x(t) = 0 pour t < 0) ;
- spectre du signal borné (tend vers 0 lorsque f → ∞).
Mais sur le plan théorique, pour la commodité du
calcul et l'étude de certains phénomènes, les
signaux peuvent être représentés par des fonctions :
- à énergie théorique infinie (sin(t));
- avec des discontinuités (signal carré) ;
- définies sur l'ensemble des réels (sin(t) est
définie même pour t<0) ;
- à valeurs complexes : x(t) = A e jt = A[cos(t) + j.sin(t)].
1
Modélisation des signaux, propriétés des signaux complexes
 2 = −1
 =  + 
 = .   = .   + .  
module de y :
 = 2 + 2 = 
Argument de y :
  = 

  = 
 .  =   .   =   .   =  .
On associe le point M au
nombre complexe  =  + 
conjugué de y :
 ∗ =  − 
.  ∗ =  +  .  −  = 2 + 2 = 
2
Classification déterministe/aléatoire (phénoménologique)
- les signaux certains (ou déterministes) dont l'évolution en fonction du temps peut
être parfaitement décrite par un modèle mathématique. Ces signaux proviennent de
phénomènes pour lesquels on connaît les lois physiques correspondantes et les
conditions initiales, permettant ainsi de prévoir le résultat ;
- les signaux aléatoires (ou probabilistes) dont le comportement temporel est
imprévisible et pour la description desquels il faut se contenter d'observations
statistiques.
3
Classification continu/discret (morphologique)
Les 4 morphologies selon que l’axe des abscisses (temps) ou l’axe des ordonnées
(amplitude) est discrétisé ou non.
4
Analogie avec l’électrocinétique pour définir l’Energie d’un signal
i()
 é é  
()
2
2
  =
=   ∗   = R =


()
 =1Ω
 é  1  2
=
2
1
 
 ′   ()
+∞
 =
  .   
−∞
 
Voir un peu plus loin
la diapositive
« Intégration Numérique »
   ∝
2
1
2  ∝
2
1
 2 
Classification énergétique
On appelle énergie Eyy et puissance moyenne Pyy d'un signal y(t), les valeurs suivantes :
+∞
 =
+∞
 2 ;
   =
−∞
−∞

 =  →∞
1

=  →∞
1

∗     − é ∶
2
  
− 2

∗    ,   2  ∶
 2 =   . ∗ 

1
=


 2 
0
2
 2 
− 2
On en déduit 2 classes de signaux :
signaux d’énergie finie  < ∞.
On a :  = 0. (signaux transitoires, signaux physiques, à support borné: en l’infini positif
et négatif, le signal tend vers zéro); Ces signaux sont aussi appelés « signaux de carré
sommable ».
signaux de puissance moyenne finie non-nulle : 0 <  < ∞
On a  = ∞. (signaux périodiques, quasi-périodiques ou aléatoires permanents).
6
signal à puissance finie (énergie infinie)
signal à puissance nulle (énergie finie)
Classification spectrale
Un signal peut être classé suivant la distribution de son énergie ou de sa puissance en
fonction de la fréquence (spectre du signal   2 ).
Largeur de bande du signal : F
Fréquence moyenne Fmoy = (Fmax — Fmin)/2
2 classes de signaux :
• signaux à bande étroite :
F/Fmoy petit  (soit Fmax  Fmin) ;
• signaux à large bande :
 F/Fmoy grand  (soit Fmax >> Fmin).
Théorème de Parseval:
l’énergie d’un signal se retrouve
intégralement dans son spectre.
X(f), la représentation du signal dans le
domaine fréquentiel est obtenu par
une transformation de Fourier
8
La distribution de Dirac (t)
Par définition, la distribution (ou « pic ») de Dirac (t) est une impulsion centrée
sur t=0 de largeur infiniment étroite et de surface unité. Elle est donc partout
nulle sauf en t=0.
9
La distribution de Dirac (t)
Par rapport à (t), la courbe (t-t0) est
décalée vers les t>0 si t0>0.
La distribution de Dirac permet de
« prélever » la valeur d'une fonction
pour un temps donné :
Produit de 2 fonctions
Produit d’un scalaire
et d’une fonction
Propriété de
localisation
Il est nécessaire de conserver dans l'expression le produit par la distribution de
Dirac afin de ne pas perdre l'information temporelle qui lui est liée.
La distribution de Dirac (t)
La propriété de localisation permet d’écrire:
+∞
+∞
  .   −   =
−∞
+∞
  .   −   =  
−∞
  −   =  
−∞
+∞
soit:
  =
1
  .   −  
On verra que cette relation peut être comprise comme :
« la valeur du signal x à un instant t est égale à l’énergie
d’interaction du signal x et d’un pic de Dirac décalé en t »
−∞
On a aussi :
+∞

−∞
2 .    =
+∞

−∞
20 .    =
+∞
1. 
−∞
  = 1
L’impulsion de Dirac peut aussi être définie par :
+∞
  =
 2 
−∞
11
TF de fonctions sinusoïdales
Démontrer les relations:
1
  − 0 +   + 0
2
 cos 20 
=
 sin 20 
1
=
  − 0 −   + 0
2
et
en utilisant les formules d’Euler:
exp  = cos  + . sin  ;
On rappelle la relation :
exp − = cos  − . sin 
+∞
(−2) 
−∞
=  
Démarrer Matlab, configurer le « desktop », créer un dossier de travail, ouvrir l’éditeur
Lancer Matlab en double-cliquant l’icône
ou sur :
Configurer le bureau « desktop » en défaut
Fermer la fenêtre « historique »
En cliquant sur l’icône
naviguer par exemple jusqu’à votre clé usb et créer un
nouveau dossier nommé par exemple « master_TdS ». C’est là où seront sauvés vos
travaux.
L’icône
ouvre un éditeur de texte permettant de créer des programmes
(aussi appelés « scripts » ou « M-file ») et des fonctions.
Créer un signal en écrivant un programme, utiliser les fonctions ones, size , xlim, ylim, xlabel, ylabel,
grid, plot
Etudier, réaliser et exécuter le script ci-dessous.
Les lignes précédées du symbole « % » sont des commentaires qui ne seront pas exécutées.
% Création du vecteur t.
% t s'étale de -10 secondes à + 10 secondes par pas de 0.1 seconde. Le ";" évite l'affichage des 201
% éléments.
t = -10 : 0.1 : 10;
% Création du vecteur p qui sera nul partout sauf entre -0,5 s et +0,5 s.
% Exemple 1 : a = ones(2, 4) renvoie une matrice 2 lignes 4 colonnes composée de 1.
% Exemple 2 : size(t) renvoie [1, 201].
p = ones(1, 201);
tau=0.5;
% Les éléments de p dont les indices répondent à certaines conditions sont mis à zéro.
p(t<-tau)=0;
p(t>tau)=0;
% On représente le résultat avec "t" en abscisse et "p" en ordonnée. Les points seront symbolisés
% par des "o" et reliés entre eux grâce au symbole « - ».
plot(t, p, '-o')
% On définit les limites du graphe et on fait afficher une grille. On place le titre des axes.
xlim([-12, 12])
ylim([-0.5, 1.5])
grid on
xlabel('t(s)')
ylabel('fonction "porte"')
Enregistrer un programme, utiliser les fonctions clear, clc, exécuter un programme en l’appelant
Sauver le script sous le
nom « A1»
Le fichier A1.m apparait
dans le répertoire
courant
Dans la fenêtre de commandes, taper :
>> clear % les variables en cours sont effacées
>> clc % la fenêtre des commandes est effacée
>> A1 % le script est lancé, les variables apparaissent
% dans le « workspace »
Mettre au point un programme, utiliser l’aide
Dans l’éditeur on peut exécuter une partie
seulement du programme afin de la mettre au
point. Pour cela, sélectionner les lignes à tester,
cliquer-droit et « évaluer »
En naviguant dans l’aide,
on peut
trouver les fonctions Matlab nous permettant
d’atteindre nos objectifs. Ici pour calculer
l’énergie, on a besoin d’une fonction
d’intégration.
Créer des vecteurs, utiliser l’indexation directe, utiliser l’indexation logique
Dans un programme A0 créer le vecteur a de la façon suivante :
a=0:0.1:20;
Par défaut Matlab le forme sur une ligne et 201 colonnes :
Pour rendre un vecteur vertical (201 lignes, 1
colonne), écrire la commande : a=a(:) 
On peut extraire une partie de a, par
exemple les éléments indexés de 1 à 5 :
 b=a(1:5)
Ou de 11 à 20 par pas de 2 :
c=a(11:2:20)
L’extraction peut se faire « logiquement » (Vrai/Faux) : d=a(a>0.4) 
Etudier, deviner ce que réalisent, puis exécuter chacune des commandes suivantes dans le script A0
ou dans la fenêtre de commandes :
A =zeros(1, 10)
for i=1:2:10, A(i)=1, end
B=[zeros(1,4),ones(1,5)] % les crochets [ et ] sont appelés « opérateur de concaténation
C=[] % la variable C doit être initialisée avant d’être utilisée dans la boucle for…end
for i=1:4, C=[C,zeros(1,2),1], end
D=[1,2,8,0,-4,12]
D=[1,2,8,0,-4,12, -1000];
E=D(2:4)
F=D(D>4)
G=[E, F]
H=[E;F]
I=D(2:2:10)
La fonction « rand » renvoie des
nombres aléatoires compris entre 0 et 1.
Etudier les 2 commandes suivantes:
K=rand(5,4)
K(3:5,3)=1
Mettre une matrice à la puissance 2, utiliser la fonction trapz, calculer l’énergie et la
puissance d’un signal
Après avoir lu et étudié les 4 diapositives suivantes concernant les opérations sur les
matrices et l’intégration numérique, reprendre le programme A1 qui définit p(t) = 1 si t
 [-0.5, +0.5]; p(t) = 0 ailleurs.
Calculer l’énergie de la « porte » p(t) en complétant le script avec les lignes suivantes :
% On calcule l'énergie.
% On définit d'abord le carré de la porte p. Puis on calcule l'intégrale E
p2=p.^2;
E=trapz(t,p2);
Mathématiquement on calcule (avec tau=0,5) :
+∞
+
() 2  =
 =
−∞
+
() 2  =
−
1  =  − − = 1
−
Obtenez vous le même résultat avec le script Matlab ? D’où provient la différence
théorie/numérique (faire un zoom sur la figure représentant le signal p2(t)) ?
1 2
 →∞  −
2
Calculer la puissance théoriquement ℎ =
() 2  et
E=trapz(t,p2)
numériquement la puissance  =   −(1) du signal porte.
19
Addition des matrices (+) Les matrices doivent être de même dimension (size)
Produit élément à élément (.*)
Remarquer le point « . » précèdant l’opérateur multiplication.
Les 2 matrices doivent être de même dimension (ici elles sont 3X2).
La même chose s’applique pour l’opérateur puissance « .^ »
Produit matriciel (*)
Le nombre de colonnes de la M1 doit
être égal au nombre de lignes de la M2
Intégration numérique

Dans ce exemple, il s’agit de calculer l’intégrale     qui est égale à l’aire sous la courbe.
Cette aire est découpée en rectangles représentés en rouge sur la figure. L’aire de chacun de

ces rectangles est   .  et on en fait la somme     = 1 + 2 + 3 + ⋯ + 6
Cette méthode est améliorée si ce sont des trapèzes qui sont utilisés à la place des rectangles.
Sous Matlab, l’opération est réalisée en utilisant la fonction trapz selon la syntaxe :
   = (, )
Avec t = vecteur des temps = 1 , … , 4 et f le vecteur des valeurs de f à ces instants.
Créer un signal sinusoïdal complexe, calculer son énergie et sa puissance, utiliser l’indexation directe
d’un vecteur (t(1), t(2), …, t(end))
L’objectif est de calculer l’énergie et la puissance du signal sinusoïdal complexe : u(t) = a.exp(jt).
Une étude théorique montre qu’on a :
+∞
+∞
. () 2  =
 =
−∞
+∞
 2 . () 2  =
−∞
et u(t) étant T-périodique, la définition de la puissance est :
1
 =


0
1
. () 2  =

 2  = +∞
−∞

 2  = 2
0
On prendra  = 2 et  = 0.5 rad/s. L’énergie Eu sera calculée sur des domaines de plus en grands :
0 ≤  ≤ , puis 0 ≤  ≤ 2, puis 0 ≤  ≤ 3, …




La puissance  = sera calculée selon :  =  0≤≤ , puis  =  0≤≤2 , puis  =  0≤≤3 , … Les

−0
2−0
3−0
résultats sont-ils conformes à ce que l’on attend ? Pour répondre, mettre les lignes suivantes dans le
bon ordre, étudier et exécuter le script qui sera nommé A2 :
u2 = abs(u).^2; % voir l'aide sur « abs », « subplot », …
a=2; w=0.5; % la valeur de oméga « w » permet de calculer celle de la période T=2*pi/w=4*pi
t = 0 : 0.1 : 2*T; u = a*exp(j*w*t);
ru=real(u); iu=imag(u);
E=trapz(t,u2), P=E/(t(end)-t(1))
subplot(2,1,2); plot(t, iu, '-*'), ylim([-2.2, 2.2]), grid on
subplot(2,1,1), plot(t, ru, '-o'), ylim([-2.2, 2.2]), grid on
xlabel('t(s)'), ylabel('partie réélle de u(t)')
xlabel('t(s)'), ylabel('partie imaginaire de u(t)')
T=4*pi;
Utiliser la fonction zeros, créer un delta de Dirac
Ouvrir à nouveau le fichier A1 et le sauver sous le nouveau nom A3. Modifier A3 en
changeant le nom du signal « p » en « delta ». Modifier A3 de façon à ce que toutes
les valeurs du vecteur delta(t) soient nulles (utiliser la fonction «zeros») sauf en t=0.
1
Affecter à ce point la valeur  =  avec  le pas utilisé pour créer le vecteur temps.

On pourra utiliser l’indexation logique avec l’opérateur « == ». Vérifier qu’on a
  .  = 1.
Créer un delta de Dirac décalé
Le programme A5 suivant devrait générer un delta en t0=5.25 secondes. Cela ne
marche pas. Modifier le programme pour obtenir le résultat voulu.
Te=0.1;
t = -10 : Te : 10;
delta = zeros(size(t));
t0=5.25;
delta(t==t0)=1/Te;
plot(t, delta, '-o')
grid on
xlabel('t(s)')
ylabel('delta de Dirac décalé')
Utiliser une boucle for..end, la fonction line, vérifier numériquement une
relation du cours
Soit le programme A7 suivant :
clear
close all
clc
pas=10;
tic
Te=0.01;T_peigne=0.5;
t = -5 : Te : 5;
delta=0;
for f=-100:pas:100
delta=delta + exp(2*pi*j*f*t);
line(t, abs(delta));
end
toc
Déterminer le rôle de chaque commande. Expérimentez les valeurs 10, 5, 2, 1 et
0.5 pour le pas de fréquence. Utilisez le zoom pour faire vos observations. Que
deviendrait le signal si on pouvait faire varier la fréquence f continument, cad si
on pouvait utiliser un pas infiniment petit (pas=0) ? Quelle relation du cours
cette expérience cherche t’elle à illustrer ?
Utiliser la fonction round, créer un peigne de Dirac
Dans un programme A6, créer un peigne de Dirac   de période  = 0.5
seconde et défini de t=-5s à t=5s avec une période d’échantillonnage  =  2 −
 1 = 0.01. Il y aura une dent en t = 0s. Chacune des n « dents » aura une amplitude
= 1. On pourra éventuellement utiliser l’indexation logique en remarquant que l’on a :

 =  è
. 

lorsque t est un multiple de . En langage Matlab, cette condition s’écrit :
t==round(t/T_peigne)*T_peigne
Créer un signal sinusoïdal, utiliser les fonctions subplot et text, vérifier :   .   =
 0 . 
Pour cela mettre les lignes du script A4 dans le bon ordre :
subplot(3,1,2); plot(t, delta),grid on
t = -10 : Te : 10;
v = a*cos(2*pi*f*t);
xlabel('t(s)'), ylabel('delta(t)')
delta = zeros(size(t));
delta(t==0)=1/Te;
text(-8,15,'v(t)*delta(t) comparé avec v(0)*delta(t)', 'BackgroundColor', ‘w')
subplot(3,1,3); plot(t, V_delta , ‘-',t, V0_delta , 'o'),grid on
V_delta = v.*delta;
V0_delta = v(t==0).*delta;
subplot(3,1,1), plot(t, v), grid on
a=2; f=0.1; Te=0.1;
xlabel('t(s)'), ylabel('v(t)')
xlabel('t(s)'), ylabel('v(t)*delta(t)')

similar documents