Vous êtes sur la page 1sur 18

REPUBLIQUE DU CAMEROUN REPUBLIC OF CAMEROON

Paix – Travail – Patrie Peace – Work – Fatherland


------------ ------------
ECOLE NATIONALE SUPERIEURE NATIONAL ADVANCED SCHOOL
DES POSTES, DES OF POSTS,
TELECOMMUNICATIONS ET DES TELECOMMUNICATIONS AND
TECHNOLOGIES DE INFORMATION AND
L’INFORMATION ET DE LA COMMUNICATION
COMMUNICATION TECHNOLOGIES
------------ ------------

RAPPORT DES TRAVAUX PRATIQUES

DE TRAITEMENT DU SIGNAL

Groupe 21

 ANDELA MVOUA Gabriel Bosco


 IDRISSOU AMADOU
 KUETE KENNE Jordan

CLASSE : Master IT1

Sous la Supervision : ANNEE ACADEMIQUE :

Dr KABIENA 2022/2023

1
PLAN
I- Introduction ……………………………………………………………………………………..
I.1 But de l’étude . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ……………………..
I.2 Modèle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ……………………...
I.3 Simulations sous MATLAB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ………………..
II Etude dans le domaine temporel …………………………………………………………………
II.1 Propriétés du signal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . …………………..
II.2 Echantillonnage et critère de Nyquist………… . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . …
III Synthèse d’une note et d’une mélodie …………………………………………………………..
III.1 Synthèse d’une note . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ………………….
III.2 Synthèse d’une mélodie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ………………...
IV Etude dans le domaine fréquentiel ……………………………………………………………...
IV.1 Cas d’une note . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . …………………...
IV.2 Cas d’une mélodie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ………………….
V. Filtrage et séparation de sources ………………………………………………………………...
V.1 Cas de deux notes successives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ………………

2
I- INTRODUCTION
I.1 But de l’étude

Le but de ce TP est de synthétiser sous MATLAB des signaux audio numériques, d’analyser
certaines de leurs propriétés temporelles et fréquentielles, et de réaliser un filtrage élémentaire
pour effectuer une séparation de sources. Ces signaux seront définis de façon analytique sous la
forme d’une concaténation de sinusoïdes pures échantillonnées et associées chacune à une
fréquence fondamentale f0. Ce modèle, bien que grossier, permet de générer des signaux
musicaux idéaux, qui peuvent être étudiés et filtrés de façon simple par les techniques usuelles de
traitement numérique du signal.

I.2 Le modèle du signal


Le modèle du signal que nous allons exploiter durant toute notre manipulation est le signal
continu x(t)=sin (2πfot). Il s’agit d’une sinusoïde pure de fréquence fondamentale fo,
d’amplitude 1 et de phase égale à 0. Le signal obtenu correspond à une note de musique.
Vue que le signal analogique n'est pas étudiable dans Matlab car contient un nombre
d'échantillons infini, nous allons donc travailler sur une version échantillonnée et quantifiée de ce
signal pour mieux étudier ses propriétés.
On définit donc le signal numérique xn échantillonné avec une fréquence d’échantillonnage Fs
et contenant N échantillons :
xn = sin (2πfotn)
Les temps tn représentent l'instant de prélèvement d'un échantillon du signal et sont définis par :
tn =n/Fs=nTs, pour 0<n<N – 1.
On travaillera dans cette sous partie avec un signal échantillonné à Fs = 8000 Hz, de fréquence
fondamentale fo = 800 Hz et d’une durée d = 2 secondes.

I.3 Manipulation sous Matlab

- La première étape a consisté à créer le script « tp_part1.m » dans Matlab.


- Nous avons ensuite fixé les valeurs de Fs, d et fo. Les valeurs entrées dans Matlab sont
visualisées dans la capture ci-dessous :

- Choix de la valeur de N
N étant le nombre d'échantillons, N=Fs*d+1 lorsque d est un entier. Lorsque d n'est plus
entier, on peut utiliser les fonctions round(), floor() et ceil() qui donnent respectivement
l'arrondi de N à l'entier le plus proche, l'arrondi à l'entier inférieur et l'arrondi à l'entier supérieur.
Pour le TP, nous avons utilisé la fonction ceil(), donc N= ceil(Fs*d)+1 comme le montre la
capture suivante:

3
- Calcul de N en fonction de Fs et d. le logiciel Matlab nous permet de calculer cette valeur
et on l’obtient sur la capture suivante :

- construction du vecteur temps t de taille N avec les différentes valeurs de tn le vecteur


temps est défini par une valeur de début, un pas et une valeur de fin. Le pas représente la
période d'échantillonnage 1/Fs=1/8000=0.000125sec. Sous Matlab, la capture suivante
nous montre comment t est défini:

- construction du signal xn
Le signal xn est construit avec le code suivant :

- Après avoir construit notre signal, on peut maintenant écouter le son. Pour cela, on va
utiliser la fonction :
qui permet de jouer le son brut.
Note : On constate que lorsque la fréquence fondamentale vaut 300hz, le son est plus grave et
lorsque cette dernière augmente au fur et à mesure, le son devient aigu progressivement.

- période fondamentale du signal :


T0=1/f0, le résultat obtenu sur Matlab est:
donc To=0.0013sec.

- Affichons le signal xn en fonction du temps dans l'intervalle [0, 4T0]


Tout d'abord, nous allons ouvrir une nouvelle figure avec l'instruction
, puis utiliser la fonction
qui affiche x en
fonction de t.
On obtient donc pour fo=800hz:

4
On remarque que lorsqu'on fait varier la fréquence fondamentale entre 300 et 1200 hz, la
période du signal diminue. Par exemple pour fo=1200hz :

II. ETUDE DANS LE DOMAINE TEMPOREL

II.1 propriétés du signal

Dans cette section, nous avons étudié la périodicité, l'énergie et puissance moyenne du signal.
Pour débuter, nous avons créé un nouveau script nommé "tp_part2.m" et avons défini les valeurs
de Fs, d, fo et N. le code Matlab suivant nous permet de définir ces différentes valeurs :

- le signal est-il périodique?


on a tracé notre signal x(t) sur [-pi,pi], on obtient la courbe ci-dessous:

5
On observe que notre signal est périodique car se reproduit identique à lui-même sur une demie
période.

- période fondamentale M0
Mo=1/fo et vaut:

- calcul de la distance euclidienne entre deux périodes


Pour ce faire, le code Matlab suivant nous a permis d'effectuer ce calcul:

- On a obtenu une valeur de D=0 ce qui montre que le signal est périodique.

- Calcul de l'énergie Ex et de la puissance du signal Px


Par calcul, on a eu Ex=1J et Px=0.5W lorsque t=2 secondes.

Lorsque t=1000 secondes, on évalue sous Matlab, l'énergie et la puissance du signal


échantillonné. Les codes sur la capture nous permettent d'obtenir l'énergie et la puissance
respectivement :

6
Après exécution du code, nous obtenons Ex=q=500J et Px=p=0.5W

On constate que l'énergie augmente lorsque le son dure longtemps et la puissance ne change pas.

II.2 Critère de Nyquist

- Valeur minimale de la fréquence d'échantillonnage :


La fréquence d’échantillonnage Fe doit être supérieure à 2 fois la fréquence fondamentale
c’est-à-dire fmin=2*fo. fmin==800*2=1600hz. pour f<fmin, nous avons pris f=1400 et f=1200 et
pour f>fmin, on a pris f=5000 et f=3500.
- Conclusion : lorsque la fréquence d'échantillonnage est au-dessus de la fréquence
minimale, le signal obtenu tend progressivement vers le signal initial.
- On suppose à nouveau que la fréquence Fs est égale à 8000 Hz. Montrons par le calcul
que les sinusoïdes de fréquences avec f0 = 800 Hz et f0 = 7200 Hz ont la même fréquence
apparente.
On a fa=fk-M*fs avec fa la fréquence apparente, fk la fréquence du signal et M un entier naturel.
(-0.5fs+fk)/fs < M < (0.5fs+fk)/fs. On trouve M=1 par calcul avec fk=7200hz et fs=8000hz, la fa
correspondante est 800hz. De même, avec fk=800, on trouve fa=800 d’où les sinusoïdes de
fréquences avec f0=800hz et f0=7200hz ont la même fréquence apparente.
On constate également en écoutant le son que les deux fréquences donnent le même son.

III. SYNTHESE D’UNE NOTE DE MELODIE


Ici, nous allons non plus étudier une seule sinusoide mais plusieurs dans le but de créer une
mélodie.

III.1 Synthèse d’une note

On considère un piano comme un ensemble de notes. Dans ce cas, nous avons donné un
numéro à chaque note du piano et calculé la fréquence fondamentale associée grâce à la formule

suivante : ou note est le numéro de la note que l’on veut


jouer.
1. Pour commencer, nous avons d’abord créé le script « tp_part3.m » dans lequel nous avons
défini les valeurs de Fs, d et note. Nous avons défini ces valeurs dans Matlab comme nous le
montre la figure ci dessous :

7
nous avons dans notre code défini une note de 36.

2. Création de la fonction create_note() qui prend en paramètres une durée d, un numéro de


note note, et une fréquence d’échantillonnage Fs et qui renvoie un signal x associé à un vecteur t.
Dans le cas ou note = -1, on renverra un signal nul de durée d (cela revient à créer une sinusoïde
de fréquence f0 = 0 !). La capture ci-dessous nous présente la fonction create_note() comme
demandé à l’énoncé :

3. il faut maintenant tester la fonction, et le code qui permet de tester est le suivant :

Nous avons testé une note de 75 et on a obtenu le son correspondant. Lorsqu’on a testé la note -1, on
n’a pas eu de son (nul) comme c’était prévu.

III.2 Synthèse d’une mélodie


1. En s’inspirant de la fonction create_note.m, créons une nouvelle fonction
create_melody.m prenant en paramètres d’entrée un vecteur de durée d_vect, un vecteur
de numéros de note note_vect et une fréquence d’échantillonnage Fs et renvoyant un
signal x associé à un vecteur temps t.
- Définition du vecteur de durée d_vect et du vecteur de numéros de note note_vect sous
Matlab :

- Définition de la fonction create_melody()

8
2- testons maintenant la fonction au sein du tp en choisissant les vecteurs d_vect et note_vect :

Nous avons choisi les valeurs ci-dessous pour ces vecteurs. Le code ci-dessous nous permet
d’écouter la mélodie.

3- Testons maintenant la fonction en chargeant les vecteurs d_vect et note_vect stockés dans la
variable melody1.mat. Nous pouvons voir ci-dessous le code associé.
On a obtenu le son de la mélodie melody1.

4. pour modifier cette mélodie afin qu’elle puisse jouer une octave en dessous, nous avons
procédé ainsi :

9
Pour que cette mélodie aille 50% plus vite, il faut procéder de la manière suivante :

en multipliant le vecteur de des temps


par 0.5, on obtient un temps plus court et une mélodie plus rapide.

IV. ETUDE DANS LE DOMAINE FREQUENTIEL

Les mélodies que nous avons générées sont difficilement étudiables dans le domaine temporel :
en effet, nous avons vu qu’il était par exemple impossible de visualiser le signal de façon correcte
sauf en le regardant sur un temps très court. Nous allons donc continuer notre étude dans le
domaine spectral, en observant la transformée de Fourier discrète de notre signal. Nous allons
voir que cette représentation nous permet d’identifier par exemple en un seul coup d’œil
l’ensemble des notes jouées durant le morceau.

IV.1 Cas d’une note

1. Créer sous MATLAB un script vide nommé TP part4.m dans lequel vous d´définissez les
valeurs de Fs, d et
note. On utilisera Fs = 8000 Hz, note = 69 et d = 2 secondes.

2. Synthétiser le signal sonore associé grâce à la fonction create note.m et tracer le module au
carré de la
Transformée de Fourier discrète du signal grâce à la fonction my FFT.m fournie sur le site du
cours. Annoter
Correctement la figure !

10
La figue 1.1 ci-dessus nous montre un spectre de deux raies situés aux fréquences
fondamentales fo et -fo avec fo = 400Hz

3- Calculer (sur papier) le module au carré de la transformée de Fourier continue du signal x(t).
Comparer
avec la figure obtenue et commenter.

Nous constatons que notre graphe précédemment obtenu 1.1 nous montre qu’on obtient deux
spectres (deux peignes) c’est à dire deux Dirac, nos calculs obtenus sur le papier qui est de deux
Diras nous rassures de l’effectivités de notre schéma.

11
4. Quelle est la résolution en fréquence de la TFD ? Parmi les notes proposées dans le tableau
présenté
Précédemment, lesquelles seront observables de façon correcte sur la TFD ?
La résolution en fréquence est donné par :
 
∆  =
 
Nous avons donc : ∆  =  ,
   

Une note est observable dans la TFD s’il existe un k € N tel que    =  ∆ 

fo
Donc   =
∆ 
fo
Dans notre cas   = . Donc une note sera observable sur la TFD si sa fréquence fo est
0;5
multiple de 0,5.
Exemple :
- La note 81 a une fréquence fo= 880Hz. On trouve un k = 1760 donc il sera facile de trouver
la fréquence fondamentale fo et grâce au tableau retrouver quelle note a été jouée.
- La note 75 a une fréquence fo= 622.25Hz. on trouve un k = 1244.5, nous trouvons que
K est entre 1244 et 1245. Il sera difficile d’affirmer avec exactitude la note qui a été jouée
car une note ne possède qu’une seule fréquence fo.

5- Générer le signal associé à une note observable et un signal associé à une note
non observable. Comparer les spectres des deux signaux et commenter.

12
4.2- 1. Créer à la suite du script TP part4.m un signal sonore correspondant à une mélodie
contenant 4 notes
(Dont vous choisirez les hauteurs et les durées) et ´échantillonné a Fs = 8000 Hz.

13
V. FILTRAGE ET SEPARATION DE SOURCES

Dans cette partie, nous allons tenter d’additionner deux signaux sonores, et de reconstruire
chacun d’entre eux grâce à un filtrage linéaire adapté.
Pour cela, nous allons utiliser au choix un filtre passe-bas idéal (si l’on veut supprimer les notes
aigues), passe-haut idéal (si l’on veut supprimer les notes graves), ou passe-bande idéal (si l’on
veut supprimer toutes les notes aigues et graves et ne garder que les médiums). 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 HLP (f) =
1 si |f| < fc
0 sinon

Passe-haut HHP (f) =


0 si |f| < fc
1 sinon

Passe-bande HBP (f) =


1 si fc1 < |f| < fc2
0 sinon
Il s’agit donc 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. - pour commencer, nous avons créé un nouveau script « tp_part5.m » dans lequel nous
avons défini un signal sonore correspondant à une mélodie contenant 2 notes : une aigue
et une grave (dont on a choisi les hauteurs et les durées) et échantillonnée à Fs = 8000 Hz.

Le code Matlab ci-dessous nous montre comment nous avons défini cela :

- Par la suite, nous avons tracé le module au carrée de la transformée de Fourier discrète du
signal et proposé une fréquence de coupure fc permettant de séparer les deux notes. Nous
l’avons fait grâce au code suivant :

On a le tracé ci-dessous :

14
Nous avons proposé une fréquence de coupure de 1000hz pour séparer les deux sources.

2. -Création d’un vecteur H_LP et d’un vecteur H_HP correspondants aux fonctions de
transfert du filtre passe-bas et passe-haut idéaux grâce au code Matlab suivant :

Par la suite, nous avons pris une fréquence de coupure de 800hz, nous avons également créé le
vecteur H_LP et le vecteur H_HP, puis nous avons appliqué les conditions modifiant la valeur
d’un vecteur.

3. Nous avons appliqué le filtre passe-bas H_LP sur la transformée de Fourier discrète calculée.
Faire une transformée de Fourier inverse (grace à la fonction my_FFTinv.m fournie) pour
retrouver le signal sonore filtré. La capture suivante nous montre le code réalisant cette
instruction :

15
Nous avons tracé le spectre correspondant à la transformée inverse et est représenté par la figure
suivante :

On constate que le signal haute fréquence est filtré et on reste avec le signal basse fréquence.

4. De même avec le filtre passe haut, on a les résultats suivants :

La représentation obtenue est la suivante :

16
Nous devions normalement obtenir courbe dans laquelle on a seulement les hautes fréquences
mais on constate que toutes les fréquences ont été filtrées.

CONCLUSION

En définitive, nous pouvons dire que ce TP nous a permis de mieux nous


familiariser avec les signaux analogique et numérique, et surtout de les
traiter afin d’avoir une bonne qualité de son grâce à des outils vus durant
le cours.
17

Vous aimerez peut-être aussi