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