22 May 2021
1
Sommaire
1 Introduction 3
2 Filtrage 3
2.1 But . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.2 Méthode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.3 Résultats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
4 Écho 6
4.1 But . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
4.2 Méthode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
4.3 Résultats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
5 Inversion de Puissance 7
5.1 But . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
5.2 Méthode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
5.3 Résultats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
6 Canal + 9
6.1 But . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
6.2 Méthode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
6.3 Résultats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
7 Projet Image 10
7.1 But . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
7.2 Méthode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
7.3 Résultats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2
Figure 1 – Le signal brouillé et sa densité spectrale de puissance
1 Introduction
Après avoir vu en cours d’ES101 l’incontournable théorie de la transformé de
Fourier ainsi qu’un ensemble de bagages d’outils servant au traitement du signal
(filtrage numérique, corrélation, transformation discrète, analyse spectrale...), On
va voir les appliquer sur des exemples concrets :reconstituer des sons, réparer des
images abîmés. Pour cela on utilisera Matlab® pour encoder ses programmes.
2 Filtrage
2.1 But
Le but ici est de reconstituer un son brouillé par des fréquences parasites. On
identifie les fréquences qui brouillent le signal à partir de l’écoute su signal et l’ob-
servation de sa densité spectrale de puissance Figure 1.
2.2 Méthode
On peut identifier les fréquences brouillantes directement sur le graphe ou en
utilisant la fonction max. les fréquences sont f1 = 1.3971e+03 Hz et f2 = 5.6581e+03.
On implémente un filtre pour supprimer ces deux fréquences. On synthétise un
filtre réjecteur de type RII avec un zéro sur le cercle correspondant à la fréquence
à supprimer et un pôle situé juste à l’intérieur du cercle pour le même angle. la
fonction de transfert s’écrit :
(Z − Z0 )(Z − Z0∗ )
H(Z) =
(Z − P0 )(Z − P0∗ )
3
Figure 2 – Fonction de transfert pour f1 et f2
f
avec Z0 = e2πi Fe et P0 = 0.9Z0 , où f est la fréquence qu’on veut filtrer.
1 − 2Re(Z0 )Z −1 + Z −2
H(Z) =
0, 81 − 2 × 0, 9Re(Z0 )Z −1 + Z −2
après avoir obtenu le signal filtré x, il faut le nettoyer des traces d’imaginaires :
1 yf = real ( yf ) .
2.3 Résultats
Le résultat est représenté sur la Figure 3. On remarque en changeant le facteur
entre le zéro Z0 et le pôle P0 que si le filtre est très sélectif : facteur proche de 1, le
résultat du filtrage devient moins bon.
4
Figure 3 – Le signal filtré et sa densité spectrale de puissance
5
3.2 Méthode
La différence de marche entre les deux oreilles est égale à dsin(θ), ce qui conduit
à une différence temporelle τ = dsin(θ)
ν
. Ce qui permet d’écrire :
τ
x2 (nTe ) ≈ x1 ((n − )Te )
Te
On simule un mouvement de rotation de la source autour de l’oreille gauche. On
π
prend d = 20cm. On note w = 10 la vitesse angulaire de rotation. Et on prend θ = 0
comme état initial.
À l’aide d’une boucle sur le vecteur x1 on calcule τ en chaque moment et on
calcule x2 à l’aide de la relation en dessus.
1 f o r i = 1 : l e n g t h ( x1 )
2 tau = ( d∗ s i n ( t h e t a ) ) /v ;
3 m = f l o o r ( tau /Te ) ;
4 x2 ( i , 1 )=x1 ( ( i −m) ) ;
5 t h e t a = t h e t a + Te∗w ;
6 end
Cette boucle permet d’obtenir x2 qui sera couplé avec x1 pour donner le résultat :
3.3 Résultats
1 y=[ x1 x2 ] ;
2 a u d i o w r i t e ( ’ r e s u l t a t _ s o n _ t o u r n a n t . wav ’ , y , Fe ) ;
4 Écho
4.1 But
On va supprimer l’écho d’un enregistrement audio.
4.2 Méthode
Un signal avec écho est de la forme : y(n) = x(n) + αx(n − n0 )
+∞
X
Donc l’autocorrélation donne : ryy (p) = y(n)y(n − p)
n=−∞
+∞
X
= (x(n) + αx(n − n0 )) (x(n − p) + αx(n − (n0 + p)))
n=−∞
+∞
X
= rxx (p) + αrxx (p + n0 ) + α2 x(n − n0 )x((n − n0 ) − p)+
n=−∞
+∞
X
α x(n − n0 )x(n − n0 − (p − n0 ))
n=−∞
On retrouve alors ryy (p) = (1 + α2 )rxx (p) + α (rxx (p − n0 ) + rxx (p + n0 ))
6
Pour p = n0 : ryy (n0 ) = (1 + α2 )rxx (n0 ) + α (rxx (0) + rxx (2n0 )) ' αrxx (0)
( le reste est négligeable).
Pour p = 0 : ryy (0) = (1 + α2 )rxx (0) + α (rxx (−n0 ) + rxx (n0 )) ' (1 + α2 )rxx (0)
ryy (0) ryy (n0 )
Donc rxx (0) = 1+α2
= α
2
0 )α − ryy (0)α + ryy (n0 ) = 0
D’où ryy (n√
ryy (0)− ryy (0)2 −4ryy (n0 )2
α= 2ryy (n0 )
Car α < 1.
α et n0 ainsi trouvé, le filtre à appliquer est :
X 1
H(Z) = Y
= 1+αZ −n0
On applique la cette méthode.
1 [ y , Fs ] = a u d i o r e a d ( ’ Pa11 . wav ’ ) ;
2 [ A, B ] = x c o r r ( y ) ;
On cherche n0
1 [ A, B ] = x c o r r ( y ) ;
2 A = A(B>=0) ;
3 B = B(B>=0) ;
On recherche les piques :
1 [ val , i n d i c e s ] = f i n d p e a k s (A, B, ’ MinPeakHeight ’ , 6 0 0 ) ;
La pique avec la plus grande valeur correspond au retard, ici le bon indice est
n0=3418.
On applique le filtre
1 a l p h a = (A( 1 )− s q r t (A( 1 ) ^2−4∗A( n0 ) ^2) ) / ( 2 ∗A( n0 ) ) ;
2 ys = f i l t e r ( 1 , [ 1 z e r o s ( 1 , n0 −1) a l p h a ] , y ) ;
4.3 Résultats
Ainsi on obtient le son sans echo et agréable à écouter. On peut vérifier que ç’a
bien fonctionné en regardant les graphes de l’autocorrélation de x et ys, Figure 5.
On remarque bien que les deux piques d’écho sont disparues.
5 Inversion de Puissance
5.1 But
On observe deux signaux x1.wav et x2.wav. Ces deux signaux ont été obtenus
par le mélange d’un signal utile s(n) et d’un bruit blanc w(n). Le signal utile et le
bruit sont indépendants.
x1 (n) = a1 s(n) + b1 w(n)
x2 (n) = a2 s(n) + b2 w(n)
Les coefficients réels a1 , b1 , a2 , b2 traduisent les conditions du mélange et sont tels
que : b1 a1 et b2 a2 . On cherche à écouter le signal utile.
7
Figure 5 – Le signal avec et sans écho
5.2 Méthode
Pour utiliser la technique d’inversion on a besoin de combiner les deux signaux
sous la forme (n) = x1 (n) − ρx2 (n), tel que ρ/minρ |(n)|2 .
|(n)|2 est un polynôme du deuxième degré en ρ, qui tend vers +∞ quand |ρ|
tend vers +∞. Donc a un et un seul minimum correspondant à ρ où la dérivée de
|(n)|2 est nulle.
On a |(n)|2 = |x1 (n)|2 + ρ2 |x2 (n)|2 − 2ρ < x1 (n), x2 (n) >, alors
d|(n)|2
= 2ρ|x2 (n)|2 − 2ρ < x1 (n), x2 (n) >
dρ
<x1 (n),x2 (n)>
d’où le ρ cherché est ρ = |x2 (n)|2
. En calculant :
1 rho = sum ( x1 . ∗ x2 ) / ( norm ( x2 ) ∗norm ( x2 ) )
On trouve ρ = 0.9949 ≈ 1, Figure 6.
On montre que (n) et x2 (n) sont décorrélés :
E[(n)x2 (n)] = E[(x1 (n) − ρx2 (n))x2 (n)] = E[x1 (n)x2 (n)] − E[ρx2 (n)2 ]
< x1 (n), x2 (n) >
= E[x1 (n)x2 (n)] − E[ x2 (n)2 ] = 0
|x2 (n)|2
Alors et x2 son décorrélés Expérimentalement, E[(n)x2 (n)] = −2.2285e − 04, qui
est pratiquement 0 (erreur de calcul).
Puisque les deux signaux sont décorrélés, et en notant (n) = a3 s(n) + b3 w(n),
on a E[(n)x2 (n)] = E[(a3 s(n) + b3 w(n))(a2 s(n) + b2 w(n))] = 0. Or w(n) est un
bruit blanc, donc E[w(n)] = 0, alors E[a3 a2 s(n)2 + b2 b3 w(n)2 ] = 0. Pour simplifier
on a supposé que E[s(n)2 ] = E[w(n)2 ] = 1. Alors ab33 = ab22 .
8
Figure 6 – |(n)|2 en fonction de ρ
5.3 Résultats
le rapport signal est ainsi inversé entre (n) et x2 (n). On peut écouter clairement
le signal utile dans (n).
1 sound ( x1−rho ∗x2 , Fe ) ;
6 Canal +
6.1 But
Le signal "canal.wav" a été obtenu en permutant les hautes et les basses fré-
quences de la Transformée de Fourier d’un signal audio (à l’exception de la fréquence
nulle et de la fréquence F2e ). On veut reconstituer le signal d’origine.
6.2 Méthode
permutant les hautes et les basses fréquences de la Transformée de Fourier d’un
signal audio est équivalent à faire une symétrie par rapport à F2e . C’est à dire :
KFe
N
→ (N −K)F
N
e
.
En fait cela revient à inverser l’ordre de la partie du vecteur de la TF du signal située
entre 0 et F2e non inclus pour permuter les fréquences hautes et basses. Puis inverser
l’ordre de la partie du F2e non inclue jusqu’à la fin pour conserver la symétrie.
On implémente ce processus à l’aide du fonction fliplr(X) de MATLAB, qui
inverse l’ordre des éléments d’un vecteur gauche-droite. Et on obtient la transformée
de Fourier inverse à l’aide de ifft(X).
1
2 [ x , Fe]= a u d i o r e a d ( ’ c a n a l . wav ’ ) ;
3 N = length (x)
4 X = f f t (x) ;
9
Figure 7 – Transformée de Fourier avant(en haut) et après(en bas) du traitement
5 Y1 = X( 2 : (N/ 2 ) −1) ;
6 Y1 = f l i p l r (Y1) ;
7 Y2 = X(N/2+1:N) ;
8 Y2 = f l i p l r (Y2) ;
9 Y = [X( 1 ) ; Y2 ; X(N/ 2 ) ; Y1 ] ;
10 y = r e a l ( i f f t (Y) ) ;
11 a u d i o w r i t e ( ’ r e s u l t a t _ c a n a l . wav ’ , y , Fe ) ;
6.3 Résultats
Résulats : Figure 7.
7 Projet Image
7.1 But
Il s’agit d’un projet dans lequel on considère une image, dont les lignes ont été
décalées de quelques pixels, Figure 8. On veut reconstituer l’image d’origine.
7.2 Méthode
La corrélation entre deux lignes successives est maximale à la valeur du décalage,
car deux lignes successives se ressemblent quand elles ne sont pas décalés. Ainsi on
enlève le bon décalage à chaque fois en prenant la ligne une comme référence.
10
Figure 8 – Image décalée
7.3 Résultats
Résultat : Figure 9. Ce décalage peut être utilisé pour chiffrer les images mais il
sera facile à déchiffrer.
11
Figure 9 – Image corrigée
12