Vous êtes sur la page 1sur 18

ENSAM – Ecole Nationale Supérieure des Arts et

Métiers MEKNES

Rapport d’élève ingénieur


Rapport de 4ème année
Filière : Génie Électromécanique, Commande et Management
Industriel

TP de Traitement numérique du signal TNS

Réalisé par :
Responsable du tp :
Mouhcine MOUFID
M. Mohammed TALEB
Taha Bouzid

année universitaire
2022/2023
Résumé

Dans la première partie du TP, nous avons créé une fonction Matlab appelée DFT
qui calcule la transformée de Fourier discrète d’un signal x(t) à partir d’échantillons de
x. Pour cela, nous avons utilisé la formule classique de la DFT qui est donnée par :

N
X −1
Xk = xn e−j2πkn/N (1)
n=0

où N est le nombre d’échantillons, xn est la valeur de l’échantillon n du signal x(t), k


est l’indice de fréquence et Xk est la valeur correspondante de la transformée de Fourier
discrète.
Nous avons ensuite comparé notre fonction DFT avec la fonction fft prédéfinie de
Matlab en utilisant un vecteur x de taille 10000. Pour cela, nous avons mesuré le temps
d’exécution de chaque fonction en utilisant les commandes tic et toc. Nous avons constaté
que la fonction fft était plus rapide que notre fonction DFT. Cependant, les résultats de
notre fonction DFT étaient identiques à ceux de la fonction fft, ce qui prouve que notre
fonction était correcte.
Dans la deuxième partie du TP, nous avons travaillé avec un signal échantillonné à une
fréquence de 44100 Hz, donné dans le fichier « TPson.mat ». Nous avons écouté le signal en
utilisant la commande sound(x,fs) et avons remarqué que la qualité de l’enregistrement
était moyenne.
Ensuite, nous avons calculé et tracé la transformée de Fourier discrète pour analyser
le spectre du signal. Nous avons utilisé la fonction fft de Matlab pour cela. Nous avons
remarqué la présence de fréquences parasites dans le signal, qui se situaient autour de 8.8
kHz et 14.7 kHz.
Pour supprimer ces fréquences parasites, nous avons proposé un filtre IIR en utilisant
la méthode de placement de pôles et zéros. Nous avons utilisé la commande zplane pour
dessiner la représentation des pôles et des zéros dans le plan complexe, et Nous avons
placé les pôles et les zéros de manière à obtenir un filtre passe-bas.
Nous avons tracé la réponse fréquentiel le du filtre en utilisant la commande freqz.
Nous avons remarqué que le filtre avait une forte atténuation aux fréquences parasites.
Enfin, nous avons appliqué le filtre au signal en utilisant la fonction filter de Matlab,
puis nous avons écouté le signal résultant y avec la commande sound(y,fs). Nous avons
tracé le spectre du signal y en utilisant la fonction fft de Matlab. . Nous avons constaté
que les fréquences parasites avaient été supprimées efficacement par le filtre IIR. Le spectre

1
du signal y était beaucoup plus propre et ne présentait plus les fréquences parasites
précédemment observées.
En résumé, ce TP nous a permis de mieux comprendre le traitement numérique de
signal en pratiquant la transformée de Fourier discrète, la comparaison de temps d’exé-
cution de fonctions, et la mise en place d’un filtre IIR pour la suppression de fréquences
parasites.

2
Table des matières
Résumé 1

Table des matières 3

1 Introduction 1

2 Travail n°1 : 2
2.1 le travail demandé : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.2 Notre travail : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.2.1 Écriture d’une fonction Matlab pour calculer la transformée de Fou-
rier discrète : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.2.2 Validation de la fonction en comparant les résultats avec la fonction
fft de Matlab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.2.3 Comparaison des temps d’exécution des deux fonctions . . . . . . 4

3 Travail n°2 : 5
3.1 le travail demandé : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.2 Notre travail : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.2.1 Lecture du signal avec la commande sound(x,fs) : . . . . . . . . . . 6
3.2.2 Analyse spectrale et le Code pour calculer et tracer la transformée
de Fourier discrète . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.2.3 Identification des fréquences parasites dans le signal . . . . . . . . 7
3.2.4 Proposition d’un filtre IIR pour supprimer les fréquences parasites 8
3.2.5 Représentation des pôles et zéros dans le plan complexe . . . . . . 10
3.2.6 Application du filtre au signal et analyse du signal filtré . . . . . . 11

4 Bibliographie 14

3
1 Introduction

1 Introduction

Le traitement numérique de signal est un domaine de l’informatique et de l’électronique


qui consiste à manipuler des signaux numériques pour extraire des informations utiles ou
pour effectuer des opérations de transformation sur ces signaux. Les signaux numériques
sont obtenus à partir de signaux analogiques en utilisant des convertisseurs analogique-
numérique (CAN). Les signaux numériques sont plus faciles à traiter que les signaux
analogiques, car ils sont représentés par des valeurs numériques discrètes et sont donc
plus faciles à stocker, à transmettre et à traiter par des algorithmes.
Le traitement numérique de signal est largement utilisé dans de nombreuses applica-
tions, telles que la communication, l’audio, la vidéo, l’imagerie médicale, le contrôle de
processus et la surveillance. Le traitement numérique de signal implique souvent l’uti-
lisation de techniques mathématiques avancées telles que la transformée de Fourier, la
transformée de Laplace, les filtres numériques et les algorithmes de traitement de signal.
Le traitement numérique de signal comprend des techniques telles que la filtrage, la
détection, l’estimation de paramètres, l’analyse spectrale, la compression de données, la
reconnaissance de forme et bien plus encore.
Les outils numériques tels que MATLAB et Python ont grandement facilité la tâche de
traitement numérique de signal, permettant aux ingénieurs et scientifiques de manipuler
et de traiter des signaux plus facilement et plus efficacement.
Le traitement numérique de signal est une discipline en constante évolution avec de
nouvelles applications apparaissant régulièrement dans de nombreux domaines, notam-
ment la communication, l’imagerie médicale, la robotique, l’astronomie et la géophysique,
pour n’en nommer que quelques-uns.
Dans ce contexte, ce TP a pour but de nous familiariser avec la transformée de Fourier
discrète (DFT), une technique couramment utilisée en traitement numérique de signal
pour analyser les signaux numériques. Nous allons également apprendre à utiliser des
filtres numériques pour supprimer les fréquences indésirables dans un signal numérique et
améliorer sa qualité.

1
2 Travail n°1 :

2 Travail n°1 :

2.1 le travail demandé :

Ecrire une fonction Matlab appelée DFT qui aura pour arguments le vecteur x conte-
nant les échantillons du signal x(t) permettant de calculer la transformée de Fourier
discrète de x.
Pour valider la fonction créée, comparer ses résultats avec ceux de la fonction fft
prédéfinie dans Matlab. Comparer également le temps d’exécution des deux fonctions
pour un vecteur x de taille 10000. Pour cela utiliser les commandes tic et toc. Qu’est-ce
que vous constatez ?

2
2 Travail n°1 :

2.2 Notre travail :

2.2.1 Écriture d’une fonction Matlab pour calculer la transformée de Fourier


discrète :

2.2.2 Validation de la fonction en comparant les résultats avec la fonction


fft de Matlab

Le fait que les résultats obtenus par la fonction DFT et la fonction fft de Matlab soient
identiques est un bon indicateur que la fonction DFT est correctement écrite et qu’elle
donne les mêmes résultats que la fonction fft, qui est prédéfinie dans Matlab. Cela signifie
que la fonction DFT est capable de calculer la transformée de Fourier discrète de manière

3
2 Travail n°1 :

précise et fiable. Cette validation est importante car elle nous assure que la fonction DFT
peut être utilisée en toute confiance dans des applications de traitement de signal plus
complexes.

2.2.3 Comparaison des temps d’exécution des deux fonctions

Donc en comparant les temps d’exécution de la fonction DFT que nous avons créée et
de la fonction fft prédéfinie dans Matlab, nous avons constaté que fft est plus rapide.Pour
un vecteur de taille 1000, le temps d’exécution de la fonction fft était seulement de 0.02
seconde, tandis que pour la fonction DFT, il était de 90 secondes. Cela est dû au fait
que la fonction fft utilise des algorithmes efficaces pour calculer la transformée de Fourier
discrète, tels que l’algorithme de Cooley-Tukey, qui réduit la complexité du calcul , ce qui
permet d’accélérer le calcul. En revanche, la fonction DFT que nous avons écrite utilise
une implémentation simple de la transformée de Fourier discrète, qui est plus lente pour
les signaux de grande taille. Donc par la suite on va utilisé la fonction fft en raison de sa
rapidité et de son efficacité.

4
3 Travail n°2 :

3 Travail n°2 :

3.1 le travail demandé :

On considère le signal donné dans le fichier « TPson.mat » échantillonné à la fréquence


fs = 44100 Hz
1. Lancer le fichier son sur Matlab en utilisant la commande sound(x,fs). Que peut-
on dire sur la qualité de l’enregistrement ? La commande « clear sound » permet
d’arrêter l’exécution de la commande sound.
2. On se propose de calculer et de tracer la transformée de Fourier discrète pour faire
une analyse spectrale. Donner le code qui permet de faire cela. Quelles sont les
fréquences parasites dans le signal ?
3. Proposer un filtre IIR en utilisant la méthode de placement de pôles et zéros
permettant de supprimer les fréquences parasites.
(a) Donner une représentation des pôles et zéros dans le plan complexe.
(b) Donner l’expression de la fonction de transfert du filtre.
(c) Tracer la réponse fréquentielle du filtre en utilisant la commande freqz.
4. Appliquer ce filtre au signal et écouter le signal résultant y. Tracer ensuite le spectre
du signal y. Que peut-on conclure ?

5
3 Travail n°2 :

3.2 Notre travail :

3.2.1 Lecture du signal avec la commande sound(x,fs) :

Après avoir lancé le fichier son sur Matlab en utilisant la commande sound(x,fs), on a
constaté que le son était très bruyant et peu clair, ce qui peut indiquer que le signal audio
contient des fréquences parasites et des perturbations. Donc il est important d’analyser
le signal en profondeur pour identifier les sources de bruit et de perturbation et pour
appliquer les filtres nécessaires pour améliorer la qualité du son.

3.2.2 Analyse spectrale et le Code pour calculer et tracer la transformée de


Fourier discrète

6
3 Travail n°2 :

3.2.3 Identification des fréquences parasites dans le signal

Après avoir calculé et tracé la transformée de Fourier discrète du signal, on a identifié


la présence de fréquences parasites dans le signal. Ces fréquences sont caractérisées par
deux pulsations : ω = 2π/5 et ω = 2π/3, et aussi la présence de deux raies symétriques par
rapport à l’origine situées aux pulsations négatives en ajoutant les pulsations ω = −2π/5
et ω = −2π/3, ce qui correspondant respectivement aux fréquences f1 = 8822.54 Hz et
f2 = 14697.22 Hz et f3 = −8822.54 Hz et f4 = −14697.22 Hz.
Afin de supprimer ces fréquences, on utilise un filtre coupe-bande dont l’amplitude est
nulle pour les pulsations ω1 et ω2 et ω3 et ω4 . Cela permet de supprimer le signal de ces
pulsations normalisées.
Pour ω ̸= ω1 et ω2 et ω3 et ω4 , l’amplitude est égale à l’unité et par conséquent ces
fréquences ne subiront aucune modification.
Si on veut par contre supprimer les 4 fréquences f1 et f2 et f3 et f4 contenues dans le
signal à filtrer, il suffit pour cela de prévoir des zéros dont les arguments correspondent aux
pulsations normalisées. Cette méthode peut être généralisée à un nombre quelconque de
fréquences. Il suffit pour cela de définir le polynôme numérateur N (z) comme un polynôme
ayant des zéros sur le cercle unité correspondant aux fréquences qu’on désire supprimer.

7
3 Travail n°2 :

Soit M le nombre des fréquences fk à supprimer (positives et négatives), on définit


alors le numérateur N (z) par :

M
Y
N (z) = (1 − ejωk z −1 ) (2)
k=1

où ωk = 2πfk
fs
, k = 1, 2, . . . , M .
Le dénominateur de la fonction de transfert du filtre est alors
M
Y
D(z) = N (ρ z) = −1
(1 − ejωk ρ z −1 ), 0<ρ<1 (3)
k=1

Les racines de D(z) sont situées sur la même direction des zéros à l’intérieur du cercle
unité à une distance de l’origine égale à ρ. Une forme développée de H(z) est donnée par :

N (z) 1 + b1 z −1 + b2 z −2 + · · · + bM z −M
H(z) = = (4)
N (ρ−1 z) 1 + ρb1 z −1 + ρ2 b2 z −2 + · · · + ρM bM z −M

3.2.4 Proposition d’un filtre IIR pour supprimer les fréquences parasites

8
3 Travail n°2 :

Donc on voit clairement que le filtre coupe-bande choisi a une amplitude nulle pour
les pulsations ω1 et ω2 et ω3 et ω4 ,ce qui permet de supprimer complètement les signaux
correspondants à ces pulsations. En revanche, pour les pulsations différentes de ω1 et ω2
et ω3 et ω4 , l’amplitude du filtre est de l’ordre de l’unité, ce qui signifie que ces fréquences
ne subiront aucune modification.
Il est important de noter que l’utilisation d’un filtre coupe-bande permet de cibler
précisément les fréquences parasites indésirables, tout en préservant les fréquences utiles
pour l’analyse du signal. De plus, l’utilisation d’un filtre IIR est intéressante car elle
permet d’obtenir une réponse fréquentielle très sélective et donc de supprimer de manière
efficace les fréquences parasites.
Une fois le filtre IIR implémenté, on a appliquer ce filtre par la suite sur le fichier son
et nous avons pu constater une nette amélioration de la qualité du signal filtré, avec une
suppression complète des fréquences parasites ciblées par le filtre.
Expression de la fonction de transfert du filtre :

N (z) (1 − ejω1 z −1 ) (1 − e−jω1 z −1 ) (1 − ejω2 z −1 ) (1 − e−jω2 z −1 )


H(z) = = (5)
N (ρ−1 z) (1 − ρejω1 z −1 ) (1 − ρe−jω1 z −1 ) (1 − ρejω2 z −1 ) (1 − ρe−jω2 z −1 )

apres la simplification de H(z) et prenant ρ = 0.98 on trouve pour a et b :

9
3 Travail n°2 :

Donc :

1 + 0, 382z −1 + 1, 382z −2 + 0, 382z −3 + z −4


H(z) = (6)
1 + 0, 3743z −1 + 1, 3272z −2 + 0, 3595z −3 + 0, 9224z −4

3.2.5 Représentation des pôles et zéros dans le plan complexe

Suite à l’identification des fréquences parasites présentes dans le signal, nous avons
proposé d’utiliser un filtre IIR pour les supprimer. Pour mieux comprendre le compor-
tement de ce filtre, nous avons tracé la représentation des pôles et zéros dans le plan
complexe. Cette représentation nous a permis d’identifier clairement les 4 pôles et zéros
correspondant aux fréquences parasites w1, w2, w3 et w4.
Cette représentation dans le plan complexe nous permet de mieux visualiser le com-
portement du filtre et de comprendre comment il fonctionne pour supprimer les fréquences
parasites.

10
3 Travail n°2 :

3.2.6 Application du filtre au signal et analyse du signal filtré

11
3 Travail n°2 :

Après avoir analysé le signal TPson.mat échantillonné à la fréquence fs = 44100


Hz, nous avons identifié les fréquences parasites responsables des perturbations obser-
vées dans le signal. Nous avons ensuite proposé l’utilisation d’un filtre IIR pour éliminer
ces fréquences indésirables. Plus précisément, nous avons choisi un filtre coupe-bande pour
supprimer les fréquences ω1 , ω2 , ω3 et ω4 .
En utilisant ce filtre coupe-bande, nous avons pu réduire l’amplitude de ces fréquences
parasites à zéro, permettant ainsi d’éliminer le bruit associé à ces fréquences et de restaurer
la qualité du signal. Cela a été confirmé par l’observation des résultats de la réponse
fréquentielle du filtre, qui montrent clairement la suppression des fréquences parasites.
Nous avons représenté les pôles et zéros du filtre dans le plan complexe et exprimé la
fonction de transfert du filtre. Nous avons également tracé la réponse fréquentielle du
filtre .
Nous avons ensuite appliqué le filtre au signal et analysé le signal filtré en écoutant le
signal filtré et en traçant son spectre. Nous avons conclu que l’utilisation du filtre coupe-
bande s’est révélée efficace pour éliminer les fréquences parasites identifiées dans le signal
et restaurer sa qualité.
Dans l’ensemble, nous avons écrit une fonction Matlab pour calculer la transformée
de Fourier discrète, validé la fonction en comparant les résultats avec la fonction fft de
Matlab, et comparé les temps d’exécution des deux fonctions pour un vecteur de taille
10000. Nous avons également analysé le signal TPson.mat échantillonné à la fréquence
fs = 44100 Hz en calculant et traçant sa transformée de Fourier discrète, identifié les

12
3 Travail n°2 :

fréquences parasites dans le signal, proposé un filtre IIR pour éliminer ces fréquences
parasites, et appliqué le filtre au signal pour restaurer sa qualité.

13
4 Bibliographie

4 Bibliographie

[1] Mohammed TALEB , Support de cours traitement numérique du signal (2023)

14

Vous aimerez peut-être aussi