Vous êtes sur la page 1sur 15

UNIVERSITE IBN ZOHR DEPARTEMENT

FACULTE DES DE PHYSIQUE


SCIENCES - AGADIR L.E.T.S.M.P

Licence en Sciences Physiques


Parcours Electronique

Travaux Pratiques de Traitement


du Signal

Hicham SAYLANI

Année universitaire 2016 - 2017


Table des matières

1 Représentations de signaux - Séries de Fourier 3


1.1 Représentations de Signaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Analyse de Fourier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3 Synthèse de Fourier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2 Introduction à l’analyse spectrale numérique 5


2.1 TFD et TFR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2 TFD et échantillonnage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.3 TFD et convolution discrète . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.4 Analyse spectrale par TFD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

3 Introduction au filtrage numérique 9


3.1 Filtrage dans le domaine fréquentiel . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.1.1 Signaux 1D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.1.2 Signaux 2D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.2 Filtrage dans le domaine temporel . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.2.1 Analyse et réalisation des filtres numériques . . . . . . . . . . . . . . . . 10
3.2.2 Synthèse des filtres numériques . . . . . . . . . . . . . . . . . . . . . . . 11
0 TABLE DES MATIÈRES
Note

Ce polycopié de Travaux Pratiques (TPs) de traitement du signal est destiné aux étudiants
du parcours Electronique de la Licence en Sciences Physiques. En nombre de trois, ces TPs ont
pour but de mettre en œuvre toutes les notions vues en cours et en TDs. Une connaissance
parfaite de ces notions (sur le plan théorique) est donc indispensable pour pouvoir réaliser ces
TPs et en tirer profit.

Le logiciel utilisé pour réaliser ces TPs est le logiciel libre Scilab, qui est très similaire au
logiciel Matlab. Ce logiciel est disponible au téléchargement pour tous les systèmes d’exploi-
tation (Windows, Linux, Mac) sur son site officiel 1 . Il appartient donc à chaque étudiant de le
télacharger et de l’installer préalablement, et ce afin de se préparer au mieux avant le jour du
TP, et aussi pouvoir continuer sur le travail réalisé ce jour-ci.

1. https ://www.scilab.org/fr

1
2 TABLE DES MATIÈRES
TP 1

Représentations de signaux - Séries de


Fourier

1.1 Représentations de Signaux


Soit x(t) le signal périodique à temps continu défini par x(t) = A0 + A1 cos(2πf0 t + α1 ), où
f0 = T10 . On note x[n] = x(tn = nTe ) le signal à temps discret qui résulte de l’échantillonnage
du signal x(t) à la fréquence fe = T1e , et T = m.T0 (m entier) sa durée.
π
1. Simuler puis représenter le signal x[n] pour A0 = 0, A1 = 1, f0 = 1 Hz, α1 = ,
2
fe = 20f0 et m = 1 (soit une période du signal).
2. Faire varier chacun des paramètres mis en jeu (un à la fois) afin d’avoir une idée
sur son influence sur la représentation du signal x[n]. Prendre pour cela : A0 ∈
π π π
{0, 1, 2, −1}, A1 ∈ {1, −1, 2, −2}, f0 ∈ {1, 2, 21 , 14 }, α1 ∈ { , − , , 0}, m ∈ {1, 2, 4} et
2 2 4
fe ∈ {20f0 , 10f0 , 8f0 , 6f0 , 4f0 }.
3. Calculer numériquement sa puissance moyenne totale pour différentes valeurs de la
fréquence f0 après avoir fixé tous les autres paramètres. Conclure.
4. En déduire si le théorème de Parseval est vérifié.

1.2 Analyse de Fourier


π
On considère le signal défini par x(t) = 3 + 2 cos(2πf0 t) − 3.464 sin(2πf0 t) + 2 sin(6πf0 t + ).
4
1
1. En prenant f0 = 1 Hz, fe = Te = 100f0 , calculer numériquement :
(a) les coefficients de Fourier ak et bk mis en jeu dans le Développement en SF (DSF)
de x[n],
(b) les paramètres Ak et αk mis en jeu dans le DSF en Cosinus de x[n],
(c) les coefficients Ck = X(j.k) mis en jeu dans le DSF Complexe de x[n].
2. Retrouver le signal x[n] à partir de chacun de ses DSF en utilisant la formule de synthèse
correspondante.
3. Représenter les spectres d’amplitude et de phase unilatéraux et bilatéraux du signal
x[n].
4. En déduire si le théorème de Parseval est vérifié.

3
4 TP 1. REPRÉSENTATIONS DE SIGNAUX - SÉRIES DE FOURIER

1.3 Synthèse de Fourier


On se propose de reconstruire ou synthétiser une approximation d’ordre N d’un signal
1
périodique x(t) de période T0 = , connaissant son spectre complexe Ck = X(j.k).
f0
1. Simuler puis représenter cette approximation, qu’on note xN (t), pour différentes
valeurs de N et fe dans le cas où x(t) est défini respectivement par :
(a) Une Suite d’Impulsions Rectangulaires (SIR), sachant que dans ce cas on a (voir
TD) :
k=+N
X
xN (t) = Ck .e+j2kπf0 t
k=−N
k=+N
X ∆t
= A .sinc(kπf0 ∆t).e+j2kπf0 t
k=−N
T0
k=N
!
∆t X sin(kπf0 ∆t)
= A 1+2 . cos(2kπf0 t)
T0 k=1
kπf0 ∆t

(b) Un signal carré symétrique.

(c) Une Suite d’Impulsions Triangulaires (SIT) :

∆t
Ck = A .sinc2 (kπf0 ∆t)
T0

(d) Un signal triangulaire symétrique.

(e) Une Suite d’Exponentielles Décroissantes (SED) :


τ 1
Ck = A .
T0 1 + j2kπf0 τ

(f) Le signal qui résulte du redressement double alternance du signal x(t) = cos(2πf0 t) :

2(−1)k+1
Ck =
π(4k 2 − 1)

(g) Le signal qui résulte du redressement simple alternance du signal x(t) = cos(2πf0 t) :

(−1)p+1

pour k = 2p (k pair)


π(4p2 − 1)

Ck =

 ± 14 pour k = ±1
0 sinon

2. Dans quels cas la synthèse est meilleure ? Expliquer.

3. Quelle est l’influence du nombre d’harmoniques N sur la synthèse ?

4. En utilisant la commande sound , écouter le signal xN (t) synthétisé pour chaque valeur
de N , et prenant f0 = 440 Hz et fe > 2f0 . Commenter.
TP 2

Introduction à l’analyse spectrale


numérique
On se propose dans ce TP d’étudier la Transformée de Fourier de signaux numériques à
temps discret notés x[n]. Ces derniers résultent de l’échantillonnage, à la fréquence fe , de signaux
analogiques à temps continu notés x(t). On a x[n] = x(t = tn ) = xe (tn ), où tn = n.Te = n/fe .
On rappelle que de la même façon qu’on discrétise le signal temporel x(t) afin de pouvoir
le manipuler en utilisant une machine et un logiciel de calcul numérique (comme Scilab par
exemple), on discrétise aussi le spectre du signal à temps discret x[n] afin de ”pouvoir le
manipuler numériquement”. Ainsi si on dispose de N échantillons du signal x[n] correspondants
aux instants n.Te , n ∈ [0, N − 1] (espacés de dt = Te [s]) et une durée totale T [s], on calcule la
Transformée de Fourier sur N fréquences discrètes fk = k.df correspondants à k ∈ [0, N − 1]
qui sont espacées de df = 1/T : on note X(f = fk ) = X(k.df ) = X[k]. Il s’agit donc de la
Transformée de Fourier dite Discrète (TFD), notée aussi XD [k], qui est définie par l’une
des relations suivantes (voir cours) :
X−1
n=N
2πkn
X[k] = x[n]e−j N , ∀ k ∈ [0, N − 1] (2.1)
n=0
n= N
2
−1  
X
−j 2πkn N N
X[k] = x[n]e N , ∀ k ∈ − ,+ − 1 (2.2)
2 2
n=− N
2

2.1 TFD et TFR


Soit x[n] le signal à temps discret ayant N échantillons qui résulte de l’échantillonnage d’un
signal porte. En prenant pour N une puissance de 2 (N = 8, 16, ...), utiliser la syntaxe suivante :

x = [zeros(1, N/4), ones(1, N/2 + 1), zeros(1, N/4 − 1)].

1. (a) Ecrire un script qui permet de calculer la TFD du signal x[n] en utilisant la relation
(2.1).
(b) Comparer cette TFD à celle obtenue en utilisant la fonction fft 1 de Scilab.
2. (a) Ecrire un script qui permet de calculer la TFD du signal x[n] en utilisant la relation
(2.2).
(b) Comparer cette TFD à celle obtenue en utilisant les fonctions fft et fftshift de
Scilab.
3. Reprendre les questions 1. et 2. en utilisant pour x[n] un signal aléatoire. Conclure.
1. fft pour Fast Fourier Transform en anglais, soit la Transformée de Fourier Rapide en français (TFR).

5
6 TP 2. INTRODUCTION À L’ANALYSE SPECTRALE NUMÉRIQUE

2.2 TFD et échantillonnage


1. Soit x(t) un signal analogique à bande limitée [−fmax , +fmax ] et soit xe (t) le signal à
temps discret qui résulte de son échantillonnage à la fréquence fe .
(a) Rappeler l’expression du spectre de xe (t), noté Xe (f ).
(b) Rappeler la Condition de Shannon.
2. Soit x(t) = A cos(2πf0 t + α).
(a) Rappeler l’expression de la TF du signal analogique x(t).
(b) En fixant les paramètres A, f0 , fe = N f0 , α et T = mT0 (la durée) du signal x[n] =
xe (tn ), calculer puis représenter ses spectres d’amplitude et de phase bilatéraux au
Sens de Fourier.
(c) Faire varier chacun des paramètres mis en jeux afin d’avoir une idée sur son in-
fluence sur ces spectres. Pour la fréquence d’échantillonnage fe étudier les trois cas
qui correspondent respectivement à fe = 4f0 , fe = 2f0 et fe = f0 . Commenter.
3. Utiliser votre script final pour représenter les spectres d’amplitude et de phase bilatéraux
au Sens de Fourier du signal x(t) de l’exercice 2 du TP1 (voir section 1.2). Commenter.

2.3 TFD et convolution discrète


On s’intéresse dans cet exercice à l’opération de convolution entre deux signaux à temps
discret, dite convolution discrète, et sa relation avec la TFD à travers le théorème de Plan-
cherel et le théorème de Wiener-Khintchine. On rappelle que pour deux signaux x[n] et y[n]
de longueurs respectives Nx et Ny cette convolution, qu’on note z[n] = x[n] ∗ y[n] = y[n] ∗ x[n],
est définie par :
N x −1 Ny −1
X X
z[n] = x[k]y[n − k] = y[k]x[n − k], ∀ n ∈ [0, Nx + Ny − 2]. (2.3)
k=0 k=0

On rappelle également qu’il existe deux types de convolution discrète, suivant l’approche
qu’on utilise pour calculer z[n]. En considérant que nos signaux discrets sont de durée finie
et causaux (c-à-d x[n − k] = y[n − k] = 0, ∀ n < k) on parle de convolution dite linéaire,
à la quelle on d’intéresse ici.
1. En utilisant la commande ”conv ” de Scilab 2 :
(a) Calculer puis représenter le signal z[n] pour x[n] = y[n] = [0, 1, 1, 1, 0]. Commenter.
(b) Calculer puis représenter le signal z[n] pour x[n] et y[n] des signaux aléatoires de
longueurs quelconques.
2. Après avoir complété les signaux x[n] et y[n] par des zéros pour avoir des longueurs
convenables 3 :
(a) Calculer les TFD des signaux x[n], y[n] et z[n], notées respectivement X[k], Y [k] et
Z[k].
(b) Comparer le produit X[k]. ∗ Y [k] à Z[k]. Conclure.
(c) Calculer la TFD inverse du spectre Z[k] qu’on note z2 [n]. Comparer z2 [n] à z[n] en
les représentant sur la même figure.
(d) Comparer le temps de calcul 4 de z2 [n] à celui de z[n]. Conclure.
2. Pour calculer zl [n] = x[n] ∗ y[n] la syntaxe à utilier est la suivante : z = conv(x, y) ou z = conv(y, x).
3. En utilisant la syntaxe suivante : x = [x, zeros(1, Ny − 1)] et y = [y, zeros(1, Nx − 1)].
4. En mettant le code scilab réalisant ce calcul entre les commandes tic et toc.
2.4. ANALYSE SPECTRALE PAR TFD 7

3. Reprendre la question 2. en s’intéressant cette fois-ci à la fonction d’intercorrélation


entre les signaux x[n] et y[n], notée Cxy [n] = x[n] ∗ ȳ[−n], au lieu de leur convolution
z[n].

2.4 Analyse spectrale par TFD


Soit x[n] le signal à temps discret ayant N échantillons qui résulte de l’échantillonnage d’un
signal audio à temps continu x(t).
1. Arpès avoir chargé ce signal audio, nommé Audio.wav, en utilisant la commande wa-
vread 5 , déduire les paramètres suivants : fe , N et T .
2. Ecouter ce signal audio en utilisant la commande sound 6 . Commenter.
3. Représenter temporellement ce signal. Commenter.
4. Représenter ses spectres d’amplitude et de phase bilatéraux (au sens de Fourier)
en fonction de l’indice (fréquence) bilatéral k puis en fonction de la fréquence bilatérale
fk .
5. En déduire l’expression du signal à temps continu, qu’on note xSF (t), qui correspond
(au sens de Fourier) à ces spectres.
6. Vérifier qu’on a x[n] = xSF (tn = n.Te ) = xSF [n], ∀ n ∈ [0, N − 1], en représentant sur la
même figure ces deux signaux x[n] et xSF [n].
7. En déduire si le théorème de Parseval est vérifié pour les signaux à temps discret.

5. Utiliser pour cela la syntaxe [x, fe] = wavread(0 Audio.wav0 ).


6. Utiliser la syntaxe sound(x, fe).
8 TP 2. INTRODUCTION À L’ANALYSE SPECTRALE NUMÉRIQUE
TP 3

Introduction au filtrage numérique

3.1 Filtrage dans le domaine fréquentiel


Le but de cette partie du TP est d’écrire des scripts qui permettent de réaliser le filtrage
par fft de signaux uni-dimensionnels (ou 1D) ou bi-dimensionnels (ou 2D) en utilisant respec-
tivement des filtres passe-bas, passe-haut, passe-bande ou coupe-bande. Pour les signaux
1D on utilisera des signaux audio et pour les signaux 2D on utilisera des images binaires ou en
niveaux de gris. Dans chaque cas :
1. Commencer par représenter le spectre d’amplitude (bilatéral) du signal (avant filtrage)
afin d’avoir d’une idée sur le filtre approprié et fréquence(s) de coupure correspon-
dante(s).
2. Représenter le spectre d’amplitude (bilatéral) du signal filtré afin de vérifier que l’objectif
est atteint.
3. Représenter le signal avant et après filtrage pour une comparaison et une deuxième
vérification. Pour les signaux audio, penser en plus à écouter le signal avant et après
filtrage.
4. Penser à amplifier le signal filtré au besoin.

3.1.1 Signaux 1D
1. Ecrire deux scripts qui permettent de réaliser le filtrage par fft respectivement passe-
bas et passe-haut des signaux audio suivants :
(a) x(t) un signal blanc modélisé par x(t) = b(t), où b(t) est un bruit aléatoire uniforme.
Prendre pour cela x = rand(1, N) pour N impair puis pair (commencer par des
valeurs faibles pour N).
(b) x(t) un signal audio non bruité modélisé par x(t) = s(t), où s(t) est un signal
numérique propre (sans bruit additif). Prendre pour cela [x, f e] = wavread(0 Audio10 ).
(c) x(t) un signal audio bruité modélisé par x(t) = s(t) + b(t), où b(t) est un bruit additif
Haute Fréquence, puis Basse Fréquence. Prendre pour cela [x, f e] = wavread(0 Audio20 )
puis [x, f e] = wavread(0 Audio30 ).
(d) x(t) un signal audio bruité modélisé par x(t) = s(t) + b(t), où le bruit b(t) est cette
fois-ci une sinusoı̈de pure. Prendre pour cela [x, f e] = wavread(0 Audio40 ).
2. Ecrire deux scripts qui permettent de réaliser le filtrage par fft respectivement passe-
bande et coupe-bande en utilisant le signal ”Audio4”.

9
10 TP 3. INTRODUCTION AU FILTRAGE NUMÉRIQUE

3.1.2 Signaux 2D
1. Ecrire deux scripts qui permettent de réaliser le filtrage par fft respectivement passe-
bas et passe-haut des images suivantes :
(a) I une image aléatoire. Prendre pour cela I = rand(M, N) pour M et N impairs puis
pairs.
(b) I une image propre (non bruitée). Prendre pour cela I = imread(0 Image1.png0 ).
(c) I une image bruitée modélisée par I = I0 + B, où B est une image bruit HF, puis BF.
Prendre pour cela I = imread(0 Image2.png0 ) puis I = imread(0 Image3.png0 ).
(d) I une image bruitée modélisée par I = I0 + B, où l’image bruit B est cette fois-ci
une image périodique (sinusoı̈dale). Prendre pour cela I = imread(0 Image4.png0 ).
2. Ecrire deux scripts qui permettent de réaliser le filtrage par fft respectivement passe-
bande et coupe-bande en utilisant les mêmes images de la question précédente.

3.2 Filtrage dans le domaine temporel


On rappelle que le filtrage dans le domaine temporel d’un signal numérique x[n] est
équivalent à l’opération de convolution linéaire entre ce dernier et la Réponse Impulsion-
nelle (RI ) du filtre utilisé, notée h[n]. On rappelle également que chaque filtre numérique
est caractérisé par sa Fonction de Transfert en ”z” 1 , notée H(z), ou son Equation aux
Différences qui sont définies respectivement par les deux relations suivantes :
Pk=K −k
k=0 bk z B(z)
H(z) = k=L
= , (3.1)
A(z)
P
1 + k=1 ak z −k

k=K
X k=L
X
y[n] = bk x[n − k] − ak y[n − k]. (3.2)
k=0 k=1

Un filtre numérique est donc parfaitement décrit par les deux suites de coefficients bk et ak
constituant respectivement deux vecteurs qu’on peut noter ~b = [b0 , b1 , ..., bK ] et ~a = [a0 , a1 , ..., aL ]
(a0 = 1). Quand ces derniers sont connus, on peut très bien analyser puis réaliser le filtre, ce qui
fera l’objet de la section 3.2.1. Dans le cas contraire, il faudra commencer par les déterminer,
suivant des spécifications pré-définies (ou cahier de charges), chose qui relève de la synthèse de
filtres numériques et qui fera l’objet de la section 3.2.2.

3.2.1 Analyse et réalisation des filtres numériques


On considère le filtre numérique caractérisé par l’équation aux différences suivante : y[n] =
x[n]+a1 y[n−1], où le coefficient a1 est un paramètre dont il faut étudier l’influence sur l’analyse
et la réalisation du filtre.
1. Ecrire un script qui permet de faire l’analyse de ce filtre en étudiant :
(a) sa stabilité (b) sa réponse en fréquence (c) sa réponse impulsionnelle.
2. (a) Ecrire un script qui permet la réalisation de ce filtre.
(b) Comparer le signal filtré y[n] à celui obtenu en utilisant la fonction filter de Scilab.
(c) Comparer le signal filtré y[n] au signal d’entrée x[n]. Commenter.
1. La Fonction de Transfert H(z) du filtre n’est autre que la Transformée en Z de sa Réponse Impulsion-
nelle h[n].
3.2. FILTRAGE DANS LE DOMAINE TEMPOREL 11

3. Reprendre les questions 1. et 2. pour le filtre numérique caractérisé par :


1 1
H(z) = (1 + z −2 ) + z −1 .
4 2
B(z)
4. Reprendre les questions 1. et 2. pour le filtre numérique caractérisé par : H(z) = ,
A(z)
où B(z) = 0.212 + 0.424 z −1 + 0.212 z −2 et A(z) = 1 − 0.997 z −1 + 0.845 z −2 .

3.2.2 Synthèse des filtres numériques


On s’intéresse dans ce exercice à quelques méthodes de synthèse de filtres numériques à
Réponse Impulsionnelle Finie, baptisés filtres RIF , ou à Réponse Impulsionnelle Infinie,
baptisés filtres RII .
1. (a) Ecrire un script qui permet de synthétiser un filtre numérique RII en utilisant la
méthode de Transformation Bilinéaire.
(b) Comparer les vecteurs ~b et ~a synthétisés à ceux obtenus en utilisant la fonction
cls2dls de Scilab 2 (consulter l’aide du logiciel pour la syntaxe).
2. (a) Ecrire un script qui permet de synthétiser un filtre numérique RIF par la méthode
de la fenêtre 3 en utilisant différentes fenêtres de pondération.
(b) Comparer la RI (h[n]) synthétisée à celle obtenue en utilisant la fonction wfir de
Scilab 4 .

2. Sous Matlab, l’équivalent de cette fonction est la fonction bilinear.


3. Cette méthode est appelée aussi méthode de synthèse par Devellopement en Série de Fourier et fenêtrage.
4. Sous Matlab, l’équivalent de cette fonction est la fonction fir1 .