0% ont trouvé ce document utile (0 vote)
21 vues28 pages

TP TS202

Ce document présente un cours sur le traitement numérique du signal, avec un accent sur la transformée de Fourier des signaux discrets et l'échantillonnage. Il aborde des concepts clés tels que la transformée de Fourier discrète, le filtrage linéaire et l'analyse de signaux sonores, tout en utilisant le logiciel Matlab pour les travaux pratiques. Les sections incluent des rappels théoriques, des applications pratiques et des annexes pour approfondir les notions étudiées.

Transféré par

Abdou Warma
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
21 vues28 pages

TP TS202

Ce document présente un cours sur le traitement numérique du signal, avec un accent sur la transformée de Fourier des signaux discrets et l'échantillonnage. Il aborde des concepts clés tels que la transformée de Fourier discrète, le filtrage linéaire et l'analyse de signaux sonores, tout en utilisant le logiciel Matlab pour les travaux pratiques. Les sections incluent des rappels théoriques, des applications pratiques et des annexes pour approfondir les notions étudiées.

Transféré par

Abdou Warma
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

TS202 - TP Traitement Numérique du Signal ENSEIRB-MATMECA

Travaux Pratiques Traitement Numérique du Signal


FILIERE ELECTRONIQUE, 2E ANNEE

2023-2024

Rémi Giraud
[Link]@[Link]

Cornelia Vacar
[Link]@[Link]

1
TS202 - TP Traitement Numérique du Signal ENSEIRB-MATMECA

TABLE DES MATIÈRES

1 RAPPELS : TRANSFORMÉE DE FOURIER DES SIGNAUX DISCRETS 4


1.1 Notion d’échantillonnage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.1.1 Dirac . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.1.2 Peigne de Dirac . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.1.3 Échantillonnage discret d’un signal continu . . . . . . . . . . . . . . . . 5
1.2 Transformée de Fourier Discrète et le théorème de Shannon . . . . . . . . . . . 5
1.2.1 Transformée de Fourier Continue d’un signal Discret (TFCD) . . . . . . 5
1.2.2 Transformée de Fourier Discrète (TFD, ou DFT en anglais) . . . . . . . 7
1.2.3 Théorème d’échantillonnage de Shannon . . . . . . . . . . . . . . . . . . 8

2 UTILISATION DE LA TFD 8
2.1 TFD et Fenêtrage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.1.1 TFD d’une sinusoı̈de . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.1.2 Effet du fenêtrage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.2 Analyse de signaux sonores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.2.1 Synthèse de note . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.2.2 Analyse fréquentielle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.2.3 Synthèse d’une mélodie . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2.4 Analyse temps/fréquence . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2.5 Bonus : Séparation de sources - Filtrage dans l’espace fréquentiel . . . . 12

3 FILTRAGE LINÉAIRE 13
3.1 Rappels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.2 Effet fréquentiel du filtrage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.3 Signal de parole bruité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.3.1 Débruitage par filtrage sélectif . . . . . . . . . . . . . . . . . . . . . . . 17
3.3.2 Bonus : Sélectivité du filtrage . . . . . . . . . . . . . . . . . . . . . . . . 17

4 POUR ALLER PLUS LOIN 18


4.1 Débruitage direct sur la transformée de Fourier . . . . . . . . . . . . . . . . . . 18
4.2 Application : Débruitage d’un signal biomédical . . . . . . . . . . . . . . . . . . 18
4.2.1 Objectifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
4.2.2 Mise en pratique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4.2.3 Déphasage lié au filtrage . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

5 ANNEXES 22
5.1 Notion de bruit blanc gaussien . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
5.2 Débruitage d’un signal de parole . . . . . . . . . . . . . . . . . . . . . . . . . . 23
5.2.1 Caractérisation des voyelles et notions de formants . . . . . . . . . . . . 23
5.2.2 La fréquence fondamentale . . . . . . . . . . . . . . . . . . . . . . . . . 24
5.2.3 Bilan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
5.2.4 Sur le rehaussement monovoie par atténuation spectrale à court terme . 25
5.3 Formulaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
5.4 Mémo Matlab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

2
TS202 - TP Traitement Numérique du Signal ENSEIRB-MATMECA

INTRODUCTION
Au travers de ces séances de Travaux Pratiques, nous traitons des bases du traitement
numérique du signal et illustrons le cours de traitement numérique du signal.

Les notions suivantes seront abordées :


3 Transformée de Fourier des signaux discrets
3 Caractéristiques des systèmes à temps discret : linéarité et non linéarité, invariance
du système, causalité et stabilité, fonction de transfert

En outre ces TPs reposent sur le logiciel Matlab.


Un rappel de cours ou une introduction aux notions étudiées est proposé pour chaque
thème.

3
TS202 - TP Traitement Numérique du Signal ENSEIRB-MATMECA

1 RAPPELS : TRANSFORMÉE DE FOURIER DES SIG-


NAUX DISCRETS

1.1 Notion d’échantillonnage


1.1.1 Dirac
L’impulsion de Dirac peut-être définie comme :

(
∞ si t = 0 R∞
δ(t) = avec −∞
δ(t)dt = 1
0 sinon
t
0

En découle :
( (
b
∞ si t = t0
Z
x(t0 ) si a<t<b
δ(t − t0 ) = et x(t)δ(t − t0 )dt =
0 sinon a 0 sinon

Côté transformée de Fourier :


Z ∞
T F (δ(t − t0 ))(f ) = δ(t − t0 ) exp(−j2πf t)dt
−∞
= exp(−j2πf t0 )

1.1.2 Peigne de Dirac


Un peigne de Dirac de période T est composé d’une infinité d’impulsions de Dirac tel que :


X 1
IIIT (t) = δ(t − nT )
n=−∞
t
0
Ce peigne de Dirac peut également s’écrire comme :

1 X
IIIT (t) = exp(j2πnt/T )
T n=−∞

Démonstration : utilisant l’expression en série de Fourier d’une fonction T -périodique :



X
IIIT (t) = cn exp(j2πnt/T )
n=−∞

avec
Z t0
1
cn = IIIT (t) exp(−j2πnt/T )dt
T −t0
Z T /2
1
= IIIT (t) exp(−j2πnt/T )dt
T −T /2
Z T /2
1 1 1
= δ(t) exp(−j2πnt/T )dt = exp(−j2πn0/T ) =
T −T /2 T T

4
TS202 - TP Traitement Numérique du Signal ENSEIRB-MATMECA

La transformée de Fourier du peigne de Dirac s’avère également être un peigne de Dirac


période de 1/T :

1 X
T F (IIIT (t))(f ) = T F (exp(j2πnt/T ))(f )
T n=−∞

1 X
= δ(f − n/T )
T n=−∞
1
= III1/T (f )
T
Démonstration :
Z ∞
T F −1 (δ(f − f0 )) = δ(f − f0 ) exp(j2πf t)df
−∞
= exp(j2πf0 t)
= T F −1 (T F (exp(j2πf0 t))(f ))

Donc T F (exp(j2πf0 t))(f ) = δ(f − f0 )

1.1.3 Échantillonnage discret d’un signal continu


L’échantillonnage d’un signal continu x(t) est souvent effectué de manière uniforme, à une
période T e, pour obtenir un signal discret. En réalité cela revient à multiplier le signal x(t)
par un peigne de Dirac de période T e :
+∞
X
xe (t) = x(t).IIIT e (t) = x(nT e)δ(t − nT e)
n=−∞

Dans la suite, étant donné que l’on ne manipulera que le signal discret, on notera x[n]
l’échantillon obtenu à l’instant t = nT e dans la mesure où cela ne prête pas à ambiguı̈té : les
valeurs du signal continu d’origine x(t) = x(nT e) seront toujours désignées avec t ou T e alors
que les valeurs du signal échantillonné x[n] se contenteront d’un indice entier n, m etc.

{x[n]}n=−∞,...,+∞ = {x(nT e)}n=−∞,...,+∞

1.2 Transformée de Fourier Discrète et le théorème de Shannon


1.2.1 Transformée de Fourier Continue d’un signal Discret (TFCD)
L’opération d’échantillonnage par le peigne de Dirac transforme l’expression de la transformée
de Fourier d’un signal continu en une expression qui dépend d’une somme discrète au lieu
d’une intégrale continue et où la variable fréquentielle f reste continue :
+∞
X (TFCD)
Xe (f ) = x[n]exp (−j2πf nT e)
n=−∞

Z +f e/2
1
x[n] = Xe (f )exp (j2πf nT e) df (TFCDI)
fe −f e/2

5
TS202 - TP Traitement Numérique du Signal ENSEIRB-MATMECA

Démonstration :
Xe (f ) = T F C(xe (t))(f ) = T F C(x(t).IIIT e (t))(f )
Z ∞
= x(t).IIIT e (t) exp(−j2πf t)dt
−∞
Z ∞ +∞
X
= x(nT e)δ(t − nT e) exp(−j2πf t)dt
−∞ n=−∞
+∞
X Z ∞
= x(nT e) δ(t − nT e) exp(−j2πf t)dt
n=−∞ −∞
+∞
X
= x(nT e) exp(−j2πf nT e)
n=−∞
+∞
X
= x[n] exp(−j2πf nT e)
n=−∞
+∞
X
= x[n] exp(−j2πf n/f e)
n=−∞

Avec f e la fréquence d’échantillonnage (ou f s pour sampling) alors liée à cette période
d’échantillonnage selon : f e = 1/T e.

Périodicité. Cette transformée de Fourier s’avère d’ailleurs périodique de période f e.


On peut facilement le démontrer en utilisant le fait qu’une multiplication dans le domaine
temporel correspond à une convolution dans le domaine fréquentiel. La transformée de Fourier
d’un signal échantillonné à une période T e, du fait de sa multiplication implicite par un peigne
de Dirac est bien alors périodique de période 1/T e :
T F C(xe )(f ) = T F C(x(t).IIIT e (t))(f )
= T F C(x(t))(f ) ∗ T F C(IIIT e (t))(f )
1
= T F C(x(t))(f ) ∗ III1/T e (f )
Te

En outre, la TFCD est proportionnelle au spectre du signal continu (condition de Shannon),


et peut s’exprimer en fréquence réduite par :
+∞
X
Xe (f ) = x[n]exp (−j2πfr n)
n=−∞

f
avec fr = et fr ∈ [−0.5, 0.5] ou [0, 1]
fe

Le calcul sur ordinateur d’une telle quantité est bien évidemment exclu car la série comporte
un nombre infini de termes et la fréquence varie continûment.
Concernant le premier point, on se restreint en pratique à un nombre d’échantillons fini
N qui peut être stocké dans la machine. Tous les autres échantillons sont supposés nuls : on
considère un signal à support temporel borné.
N
X −1
Xe (f ) = x[n]exp (−j2πfr n)
n=0

Concernant le second point, on va opérer une discrétisation dans le domaine fréquentiel,


qui conduit à la Transformée de Fourier Discrète (TFD).

6
TS202 - TP Traitement Numérique du Signal ENSEIRB-MATMECA

1.2.2 Transformée de Fourier Discrète (TFD, ou DFT en anglais)


Le principe de la TFD est le même que la TFCD mais on introduit un pas d’échantillonnage uni-
forme en fréquence pour discrétiser l’axe en fréquence. Le nombre de points d’échantillonnage
du spectre est noté M . Le spectre est donc calculé sur le domaine fréquentiel [0, fe ] avec un pas
de quantification de fe /M . On note k l’indice entier permettant de déterminer la fréquence :
(
kfe fe est la fréquence d’échantillonnage,
f= où
M M est le nombre de points pour le calcul de la TFD

La Transformée de Fourier Discrète s’exprime ainsi de façon indépendante de la fréquence


d’échantillonnage :

N −1  
X kn
X[k] = x[n]exp −j2π (TFD)
n=0
M

Le spectre étant périodique, on prendra k = [0, . . . , M − 1]. De la même façon que pour
le signal temporel, on pourra noter X[k] la transformée discrète, alors que X(f ) correspond à
la transformée continue. On a X T F D [k] = X T F C (f ) pour f = kfe /M . Les noms de variables
utilisés permettent de rendre non ambiguë la notation.

Si l’on attribue pour l’échantillonnage en fréquence autant de points que pour le signal
temporel (N = M ), la TFD est réversible. On a dans ce cas :

N −1  
X kn
X[k] = x[n]exp −j2π (TFD réversible)
n=0
N
N −1  
1 X kn
x[n] = X[k]exp j2π (TFDI)
N N
k=0

L’avantage de la TFD est que, de par sa structure, elle a permis de développer des al-
gorithmes rapides appelés Transformée de Fourier Rapide (TFR) ou Fast Fourier Transform
(FFT). La différence entre les deux est uniquement algorithmique ; la TFD et la TFR cal-
culent la même chose. Sous Matlab, la fonction utilisée pour calculer la TFD s’appelle ainsi
fft. Les algorithmes rapides utilisent les propriétés de afin d’éviter la redondance des calculs.
La complexité calculatoire de la méthode directe est de O(N 2 ) alors que l’approche rapide
présente une complexité en O(N log2 (N )).

7
TS202 - TP Traitement Numérique du Signal ENSEIRB-MATMECA

1.2.3 Théorème d’échantillonnage de Shannon


De nombreux paramètres ont une influence sur l’échantillonnage, notamment le pas de quan-
tification et le temps de réponse du système numérique lors de l’acquisition et de la restitution.
Cela dit, en augmentant la précision du convertisseur analogique-numérique (CAN) et en aug-
mentant la rapidité des calculateurs, on peut pallier ces difficultés.
Le choix de la fréquence d’échantillonnage joue aussi un rôle. Plus la fréquence
d’échantillonnage est grande, plus on dispose d’échantillons pour décrire le signal. En con-
trepartie, le traitement de ces données est plus lourd. Un compromis est à trouver.
Soit un signal s à spectre S(f ) borné, i.e., ∀f > fmax , |S(f )| = 0; cette limitation du
spectre est soit propre au signal traité, soit due à un pré-filtrage passe bas. Le théorème
d’échantillonnage de Shannon fixe le choix de la fréquence d’échantillonnage fe afin d’éviter
les distorsions du spectre échantillonné, les phénomènes dits de repliement.
fe ≥ 2fmax
est appelée fréquence de Shannon, ou encore fréquence de Nyquist, ou de repliement.

0 0
fmax f f
Spectre à support borné Spectre du signal
du signal s échantillonné

Figure 1 : Spectre du signal échantillonné

repliement du spectre

0 fmax f 0 f

Figure 2 : Phénomène de repliement

2 UTILISATION DE LA TFD
2.1 TFD et Fenêtrage
1. Complétez le tableau suivant pour une fonction x(t) quelconque :
Temps continu et Temps discret et Temps discret et
fréquence continue fréquence continue fréquence discrète
Expression de
la transformée
de Fourier
Domaine de
fréquences
observables

8
TS202 - TP Traitement Numérique du Signal ENSEIRB-MATMECA

2.1.1 TFD d’une sinusoı̈de


1. Créez un signal x[n] de N = 2048 échantillons correspondant à une sinusoı̈de de fréquence
porteuse f0 = 300 Hz et de fréquence d’échantillonnage fe = 3000 Hz :
 
f0
x[n] = cos 2π n avec n = J0, N − 1K
fe
Quelle est la durée de ce signal en secondes ?
2. Afficher ce signal. Le résultat parait-il surprenant ? Réessayer avec N = 256, N = 128.
3. Quelle serait la TFCD d’un tel signal ? Faire un schéma sur papier du résultat attendu,
en faisant figurer fe sur l’échelle fréquentielle.
4. Quelle est la relation qui existe entre la fréquence f (en Hz) et la fréquence discrète k
de la TFD?
Compléter le schéma en exprimant l’échelle fréquentielle également en fréquence réduite
fr = f /fe .
5. Calculer la TFD (fft) sur M = 512 points puis M >> 512, et afficher son module (abs).
6. Détailler le rôle précis des fonctions fft et fftshift sous Matlab.
Modifier l’affichage sous Matlab pour tracer la TFD centrée autour de la fréquence 0.
Légender l’axe des abscisses pour faire figurer les fréquences réelles en Hz.
7. Comment expliquer les différences entre le résultat théorique et observé ?

2.1.2 Effet du fenêtrage


On se trouve dans un contexte discret, avec des signaux de taille finie. Le signal manipulé x[n]
est donc en réalité affecté par un fenêtrage et peut être défini comme le produit du signal et
d’une fenêtre de pondération (apodisation) de la taille du signal :

xw [n] = x[n].w[n]
avec w[n] une fenêtre de pondération (ou fenêtre temporelle) de valeur nulle en dehors de
l’intervalle d’observation [0, . . . , N − 1].
1. Indiquer quelle relation théorique existe entre les Transformées de Fourier Continues
X(f ), W (f ) et Xw (f ) des signaux discrets à support non bornés, x[n], w[n] et xw [n].
En déduire la relation entre les Transformées de Fourier Discrètes calculées sur les N
échantillons [0, . . . , N − 1] où la fenêtre est non nulle.
2. Définir un signal sinusoı̈dal de N = 256 échantillons, et de période 32 échantillons (donc
de fréquence réduite fx = 1/32 = 8/256). On supposera la fréquence d’échantillonnage
unitaire fe = 1, afin de travailler directement en fréquence réduite.
Quelle serait la TFCD théorique d’un tel signal s’il n’était pas limité (fenêtré) à
l’intervalle [0, . . . , N − 1] ?
3. Calculer et afficher la TFD du signal, calculé sur M = N = 256 points, puis M points
avec M >> N (par ex. M = 2048). Faire attention à l’échelle des fréquences.
Rappeler quelle est la TFD d’une fenêtre carrée de largeur N .
Expliquer l’allure du spectre dans chaque cas, à l’aide d’un graphique.
4. Modifier la fréquence de la sinusoı̈de à fx = 8.5/256. Observer le signal fenêtré et sa
TFD pour la fenêtre rectangulaire à M = N = 256 points. Puis M = 2048. Que peut-on
constater? Expliquer le phénomène.

9
TS202 - TP Traitement Numérique du Signal ENSEIRB-MATMECA

2.2 Analyse de signaux sonores


Cette partie a pour objectif l’application de la transformée de Fourier à des signaux sinusoı̈daux
mis bout à bout pour former une mélodie.1

2.2.1 Synthèse de note


Pour le moment nous avons considéré une sinusoı̈de de fréquence fondamentale f0 quelconque,
sans savoir si cette fréquence correspondaient à une note produite effectivement par un in-
strument de musique. En réalité, si l’on considère par exemple un piano, il y a seulement un
ensemble fini de notes (donc de fréquences) qu’il peut produire. Dans notre cas, nous allons
donner à chaque note du piano un numéro, et calculer la fréquence fondamentale associée grâce
à la formule suivante :
note−69
f0note = 440 ∗ 2 12 (1)
où note est le numéro de la note que l’on veut jouer. La Table 1 présente un extrait de la
correspondance entre numéros de notes, notes musicales et fréquences fondamentales.

Table 1 : Correspondance entre notes et fréquences fondamentales

2.2.2 Analyse fréquentielle


1. Charger le signal [Link] sous Matlab (commande audioread ). Vérifier que la fréquence
d’échantillonnage est bien 8kHz. Quelle est la durée du son en secondes ?
Calculer la TFD (fft) sur M = 512 points puis M >> 512, et afficher son module.

2. Quelles est la fréquence de la sinusoı̈de ? De quelle note s’agit-il ?


3. Construire le signal correspondant à la note mi de la 5e octave, sur le même nombre de
points que le signal précédent [Link] et additionner les deux (attention aux dimen-
sions).
Visualiser la représentation fréquentielle du signal obtenu.

4. Modifier manuellement la fréquence caractérisant la touche mi pour se rapprocher de la


fréquence de la note de [Link].
À un certain point, on ne distingue plus les réponses des deux notes. Relier cette obser-
vation aux paramètres M , N et fe à l’aide d’un schéma.

1 inspiré des supports de Laurent Ourde

10
TS202 - TP Traitement Numérique du Signal ENSEIRB-MATMECA

2.2.3 Synthèse d’une mélodie


1. Depuis le code utilisé pour créer la note mi, créer une fonction create note.m prenant
en paramètres d’entrée une durée d, un numéro de note note et une fréquence
d’échantillonnage fe et renvoyant un signal x (correspondant à une sinusoı̈de de durée d
et de fréquence fondamentale f0note (1).
Dans le cas où note = −1, on renverra un signal nul de durée d (cela revient à créer une
sinusoı̈de de fréquence f0 = 0).
2. Tester la fonction en synthétisant et en écoutant plusieurs notes de différentes hauteurs
et différentes durées. Tester le cas note = −1.
3. Créer une nouvelle fonction create melody.m prenant en paramètres d’entrée un
vecteur de duree d vect, un vecteur de numéros de note note vect et une fréquence
d’échantillonnage fe et renvoyant un signal x. Le signal x correspond à la concaténation
de plusieurs sinusoı̈des dont les durées et hauteurs sont respectivement définies dans les
vecteurs d vect et note vect.
4. Tester la fonction en chargeant les vecteurs d vect et note vect stockés dans la variable
[Link]. Synthétiser et écouter la mélodie associée.
Pour écouter un signal audio, deux solutions : 1) utiliser soundsc ou 2) Enregistrer votre
signal avec audiowrite et l’écouter depuis l’explorateur de fichiers.
5. Comment modifier cette mélodie pour qu’elle soit jouée une octave en dessous ?
Et pour qu’elle aille 50% plus vite ?

2.2.4 Analyse temps/fréquence


En pratique, on ne manipule pas toujours
des signaux sinusoı̈daux parfaits, n’évoluant pas au
cours du temps. Dans de nombreux cas en traite-
ment du signal (notamment dans le cas du traite-
ment de la parole, le débruitage, etc.), on doit donc
se placer dans des conditions de quasi stationnarité
et effectuer une analyse du signal sur des “trames”
d’une durée donnée. La non stationnarité d’un sig- trame 1 trame 2 trame 3 trame 4

nal impose de faire une analyse fréquentielle par


trame. Traitement par trame

Une telle analyse produit une TFD par trame, ce qui ne peut être facilement visualisé sous la
forme d’un simple graphe. Une solution consiste à associer un code couleur aux amplitudes du
module de la TFD, et à afficher l’ensemble des TFD sous la forme d’une image (spectrogram),
dans laquelle chaque colonne correspond au spectre d’une fenêtre du signal.
1. Regarder l’aide de la fonction spectrogram pour comprendre son fonctionnement.
2. Charger le signal de parole [Link], et afficher son spectrogramme :
Indiquer sur le spectrogramme les zones fréquentielles qui caractérisent la prononciation
des /z/. Indiquer approximativement les zones formantiques des voyelles prononcées.
(voir annexe ”Débruiter un signal de parole”).
3. Modifier le spectrogramme pour que la TFD soit calculée sur M = 128 points.
4. Tester la fonction spectrogram sur des mélodies créées avec la fonction create melody.
Qu’observe-t-on ?
Charger la mélodie melody [Link], et afficher son spectrogramme. Détecter les notes
et l’ordre joués.

11
TS202 - TP Traitement Numérique du Signal ENSEIRB-MATMECA

2.2.5 Bonus : Séparation de sources - Filtrage dans l’espace fréquentiel


Un des grands domaines du traitement du signal est la séparation de sources. L’idée étant, à
partir d’un mélange de différents signaux provenant de plusieurs sources (par exemple plusieurs
personnes qui parlent en même temps), de parvenir à reconstruire le message associé à chacune
des sources (par exemple retrouver ce qu’a dit chaque personne). C’est un problème courant
en acoustique donc, mais aussi en télécommunications, en bio ingénierie, etc.
Dans notre cas, nous allons considérer la somme de deux signaux sonores (mélodies), et
tenter de reconstruire chacun d’entre eux grâce à un filtrage adapté, directement dans l’espace
des fréquences. Pour cela, nous allons utiliser au choix un filtre passe-bas idéal (si l’on veut
supprimer les notes aiguës), passe-haut idéal (si l’on veut supprimer les notes graves). On
peut aussi considérer un passe-bande (et ainsi choisir de supprimer toutes les notes aiguës et
graves et ne garder que les médiums). Dans cette partie, le signal est composé de 2 mélodies
sur des gammes de fréquences différentes. En pratique, la séparation de sources sur des
mêmes espaces fréquentiels peut s’avérer beaucoup plus complexe. Les fonctions de transfert
de ces filtres sont définies de la façon suivante et dépendent d’une ou plusieurs fréquences de
coupure (selon le filtrage que l’on souhaite effectuer) :
Passe-bas Passe-haut Passe-bande
( ( (
1 si |f | < fc 0 si |f | < fc 1 si fc1 < |f | < fc2
HLP (f ) = HHP (f ) = HBP (f ) =
0 sinon 1 sinon 0 sinon

La suite des opérations à réaliser est présentée ci-dessous :

Il s’agit ici d’un filtrage linéaire vu dans le domaine fréquentiel, correspondant donc à une
multiplication de la transformée du signal avec la fonction de transfert du filtre.

1. Avec la fonction create melody, créer deux mélodies x1 et x2 d’une durée de 10 secondes,
échantillonnés à fe = 8000Hz et contenant des notes (au moins 4), pour x1 comprises
entre 50 et 71 et pour x2 comprises entre 72 et 90.
Écouter les signaux et visualiser leurs transformées de Fourier.
2. Créer le signal x = x1 + x2 .
Écouter le signal et visualiser sa transformée de Fourier.
Quelle fréquence de coupure fc peut-on utiliser pour séparer les deux signaux x1 et x2 ?

3. Créer un filtre adapté (vecteur de 1 et de 0, de la taille de la transformée de Fourier),


multiplier ce vecteur à la transformée du signal et utiliser la transformée inverse (ifft)
pour reconstruire à partir de x les signaux y1 et y2 estimant respectivement x1 et x2 .
Quelle hypothèse faut-il sur M pour pouvoir effectuer cette transformée inverse ?

4. Écouter les signaux obtenus et les comparer aux sources réelles.


Calculer la distance euclidienne entre x1 et y1 et celle entre x2 et y2 .
5. Charger le signal melody [Link]. En utilisant l’information du spectrogramme,
essayer d’appliquer la stratégie précédente pour séparer la mélodie du fond.
On pourra calculer la distance euclidienne entre le signal bruité et l’original contenu dans
melody [Link].

12
TS202 - TP Traitement Numérique du Signal ENSEIRB-MATMECA

3 FILTRAGE LINÉAIRE
Ce TP a pour objectif d’étudier la notion de filtre linéaire d’un point de vue fréquentiel. En
particulier, les notions suivantes sont abordées :
- Lien entre diagramme des pôles et zéros et réponse fréquentielle d’un filtre
- Caractérisation d’un filtre discret passe-haut, passe-bas
- Débruitage par élimination de fréquences

3.1 Rappels
On peut définir l’entrée discrète x[n] d’un filtre à partir d’un signal échantillonné. Après
une transformation T (.), représentant l’opération de filtrage, la sortie du filtrage est notée
y[n] = T (x[n]).

- Rappel de quelques propriétés :

Si l’on considère deux entrées quelconques x1 [n] et x2 [n] et deux coefficients et a1 et a2 ,


alors le système est dit linéaire si :

T (a1 x1 [n] + a2 x2 [n]) = a1 T (x1 [n]) + a2 T (x2 [n])

Le système est dit invariant si T ne change pas au cours du temps.

Si y[n] = T (xn [n]) alors y[n − k] = T (x[n − k])

Le système est dit causal si la sortie à l’instant ne dépend que du passé ou du présent :

y[n] = T (yn [n − 1], . . . , y[1], x[n], . . . , x[1])

Dans le cas où la transformation dépend du futur, le système est dit anticausal.

- Systèmes linéaires invariants – présentation de deux types de filtres :

L’expression d’un système linéaire invariant peut être définie comme suit :
+∞
X
y[n] = x[k]h[n − k]
k=−∞

Ce qui correspond au produit de convolution y[n] = x[n] ∗ h[n] avec h[n] la réponse impul-
sionnelle.
La réponse fréquentielle d’un filtre de fonction de transfert en Z H(z) est la TFC de la
réponse impulsionnelle h[n] considérée à la période d’échantillonnage Te :
+∞
X
H(f ) = h[n] exp (−j2πf nTe )
n=−∞

Cette réponse H(f ) est périodique de période fréquentielle fe (à cause de l’échantillonnage
à fréquence fe ), et correspond exactement à la valeur de la fonction de transfert H(z) restreinte
au cercle unité :
H(f ) = H(z) pour z = exp (j2πf /fe )
Aussi, l’expression générale du filtre peut également s’écrire à partir d’une équation aux
différences :
Xp Xq
ai y[n − i] = bj x[n − j]
i=0 j=0

13
TS202 - TP Traitement Numérique du Signal ENSEIRB-MATMECA

Figure 3 : Réponse d’un filtre en fréquence

Les expressions précédentes peuvent alors être exprimées dans le domaine fréquentiel en
utilisant la transformée en Z. Ainsi on obtient :

Y (z) = X(z)H(z)

Remarque : un produit de convolution dans le domaine temporel est un produit dans le


domaine fréquentiel et inversement. C’est une propriété de la transformée de Fourier et de la
transformée en Z.

L’équation aux différences devient :


p
X q
X
−i
ai z Y (z) = bj z −j X(z)
i=0 j=0

En remplaçant Y (z) par H(z)X(z), on obtient l’expression de H(z), la fonction de transfert


du filtre : Pq −j
B(z) b0 + b1 z −1 + · · · + bq z −q j=0 bj z
H(z) = = = p
a0 + a1 z −1 + · · · + ap z −p −i
P
A(z) i=0 ai z

à noter que l’on considère généralement a0 = 1.

On peut distinguer deux polynômes dans l’expression de H(z) : B(z) et A(z). Selon la
valeur de leurs coefficients {bj }j=0,...,q et {ai }i=0,...,p , ces polynômes possèdent des racines
particulières les caractérisant.
- Les zéros de la fonction de transfert : ce sont les racines de B(z). Les zéros correspon-
dent alors à des atténuations de fréquence en z = exp(j2πf /f e). Si le module du zéro
vaut 1, alors la réjection est totale.

- Les pôles de la fonction de transfert : ce sont les racines de A(z). Les pôles corre-
spondent à des amplifications de fréquence en z = exp(j2πf /f e). On parle alors de
fréquences de résonance. Cette fois, le module de la racine ne peut pas valoir 1 sinon
H(z) n’est pas définie pour une valeur de z donnée.

Lorsque A(z) = 1, le filtre correspondant est un filtre à réponse impulsionnelle finie (RIF)
et il est toujours stable. Dans le cas contraire, il s’agit d’un filtre à réponse impulsionnelle
infinie (RII) et sa stabilité est garantie par la position des pôles à l’intérieur du cercle unité.

Cette écriture permet de mettre en évidence la forme de H(z) en fonction des pôles et des
zéros du filtre : |H(z)| est faible à proximité des zéros (racines de B(z)), et |H(z)| est élevé à
proximité des pôles (racines de A(z)). En rapprochant ce fait du lien entre H(f ) et H(z), il est
possible d’expliquer la forme générale de la réponse impulsionnelle en fonction de la position
des pôles (×) et des zéros (o).

14
TS202 - TP Traitement Numérique du Signal ENSEIRB-MATMECA

Exemple d’un filtre RIF passe bas : y(n) = x(n) + 2x(n − 1) + x(n − 2)
Impulse Response
1 20 2

0.5 1.5
Imaginary Part

Amplitude
2 2
0 1

dB
-20
-0.5 0.5

-1
-40 0
-1 -0.5 0 0.5 1 -0.5 0 0.5 0 5 10 15
Real Part fréquence réduite n (samples)

Exemple d’un filtre RIF passe-haut : y(n) = x(n) − 1.4x(n − 1) + 0.7x(n − 2)


Impulse Response
1 20 1

0.5
0.5 10
Imaginary Part

Amplitude
2 0
0 0
dB

-0.5
-0.5 -10
-1
-1
-20 -1.5
-1 -0.5 0 0.5 1 -0.5 0 0.5 0 5 10 15
Real Part fréquence réduite n (samples)

Exemple d’un filtre RII peigne (sélection de fréquence) :


y(n) = x(n) − 1.4x(n − 1) + 0.7x(n − 2) + 1.5y(n − 1) − 0.8y(n − 2)
Impulse Response
1 5 1.5

0.5 1
Imaginary Part

Amplitude

0 0 0.5
dB

-0.5 0

-1
-5 -0.5
-1 -0.5 0 0.5 1 -0.5 0 0.5 0 5 10 15
Real Part fréquence réduite n (samples)

Considérons les filtres suivants T1 et T2 :


1 1 1
T1 : y[n] = y[n − 1] + x[n] + x[n − 1] (2)
3 3 3
1 2 2
T2 : y[n] = y[n − 1] + x[n] − x[n − 1] (3)
3 3 3

3.2 Effet fréquentiel du filtrage


1. Créer un signal de N = 256 échantillons correspondant à la superposition de trois si-
nusoı̈des de fréquences différentes (une basse fréquence, une moyenne fréquence, une
haute-fréquences) :
     
4 32 124
x(n) = cos 2π n + cos 2π n + cos 2π n
256 256 256

2. Appliquer le filtre T1 au signal x suivant. Effectuer le filtrage dans le domaine temporel,


c’est-à-dire en utilisant la fonction filter.
Visualiser le signal d’origine x, et le signal filtré y, ainsi que leurs TFD respectives X[k]
et Y [k] (on prendra une TFD à M = N = 256 points).

15
TS202 - TP Traitement Numérique du Signal ENSEIRB-MATMECA

S’agit-t-il d’un filtre qui conserve les basses-fréquences (passe-bas) ou les hautes-
fréquences (passe-haut) ?
Comment cela se traduit-il dans le domaine temporel ?
3. Afficher la réponse impulsionnelle du filtre (impz ) puis fréquentielle du filtre (on fera
attention à prendre un nombre suffisant d’échantillons (M ≥ 256)).
%réponse fréquentielle
[H,W]=freqz(b,a,M,’whole’);
plot(W,abs(H));

4. Y [k] peut être également obtenu par la relation suivante :

Y [k] = X[k]H[k]

Le montrer en calculant Y [k] de cette façon et en le superposant au résultat précédent.

5. Mêmes questions avec T2 .

16
TS202 - TP Traitement Numérique du Signal ENSEIRB-MATMECA

3.3 Signal de parole bruité


Le rapport signal sur bruit (Signal to Noise Ratio, SNR) d’un signal bruité x[n] = s[n] + e[n]
est défini comme le rapport entre la puissance du signal non bruité s[n] et la puissance du
bruit e[n] :

s[n]2
P
Ps
RSB(x) = = Pn 2
Pe n e[n]

RSBdB (x) = 10log10 (RSB(x)) = PsdB − PedB

Dans cette partie, nous nous intéressons au cas d’un signal de parole échantillonné à fe =
16000Hz. Ce signal sera bruité par un signal sinusoı̈dal additif de fréquence fb = 0.2×fe et
d’amplitude maximale notée G, considérée à 1 dans un premier temps.

5. Charger le signal [Link] noté s[n] et rajouter le bruit. L’écouter en utilisant soundsc.
(Si soundsc fait buguer Matlab, écouter directement le signal depuis un lecteur mul-
timédia après l’avoir enregistré avec audiowrite).
6. Calculer la puissance de s[n] et ajuster l’amplitude du bruit, c.à.d. la valeur de G, pour
obtenir un RSBdB de 15dB. Visualiser le spectrogramme en utilisant spectrogram.

3.3.1 Débruitage par filtrage sélectif

Nous considérons à présent le filtre suivant :


 
f0 fs
H1 (z) = 1 − 2r cos 2π z −1 + r2 z −2 pour 0 ≤ f0 ≤ , 0.9 ≤ r ≤ 1
fs 2
7. De quel type est ce filtre ? Faire varier la valeur de r et visualiser la transformée de
Fourier des différentes réponses impulsionnelles.
8. Filtrer le signal de parole bruité en utilisant le filtre H1 en fixant r à 1, le reconstituer
puis écouter le résultat. Comparer le spectrogramme du signal initiale et celui du signal
filtré.

3.3.2 Bonus : Sélectivité du filtrage


9. Observer la réponse fréquentielle du filtre précédent en amplitude et en phase (figure,
freqz(b,a)).
10. En représentant les pôles et les zéros (zplane), expliquer l’allure du filtre.
11. Le filtre H1 (z) admet donc comme zéros z0 = r exp(j2πf0 /fe ) et z¯0 . On peut le vérifier
en appelant la fonction roots.
On considère alors le filtre suivant H2 = B(z)
A(z) avec B(z) = H1 (z) pour r = 1, et A(z)
ayant pour zéros z1 = r ∗ z0 et z¯1 , avec 0 < r < 1. On pourra utiliser la fonction poly
pour calculer les coefficients d’un polynôme depuis ses racines.
Représenter la réponse fréquentielle du filtre pour plusieurs valeurs de r.
Représenter les pôles et zéros du filtre pour r ≈ 1 et faire le lien avec l’allure de la réponse
fréquentielle du filtre.
12. Appliquer ce filtrage au signal bruité et observer le résultat.

17
TS202 - TP Traitement Numérique du Signal ENSEIRB-MATMECA

4 POUR ALLER PLUS LOIN


4.1 Débruitage direct sur la transformée de Fourier
Dans cette partie, on va tenter de débruiter le signal directement dans l’espace des fréquences,
puis de le reconstruire par transformée inverse. Ce débruitage peut s’apparenter à de la
séparation de sources (signal, bruit).

13. Quelle hypothèse faut-il sur M pour pouvoir effectuer cette transformée inverse ?
14. Visualiser la transformée de Fourier du signal bruité. Constater la présence du bruit aux
fréquences fixées.
Afficher directement les indices de la transformée ([1, . . . , M ]) sur l’axe des fréquences.
Utiliser ces indices pour annuler directement la valeur de la transformée de Fourier du
signal aux indices correspondant aux fréquences du bruit.
15. Reconstruire le signal filtré par transformée inverse (real(ifft(...))) et l’écouter en util-
isant soundsc.

4.2 Application : Débruitage d’un signal biomédical

4.2.1 Objectifs
Les signaux biomédicaux sont exploités dans des contextes tels que la médecine pour la
détection de pathologies, dans des applications connectées pour le suivi de constantes
physiologiques (tension artérielle, rythme cardiaque, indice de masse corporelle etc.) ou
encore le contrôle de la concentration, de l’attention et de la fatigue (voitures intelligentes).

En médecine, les outils exploitant le domaine du traitement du signal et de l’image sont


de plus en plus nombreux. Cela va du célèbre électrocardiogramme pour le suivi du rythme
cardiaque à l’électromyogramme pour la détection de l’activité musculaire.

Dans le cas d’un électrocardiogramme par exemple, une forme particulière du signal est
attendue. Cette forme est issue de l’étude préalable sur des sujets ne présentant pas de
pathologie ou au contraire présentant une maladie connue. Par comparaison, le signal du
patient peut alors être analysé et reconnu comme étant celui d’un patient sain ou non.

Figure 4 : Exemple d’électrocardiogramme

Dans le cas d’un électromyogramme, la détection de pathologie n’est pas le seul but
recherché. Ces signaux peuvent être utilisés dans un contexte de rééducation ou encore pour
piloter des prothèses intelligentes.
Ce genre de techniques peut être mis en défaut si le signal récupéré est perturbé et que
sa forme s’en trouve modifiée. C’est dans ce contexte qu’intervient un ensemble de traite-
ments permettant d’éliminer ou d’atténuer les bruits. Ce sont des perturbations dues à

18
TS202 - TP Traitement Numérique du Signal ENSEIRB-MATMECA

Figure 5 : Prothèse de main intelligente et électromyogramme

l’environnement (perturbations électromagnétiques du réseau électrique, bruit d’acquisition,


etc.) ou provenant du matériel de mesure lui-même (bruits thermiques).

Figure 6 : Électrocardiogramme schématique

De nombreux capteurs sont aujourd’hui dotés de sorties numériques et présentent alors des
problématiques de débruitage spécifiques. Parmi ces problématiques, nous proposons de nous
intéresser à l’influence de composantes de nature haute fréquence sur un signal échantillonné
à basse fréquence.

4.2.2 Mise en pratique


1. Récupérer avec load les échantillons du signal biomédical [Link] et sa fréquence
d’échantillonnage. Quelle est la durée de ce signal ? Tracer la représentation de ce signal
en fonction du temps.

2. Quelle est la fréquence maximale pouvant être représentée ? Tracer le module de la TFD
en utilisant les fonctions fft, abs et fftshift.

19
TS202 - TP Traitement Numérique du Signal ENSEIRB-MATMECA

3. Récupérer les échantillons du signal biomédical bruité et sa fréquence d’échantillonnage.


Représenter ce signal en fonction du temps ainsi que le module de sa TFD. Reconnaı̂t-on
facilement ce signal ?

On peut définir une entrée discrète x[n] à partir du signal biomédical échantillonné. Après
une transformation T (.), représentant l’opération de filtrage, le but est de récupérer le signal
avec le moins de bruit possible. La sortie du filtrage est notée y[n] = T (x[n]).

4. D’après les représentations fréquentielles du signal biomédical, dans quel domaine de


fréquence se trouve le bruit ? Combien de fréquences doivent-être éliminées ? Idéalement,
quelle transformation souhaiteriez-vous appliquer au reste du spectre ? Quelle solution
de filtrage envisagez-vous, RII ou RIF ?
En déduire les polynômes B(z) et A(z) du filtre à construire.
Tracer les représentations du signal bruité et débruité en fonction du temps ainsi que les
spectres associés. Que constate-t-on?

20
TS202 - TP Traitement Numérique du Signal ENSEIRB-MATMECA

4.2.3 Déphasage lié au filtrage


L’opération de filtrage envisagée pour débruiter le signal biomédical consiste à sélectionner
des coefficients tels que |H(z)| = 0 pour z = ej2πfb /fe , fb étant la fréquence que l’on souhaite
retirer. Partout ailleurs, on souhaiterait que |H(z)| = 1. Cependant, une autre condition
concerne le déphasage du filtre. En effet, si l’on souhaite conserver la forme de notre signal
d’origine il est important que le retard de groupe soit constant. Pour l’étude et la classification
de notre signal médical, il s’agit d’un impératif.

- Lien entre déphasage constant et filtre à phase linéaire :


 j2πf   j2πf   j2πf 
Ainsi on pose : H(z) = |H(z)|ejφ(f ) , on a donc Y e fe = H e fe ejφ(f ) X e fe .
 j2πf 
Si on considère y[n] en prenant la transformée inverse sur Y e fe :

Z f e/2
1  j2πf   j2πf  j2πf n
y[n] = H e fe ejφ(f ) X e fe e fe df
fe −f e/2

Si on se concentre sur φ(f ) lorsque f est proche d’une fréquence f0 , on peut donner son
développement limité à l’ordre 1 :
 
2π dφ(f )
φ(f ) = φ(f0 ) + (f − f0 )
fe df |f =f0

En remplaçant φ(f ) par son développement limité :


Z f e/2
1 jφ(f0 )  j2πf   j2πf  j2π j2πf n
y[n] = e H e fe X e fe e fe (f −f0 )τ (f0 ) e fe df
fe −f e/2

dφ(f )
Avec τ (f0 ) = df |f =f0 le retard temporel lié au filtrage (pour des fréquences proches de
f0 ).
α2πf
Ainsi τ (f0 ) = cste signifie que φ(f ) = φ0 + fe . Le déphasage est alors une fonction
linéaire de la fréquence.

- Rappels sur les différents types de filtres à phase linéaire :


En considérant que le filtrage s’effectue en utilisant N échantillons, on a :
N
X
H(z) = h[k]z −k
k=0

Plusieurs types de filtres sont à phase linéaire :

h[k] = h[N − k] ou h[k] = −h[N − k]

avec h[N/2] = 0 dans le cas où N est impair.

5. À l’aide de la fonction filter sous Matlab, effectuer le filtrage du signal bruité en utilisant
le filtre :  
2πf
H(z) = 1 − 2 cos z −1 + z −2
fe

Observer son amplitude et sa phase avec freqz.


La comparer avec celle du filtre conçu dans la partie 3.3 Sélectivité du filtrage.

21
TS202 - TP Traitement Numérique du Signal ENSEIRB-MATMECA

5 ANNEXES
5.1 Notion de bruit blanc gaussien
Une séquence Gaussienne de Bruit Blanc Gaussien Centré a trois propriétés caractéristiques :

Blanc
La notion de blancheur implique que tous ses échantillons sont décorrélés, i.e.,
RBB (ti , tj ) = σ 2 δti ,tj (4)
où δti ,tj , le symbole de Kronecker, est tel que δti ,tj si ti 6= tj et δti ,tj = 1 si ti = tj . De
manière général, un processus blanc est stationnaire. On a donc RBB (l) = σ 2 δl .

1,2
R BB (l )
1

0,8

0,6

0,4

0,2 l

0
-6 -4 -2 0 2 4 6

Figure 7 : Fonction d’autocorrélation du bruit blanc

Centré
Sa moyenne est nulle.

Gaussien
Un processus aléatoire est un processus gaussien si pour tout ensemble d’instants {ti }, le
vecteur ligne aléatoire correspondant X = [X1 , . . . , Xn ], a une densité de probabilité conjointe
multidimensionnelle gaussienne Xi = X(ti ). Chaque Xi possède une densité de probabilité
marginale :
−[xi − mxi ]2
 
1
pXi (xi ) = √ exp 2 . (5)
2πσXi 2σX i

Si le processus est réel et N = 1 (cas mono-dimensionnel), sa densité de probabilité est


définie par :
−[x − mx (t)]2
 
1
p(x; t) = √ exp . (6)
2πσx2 (t) 2σx2 (t)

Si le processus est complexe et N = 1, sa densité de probabilité est définie par :


−[x − mx (t)]2
 
1
p(x; t) = exp . (7)
πσx2 (t) σx2 (t)

Si le processus est réel et de dimension N , sa densité de probabilité est définie par :


 
1 −1 −1
p(x; t) = √ exp [x − mx (t)]CXX [x − mx (t)]T . (8)
( 2π)N |CXX |1/2 2

Si le processus est complexe et de dimension N , sa densité de probabilité est définie par :


1 −1
[x − mx (t)]T .

p(x; t) = exp [x − mx (t)]CXX (9)
π N |C XX |

CXX est la matrice d’autocovariance.

22
TS202 - TP Traitement Numérique du Signal ENSEIRB-MATMECA

5.2 Débruitage d’un signal de parole


Le rehaussement du signal de parole consiste en l’amélioration d’un ou de plusieurs aspects
perceptifs du signal vocal quand ce dernier est perturbé par un bruit dû à l’environnement
et/ou à la transmission. Un traitement de débruitage est ainsi souhaitable dans une voiture,
lors de conversations main libre, dégradées par le bruit du moteur et les conditions du trajet
(pluie, fenêtre ouverte, etc.). La situation est comparable dans le domaine de l’aéronautique,
lors de communications entre le pilote et la tour de contrôle. C’est aussi le cas dans les
situations suivantes :
- les postes de téléphone situés dans des environnements où les bruits des conversations
et des équipements informatiques perturbent les communications ;
- les vidéophones et systèmes de téléconférence ;
- la restauration d’enregistrements anciens ;
- les systèmes de reconnaissance utilisés dans des environnements bruités.

Nous supposons ici qu’un seul microphone est utilisé pour la prise de son et nous cherchons
à réduire le bruit sans introduire de distorsion trop importante sur le signal utile.

Signal de parole

Signal débruité
TRAITEMENT

Bruit ambiant
Figure 8 : Débruitage du signal de parole

Nous nous placerons dans le cas simple où le bruit additif est un bruit blanc.

Ce document s’organise de la manière suivante : dans un premier temps, quelques no-


tions sur la parole sont données telles que les notions de voisement/non voisement, fréquence
fondamentale, etc. Puis, une présentation théorique de l’approche de rehaussement est réalisée.

5.2.1 Caractérisation des voyelles et notions de formants


Par essence, le signal de parole est non stationnaire ; cependant, on peut faire une hypothèse
de quasi-stationnarité, notamment pour des voyelles, sur une durée de 40 ms. En fenêtrant
le signal de parole en trames de 10 à 40 ms, on peut faire apparaı̂tre un caractère pseu-
dopériodique ou/et aléatoire. Plusieurs cas peuvent être envisagés :

les trames voisées qui présentent un caractère périodique ou pseudo périodique ;


les trames non voisées ou aléatoires ;
les “bruits voisés” qui sont une combinaison simultanée des deux cas précédents ;
les trames mixtes représentant les zones de transition entre des sons voisé et non voisé.

Le spectre d’un signal voisé est riche en fréquences harmoniques de la fréquence fonda-
mentale. Si l’on regarde la figure 2, on constate en outre que l’enveloppe spectrale du signal
analysé décroı̂t doucement vers les hautes fréquences. Ses résonances sont appelées formants

23
TS202 - TP Traitement Numérique du Signal ENSEIRB-MATMECA

et notées F 1, F 2, etc. dans l’ordre des fréquences croissantes. Les deux premiers caractérisent
en général la voyelle prononcée alors que les deux suivants sont plutôt liés au locuteur. Pour
un locuteur masculin, tous les formants sont inférieurs à 5 kHz.

F1
F2
F3

Figure 9 : Mise en évidence des trois premiers formants pour le segment voisé analysé

On peut aussi observer les formants sur un spectrogramme. Le spectrogramme est une
représentation graphique fréquencetemps, qui traduit l’évolution de la richesse spectrale
du signal au cours du temps ; la présence de formants correspond alors à ces gammes de
fréquence dont l’énergie est particulièrement élevée et qui apparaissent sous la forme de
bandes sensiblement parallèles à l’axe des abscisses. Quand le spectrogramme est en couleur,
on adopte généralement une palette allant du rouge pour représenter une forte énergie au
bleu pour représenter une faible énergie. C’est notamment le cas à la Figure 10.

5.2.2 La fréquence fondamentale


Lorsque les cordes vocales oscillent de façon quasi-périodique, le signal de parole émis est
lui aussi quasi-périodique ; il est dit voisé, c’est notamment le cas lorsque l’on prononce des
voyelles telles que le /a/. La période du signal est alors appelée période fondamentale. On
nomme l’inverse de cette période, la fréquence fondamentale ou pitch. La valeur moyenne du
pitch est variable selon les locuteurs. Basse et de l’ordre de 80 à 200 Hz pour les hommes,
elle peut atteindre 600 Hz pour les enfants, la voix féminine ayant une fréquence fondamentale
comprise de manière générale entre 150 et 450 Hz. Un exemple de spectrogramme d’un signal
de parole2 est donné en Figure 10.
Fréquence (Hz)
Amplitude

Temps (s) Temps (s)

Figure 10 : Spectrogramme d’un signal “waziwaza”1 mettant en évidence la présence de [z]

2 Nous remercions Matra et l’ENST pour la base de données de signaux audio qu’elles ont bien voulu nous
fournir.

24
TS202 - TP Traitement Numérique du Signal ENSEIRB-MATMECA

5.2.3 Bilan
On retiendra de cette brève présentation du signal de parole deux de ses caractéristiques
majeures :
son caractère non-stationnaire (nécessitant un traitement par frames),
et son éventuelle nature quasi-périodique, à laquelle se rapportent les notions de voisement
et de non voisement.
La parole est un moyen de communication au même titre que l’écriture. On attend donc
d’un message vocal qu’il soit intelligible, c’est à dire facile à comprendre.
Mais le signal de parole peut être dégradé par un bruit additif, notamment lors de commu-
nications longue-distance sur des lignes bruitées, ou lorsque l’on utilise un téléphone portable
dans une voiture. Des traitements de débruitage du signal peuvent alors être mis en œu-
vre. Dans le chapitre suivant, nous nous proposons de faire l’état de l’art des méthodes de
rehaussement qui utilisent un unique microphone.

5.2.4 Sur le rehaussement monovoie par atténuation spectrale à court terme


Les solutions élaborées pour le débruitage sont multiples. Certaines emploient plusieurs mi-
crophones ; on peut effectuer un rehaussement bivoie, en plaçant un premier microphone
directionnel à proximité du locuteur alors qu’un second microphone, omnidirectionnel, est po-
sitionné le plus près possible de la source de bruit. Ici, nous focalisons notre attention sur une
approche de rehaussement de type monovoie. Une des difficultés dans ce contexte est d’obtenir
une bonne approximation des données statistiques du bruit perturbateur.
Les techniques de rehaussement par atténuation spectrale à court terme consistent à ap-
pliquer une atténuation spectrale, dépendant de l’estimation du bruit additif, à chaque com-
posante fréquentielle. Plus précisément, ces méthodes nécessitent les opérations suivantes :
1. On effectue un traitement tous les N échantillons. La durée des tranches d’analyse
est comprise entre 20 et 40 ms. Les blocs que l’on traite successivement peuvent être
en outre disjoints ou se recouvrir partiellement ; on adopte d’ailleurs couramment un
recouvrement de 50%. Dans le contexte de la téléphonie, où le signal est échantillonné à
8 kHz, on peut travailler sur des blocs de 256 échantillons dont le recouvrement s’élève
à 128 échantillons.
2. Puis, on applique une règle de suppression de bruit au spectre du signal bruité fenêtré
Yw (f ), que l’on nomme aussi spectre du signal à court terme, pour en atténuer chaque
canal fréquentiel et obtenir ainsi Ŝ(f ), l’estimation du spectre à court terme du signal
de parole original :
Ŝw (f ) = Hw (f, B(f ))Yw (f ) (10)
Cette règle varie selon les méthodes utilisées et dépend de manière générale de la vari-
ance du bruit additif dont on fait une estimation préalable ; on peut tirer avantage des
instants de “silence”, où seul le bruit additif est présent, pour évaluer et/ou actualiser la
variance du bruit. On en fait alors une approximation long terme, en supposant le bruit
ergodique3 .
3. Une transformation de Fourier inverse permet enfin d’avoir une estimation du signal
fenêtré. Puis on procède à la reconstruction du signal, en appliquant une méthode dite
d’addition-recouvrement (addition de l’ensemble des signaux fenêtrés débruités).
Le schéma de principe de rehaussement par atténuation spectrale est donné à la Figure
12.
Parmi les méthodes qui obéissent à ce type de traitement, la soustraction spectrale est
l’une des techniques les plus employées par les traiteurs de signal de parole.
3 ‘èrgodique au sens de la moyenne” revient à dire que l’on peut approximer la moyenne d’ensemble du
processus, c’est à dire l’espérance mathématique par la moyenne temporelle.

25
TS202 - TP Traitement Numérique du Signal ENSEIRB-MATMECA

Yw ( f ) Sˆ w ( f )
yw(k) Transformée de Atténuation Transformée de sˆ w ( k )
Fourier dans chaque Fourier inverse
à court terme canal à court terme

Règle de
suppression
Estimation pendant les
périodes de silence
E { B( f ) } 2

Figure 11 : Schéma de principe de rehaussement par atténuation spectrale

Trame Trame
d’analyse d’analyse
n°1 Trame n°3
d’analyse

Figure 12 : Traitement par trame avec recouvrement d’un signal

26
TS202 - TP Traitement Numérique du Signal ENSEIRB-MATMECA

5.3 Formulaire

Domaine continu Domaine discret

Z +∞ +∞
X
X(p) = x(t) exp(−pt)dt X(z) = x(n)z −n
−∞ n=−∞

Équation différentielle à coefficients constants Équation récurrentes


K−1 L−1 K−1 L−1
X dk y(t) X dl x(t) X X
Ck = Dl a(k)y(n − k) = b(l)x(n − l)
dtk dtl
k=0 l=0 k=0 l=0

f
fréquence : p = jw = j2πf fréquence : z = exp(jwTe ) = exp(j2π )
fe

Fonction de Transfert Fonction de Transfert


L−1 L−1
Dl pl b(l)z −l
P P
l=0 B(z) l=0
H(p) = K−1 H(z) = = K−1
A(z)
a(k)z −k
P P
Ck pk
k=0 k=0

Stabilité (système causaux) : Stabilité (système causaux) :


pôles à partie réelle négatives pôles à l’intérieure du cercle unité

On rappelle en outre que :


N −1 +∞
X 1 − aN X 1
an = d’où an = pour |a| < 1
n=0
1−a n=0
1−a

27
TS202 - TP Traitement Numérique du Signal ENSEIRB-MATMECA

5.4 Mémo Matlab


%Chargement
  d’un signal ‘àudio’’
s, fe = audioread(’[Link]’);
N = length(s)

%Chargement d’une archive matlab


load(’[Link]’); %Données chargées directement dans le workspace
X = load(’[Link]’); %Données dans X
s = X.s; %Accès aux champs de X

%Valeur maximale
max s = max(s);
%Accès valeurs
s 10 20 = s(10:20); valeurs 10 à 20

%Mise à zéro
s = zeros(N,1); %ones() existe aussi
s = s*0;
s(5:20) = 0; %mise à 0 des coeff 5 à 20

%Vecteurs/matrices
vect = ([Link]); %(début:(pas):fin) [1 3 5 7 9 11] (1x6)
vect = linspace(1,11,6); %(début,fin,N) [1 3 5 7 9 11] (1x6)
mat = [1 1; 2 2; 3 3]; %matrice (3x2)
vect t = vect’; %transposée (6x1)

%Attention aux * de vecteurs et matrices !!!


vect x = vect*vect; %ERREUR DE DIMENSION
vect 1x6 = vect.*vect; %terme à terme
vect 6x6 = vect’*vect; %produit matriciel
vect 1 = vect*vect’; %produit matriciel

%Sous-échantillonnage
s ech = s([Link]nd); %une valeur sur deux

%Somme des termes au carrés


sum s = sum(s.^
2); %équivalent à sum(s.*s);

%Création d’un cosinus


N = 1024; t = 0:N-1; %de longueur N
fe = 256; f0 = 64; %freq ech fe, porteuse f0
%s = cos(2*pi*f0/fe*t);

%Affichage
figure, %Création d’une nouvelle figure
subplot(121) %Affichages multiples 1x2
plot(1:length(s), s) %première figure
title(’Signal s’);
subplot(122) %deuxième figure
plot(s); %indices 1 à length(s) par défaut
hold on; superposition
plot(1:length(s2), s2, ’Color’, [0 0 1]); title(’Comparaison de s et s2’);
xlabel(’Signal’); ylabel(’Intensité’);

28

Vous aimerez peut-être aussi