Vous êtes sur la page 1sur 12

Descombes Sacha

Benbihi Ali
Master 1 T3I

Rapport TP : Echantillonnage/Filtrage
Dans ce rapport, nous allons utiliser Matlab pour simuler la génération, l’échantillonnage, le
filtrage fréquentiel et la reconstitution de différents signaux.

Partie I : Filtrage

A) On va commencer par générer un signal composé de 3 composantes sinusoïdales de


fréquences 2130Hz, 3750Hz et 4960Hz et d’amplitudes 1, 1.8 et 0.9 respectivement.

On définit une fréquence d’échantillonnage fe = 20kHz (ligne 4), un vecteur fi comprenant les
3 fréquences des composantes du signal (l.5) et un vecteur ai comprenant les amplitudes de
ces composantes (l.6).
Nous voulons un signal composé de N échantillons avec N = 1024 (l.7).
L’axe temporel t est également de longueur N, les temps sont espacés d’un pas
d’échantillonnage valant 1/fe (l.9).
Nous appellerons notre signal m1 par la suite qui est la résultante des 3 composantes (l.10).

Signal m1(t) tracé à l’aide de plot (t, m1) (l.12).


B) Nous allons maintenant tracer le spectre d’amplitude du signal m1.

L’axe fréquentiel f est de longueur N, les fréquences sont espacées d’un pas valant fe/N
(l.16).
On calcule la transformée de Fourier M1 de notre signal m1 en utilisant la fonction fft ()
(l.17).

Spectre d’amplitude du signal m1(t) tracé à l’aide de plot (f, abs(M1) /(N/2)) (l.19).

On observe bien 3 diracs aux fréquences prévues.


On a divisé le spectre d’amplitude par N/2 pour obtenir les amplitudes spécifiées au début du
script.
Le spectre (vu entre 0 et fe) est symétrique par rapport à fe/2, on observe donc 3 autres
diracs.
C) Nous allons maintenant simuler un bruit et l’ajouter à notre signal.

La fonction randn () permet de générer un bruit aléatoire gaussien à la longueur spécifiée, on


le nomme b, on prend une puissance de 0.2 et une longueur N (l.23).
On ajoute b au signal m1 pour obtenir un signal bruité m2 (l.24).

En haut : bruit b(t)


En bas : signal m1(t) en bleu, signal bruité m2(t) en orange
(l. 26-30)

D)

Nous utilisons fft() pour calculer le transformée de Fourier M2 de m2 (l.34).


Spectre d’amplitude du signal bruité m2(t) tracé à l’aide de plot (f, abs(M2) /(N/2)) (l.36).

Le spectre est similaire à celui du signal non bruité avec des fréquences parasites sur toute la largeur
du spectre.

E) Pour extraire la sinusoïde de fréquence 3750Hz, on va créer un filtre qui est une suite de
deux portes centrées sur le dirac en 3750Hz et son symétrique en fe – 3750 = 16250Hz. On va
ensuite multiplier M2(f) par ce filtre et faire la transformée inverse du spectre filtré.
Il ne faut pas oublier de vérifier la symétrie du filtre avant de l’utiliser (filtre non symétrique
→ spectre filtré non symétrique → la transformée inverse ne sera pas réelle), il faut s’assurer
que la transformée inverse du filtre a une partie imaginaire nulle.

F) Application :
On recherche d’abord la position pos de 3750Hz sur l’axe fréquentiel f (l. 48).
On définit la demi-largeur l de nos portes en nombre d’échantillons (l.49).

Création du filtre W : deux portes de largeur 2l centrées sur pos et N-pos (3750 et 16250Hz), la
longueur du filtre vaut N (l. 51).

La ligne 54 permet de tracer la partie imaginaire de la transformée inverse de la porte (vérification de


la symétrie), si celle-ci est nulle on peut passer à l’étape suivante.

Filtrage du spectre : on multiplie notre filtre W par M2 (l.56).

Spectre d’amplitude de M2 filtré par W (nommé M3) tracé à l’aide de plot (f, abs(M3) /(N/2)) (l. 57)

Il ne reste que les deux diracs voulus en 3750 et 16250Hz.

Soit m3 le signal reconstitué (transformée inverse de M3) et y le signal idéal (sinusoïdale à 3750Hz
d’amplitude 1.8) (l. 59 et 60).

En traçant m3 et y (l. 62 et 63) on remarque que les signaux sont quasiment identiques.
Erreur quadratique tracé à l’aide de plot (t, (y-m3). ^2) (l. 65 et 66)

On constate que l’erreur quadratique entre signal reconstitué et idéal est très faible (de l’ordre de
10^-3 pour un signal d’amplitude 1.8), ce qui montre que la reconstitution a bien fonctionné.
Partie II : Echantillonnage

A)

On veut créer un signal sinus amorti.


Tout d’abord, il faut spécifier la longueur du signal N (1024 points) et la fréquence d’échantillonnage
fe (20kHz) (l. 75-76).
Ensuite, on spécifie les paramètres du signal : coefficient d’amortissement a de 100 et fréquence de
100Hz (l.77-78).

On crée l’axe temporel de longueur N, de pas 1/fe et l’axe fréquentiel de longueur N, de pas fe/N
(l.80-81).

On crée l’exponentielle décroissante s1 et la sinusoïde s2, la multiplication des deux donne notre
sinus amorti (l.82-84).

Signal s(t) tracé à l’aide de plot(t,s) (l.86)


B)

On veut maintenant ré-échantillonner s avec une fréquence fe2 inférieure à fe1 (sous-
échantillonnage). On spécifie donc ces deux fréquences, la fréquence d’échantillonnage d’origine est
de 20kHz et celle d’arrivée 2kHz (l. 91-92).

On définit sk comme une suite de zéros de longueur N, c’est le futur signal sous-échantillonné (l.94).
On calcule n qui correspond au rapport fe1/fe2 arrondi à l’entier le plus proche (forcément supérieur
à 1 car fe1 > fe2 pour un sous-échantillonnage), dans notre cas n vaut 10 (l.95). Cela veut dire que
pour obtenir notre signal sk, il faut prélever un échantillon du signal s tous les 10 échantillons.

On crée le vecteur k qui correspond aux numéros d’échantillons qu’il faut prélever à s pour obtenir
sk. On prélève le 1er échantillon puis on prélève tous les n échantillons sur toute la longueur du signal
(l.97).
On affecte ces échantillons prélevés à sk, tous les autres échantillons de sk reste à zéro (l.98).

Signal sous-échantillonné sk(t) tracé à l’aide de plot(t,sk) (l.100)


C)

Soit S la transformée de Fourier de s et SK celle de sk (l.105-106).

Spectre d’amplitude du signal s(t) (bleu) et du signal sous-échantillonné sk(t) (orange) tracé à l’aide
de plot (f, abs(S), f, abs(SK) ) (l.106)

On observe que le spectre de sk est le même que celui de s mais répété tous les 2kHz au lieu de tous
les 20kHz (on a changé de fréquence d’échantillonnage, celle-ci a été divisée par 10), les amplitudes
ont été aussi divisées par 10. On a donc une même énergie entre s et sk.

D) Pour reconstituer le signal s à partir du spectre de sk, on va utiliser une méthode similaire à
la partie I, question E. Création d’un filtre composé de deux portes pour ne garder que le
premier et dernier pic, vérification de la symétrie du filtre, filtrage fréquentiel puis
transformée inverse.
On va prendre le premier et dernier pic du spectre de sk, on prendra comme largeur de porte fe2/2 =
1000Hz pour ne pas perdre d’information. Pour cela, on va chercher à quelle position sur l’axe f
correspond 1000Hz (l.110).

Création du filtre : une porte de 0 à 1kHz et de 19 à 20kHz (l.112).

Vérification de la symétrie du filtre : si la partie imaginaire de la transformée inverse du filtre est


nulle (ce qui est le cas ici) on peut utiliser ce filtre (l.113).

On multiplie SK par le filtre W pour garder que le 1er et dernier pic du spectre, il ne faut pas oublier
de multiplier par n pour obtenir la bonne amplitude (l.115). On appelle sr le signal reconstitué et SR
sa transformée de Fourier.

Spectre d’amplitude du signal reconstitué sr(t) tracé à l’aide de plot (f, abs(SR) ) (l.116)
On calcule le signal reconstitué sr qui est la transformée inverse de SR (l.118).

Comparons le signal d’origine s au signal reconstitué sr :

Signal d’origine s(t) (orange) et reconstitué sr(t) (bleu) tracé à l’aide de plot (t, sr, t, s) (l.119)

On constate une erreur au début et à la fin du signal, cela est dû aux effets de bords qui proviennent
du filtrage fréquentiel par des portes rectangulaires.

E)

On calcule l’erreur quadratique e entre s et sr, e = (s-sr).^2 (l.124).


Erreur quadratique tracé à l’aide de plot (t, e) (l.126)

On constate ici encore que l’erreur est présente au début et à la fin du signal.