A_cours_TdS_master_Signaux_Generalites_DeltaDirac
Download
Report
Transcript A_cours_TdS_master_Signaux_Generalites_DeltaDirac
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ππππ‘ . πΏ π‘ ππ‘ =
+β
ππ₯π
ββ
2πππ0 . πΏ π‘ ππ‘ =
+β
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 2ππ0 π‘
=
ππΉ sin 2ππ0 π‘
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)')