B_cours_TdS_master_Energie_Interaction_Convolution
Download
Report
Transcript B_cours_TdS_master_Energie_Interaction_Convolution
Energie dβun signal, énergie dβinteraction, analogie avec lβélectrocinétique
π π‘ = π’ π‘ β π(π‘)
π π‘ = π
β π π‘ β π(π‘) β π 2
π’ π‘
π π‘ =π’ π‘ β
β π’2
π
π
π· π =
π¬ π
π
π
i(π‘)
π’(π‘)
π
=1Ξ©
+β
πΈ=
+β
π’(π‘)2 ππ‘ =
π π‘ ππ‘ =
ββ
ββ
Par analogie
si x(t) est un signal réel, on lui attribue lβénergie:
si x(t) et y(t) sont 2 signaux réels,
on leur attribue lβénergie dβinteraction:
π(π‘)2 ππ‘
ββ
+β
πΈπ₯π₯ =
π₯ π‘ . π₯ π‘ ππ‘
ββ
+β
πΈπ₯π¦ =
+β
π₯ π‘ . π¦ π‘ ππ‘
ββ
Energie dβinteraction
Les flèches noires indiquent
2 maximas successifs : les 2
signaux ont une forte
ressemblance
+β
πΈπ π¦ =
π π‘ . π¦ π‘ ππ‘ = π΄πππ πππ’ππ
ββ
Energie dβinteraction
Les flèches noires indiquent
2 maximas successifs : les 2
signaux ont une faible
ressemblance
+β
πΈπ π¦ =
π π‘ . π¦ π‘ ππ‘ = π΄πππ πππ’ππ β π΄πππ π£πππ‘π
ββ
Interaction « glissante » pour la reconnaissance, multiplication de 2 signaux
Produit x.y à un
instant particulier
π₯ π‘ = Forme à reconnaitre
π‘
000111100000000000000000000000000000000000000000000000000000000000000000000000000
π¦ π‘ = Signal contenant la forme « x » à
un instant supposé inconnu
X
π‘
000000000000000000000000000000000000000000000000000000000000000000004444000000000
π₯ π‘ . π¦ π‘ = produit x.y « élément à élément »
=
π‘
000000000000000000000000000000000000000000000000000000000000000000000000000000000
πΈπ₯π¦ = Aire sous la courbe x.y=
+β
π₯ π‘ . π¦ π‘ ππ‘ = 0
ββ
Interaction « glissante » pour la reconnaissance
π₯ π‘ β π1
π1
π‘
π¦ π‘
π‘
π₯ π‘ β π1 . π¦ π‘
π‘
On décale la « forme »
dβune quantité π1 et on
calcule lβénergie
dβinteraction
πΈπ₯π¦ = Aire sous la courbe =
+β
ββ
π₯ π‘ β π1 . π¦ π‘ ππ‘ = 0
Interaction « glissante » pour la reconnaissance
π₯ π‘ β π2
π2
π‘
x
π¦ π‘
π‘
π₯ π‘ β π2 . π¦ π‘
Lorsque les 2 signaux se recouvrent, lβénergie
dβinteraction πΈπ₯π¦ augmente. Elle est maximum
lorsque les 2 signaux se recouvrent exactement.
Puis diminue lorsque la forme glissante sβéloigne
de la forme « cachée » dans y.
π‘
πΈπ₯π¦ = Aire sous la courbe =
+β
π₯ π‘ β π . π¦ π‘ ππ‘ β 0
ββ
y
x.y
Interaction « glissante » pour la reconnaissance
4
3.5
3
2.5
2
1.5
Lβénergie dβinteraction dépend donc du décalage π et on peut écrire : πΈπ₯π¦ = πΈπ₯π¦ (π)
πΈπ₯π¦ (π)
1
π
0.5
0
-0.5
π0
-10
-8
-6 un maximum
-4
-2décalage π 0
2
Lβénergie
dβinteraction
possède
pour un
= π0 . La forme
a été
localisée dans le signal à cette position.
Avec Matlab, on utilisera la fonction de convolution « conv » pour réaliser une
opération similaire à cette « interaction glissante ».
Créer un signal bruité en utilisant les fonctions linspace et randn
Dans un script B4 utiliser la fonction linspace pour créer un vecteur temps t sβétendant
de 0 à 1 secondes en 1000 valeurs.
Créer un signal réel π¦ = π΄1 . π ππ 2ππ1 π‘ + π΄2 . π ππ 2ππ2 π‘ avec :
- les amplitudes π΄1 = 4 et π΄2 = 1
- les fréquences π1 = 7 π»π§ et π2 = 2 π»π§
Créer un vecteur
nommé « bruit » et de
même taille que y. Pour
cela utiliser la fonction
randn (voir la
description donnée
dans lβaide).
Additionner le bruit au
signal y simplement en
écrivant :
y = y + bruit;
Le représenter et
décorer le graphe.
Créer une série de sinusoïdes, utiliser num2str
On veut générer 10 sinusoïdes de fréquence f=1 Hz jusquβà f=10 Hz. Ecrire un
programme B5 qui génère la figure ci-dessous. Le vecteur temps sβétendra de 0
à 1 seconde en 1000 valeurs. Une boucle forβ¦end sera utilisée pour faire varier
la fréquence des sinusoïdes s=sin(2*pi*f*t). La fonction num2str sera utilisée
pour produire le titre des sous-graphes.
Energie dβinteraction entre un signal bruité et des sinusoïdes de fréquence croissante
Lβobjectif est décrit dans le titre. Après avoir lancé B4 pour récupérer le signal bruité y,
écrire le script B6 qui donne lβNRJ dβinteraction entre y et les sinusoïdes de fréquence
f = 0, 0.5, 1, 1.5, 2, 2.5, β¦, 10. Si vous nβy parvenez pas, mettre les lignes ci-dessous
dans le bon ordre:
ylabel('énergie d''interaction')
interaction(i)=trapz(t,multiplication);
title('Ressemblance entre y et sin(2*pi*f*t) en fonction de f')
multiplication=s.*y;
t=linspace(0,1,1000);
f=0:0.5:10;
s=sin(2*pi*f(i)*t);
end
plot(f,interaction)
for i=1:length(f)
interaction=zeros(size(f));
xlabel('f (Hz)')
Exemple écho sonar
Un signal appelé dans la suite, signal « aller », formé
dβun front négatif suivi dβun front positif est généré
par une source ultra sonore. Un récepteur le recueille
après qu'il se soit réfléchi sur un obstacle sous-marin.
Dans la suite, ce signal reçu sera appelé signal
« retour ». Il contient du bruit et il faut lβanalyser pour
en déduire la distance à laquelle se trouve lβobstacle.
Utiliser la fonction linspace, créer les vecteurs temps et signal « aller » dβun radar
Dans un programme nommé B1, utiliser la fonction linspace pour créer le vecteur
temps ta correspondant au signal aller. ta sβétendra de 0 à 1 seconde en 100 valeurs.
Utiliser la fonction zeros pour créer le signal aller ya qui aura la même taille que ta.
Affecter la valeur -1 aux 50 premiers éléments et +1 aux 50 derniers de ya. Représenter
ce signal, mettre un titre et décorer le graphe comme ci-dessous.
Le signal "aller"
Amplitude
1
0.5
0
-0.5
-1
0
0.5
temps(s)
1
Télécharger le signal « retour » du radar
A lβinstant même où le signal « aller » commence à être émis, le radar se met à
« lβécoute » (lβorigine des temps est donc commune aux 2 signaux). Télécharger le
fichier « signal_retour » contenant les vecteurs temps tr et signal « retour » yr depuis
le répertoire :
http://www.u-picardie.fr/~dellis/tdsMASTER/master_files_TdS/
Le signal retour contient du
bruit provenant du milieu
de propagation
Le signal "retour"
Amplitude
Le signal retour contient
« lβécho », cβest-à-dire la
répétition du signal aller. Est-il
possible dβidentifier le signal
aller au sein du signal retour ?
4
3
2
1
0
-1
-2
-3
-4
0
10
20
30 40
temps(s)
50
60
Utiliser la fonction « conv » pour la reconnaissance de lβimpulsion dans le signal retour, utiliser la
fonction length (longueur)
On appelle « convolution » une opération de multiplication/integration « glissante » similaire à
celle qui a été présentée plus haut. Dans un programme B3 :
- Nommer « convolution » le vecteur renvoyé par la convolution de ya et de yr : conv(ya, yr).
- Ce vecteur contient des valeurs négatives. Afin dβen faire un vecteur positif plus exploitable,
utiliser lβinstruction « convolution = abs(convolution) » ou « convolution = convolution.^2 ».
- Quelle est la longueur N du vecteur convolution? Quelle est, selon vous, la relation entre N et
les longueurs des vecteurs ya e yr ?
- Créer un vecteur temps ti, sβ étendant de 0 à 60 secondes en N éléments.
- Représenter et décorer le graphique convolution = f(ti).
- La vitesse du son dans lβeau de mer étant de 1550 m/s, déduire du graphique obtenu la
distance séparant le bateau de lβ obstacle détecté par son écho.
80
70
Les algorithmes de reconnaissance de
texte, de voix ou dβimage
fonctionnent en partie sur le même
principe : recherche de ressemblance
entre 2 signaux.
60
50
40
30
20
10
0
0
10
20
30
40
50
60