Vous êtes sur la page 1sur 16

TRAVAUX PRATIQUES

DE TRAITEMENT
DU SIGNAL

2016/2017
LST IIEA 2016/2017

TP 1 Echantillonnage

0.0 Objectifs

L’objectif de ce TP est la synthèse de plusieurs signaux et le calcule de leur spectre. Un


intérêt particulier sera porté aux différentes fenêtres de troncature rectangulaire, hanning,
Blackman et hamming.

1 – Génération de signaux

Soient les signaux suivants :

x1 = sin(2 f1 t) , x2= sin(2 f2 t), x3= sin(2 f3 t) et x=x1+x2+x3;

 fixez les différentes fréquences f1, f2, f3 entre 10 et 500 Hz;

 calculer theoriquement les Transformées de Fourier des signaux x1, x2, x3, et x;

 proposez une fréquence d’échantillonnage respectant le théorème de Shanon pour


les signaux x1, x2, x3, et x;

 générez par Matlab les différents signaux x, x1, x2, x3, et x; et tracez-les sur une
même figure sur P échantillons équivalent au moins à 5 périodes du signal ayant
la plus grande période. Utiliser les fonctions plot et stem.

 Calculer theoriquement les Transformées de Fourier temps discrêt des signaux


x1, x2, x3, et x;

 Calculer on utilisant Matlab (fft, shiftfft), la Transformée de Fourier de chaque


signal et en tracer une représentation sur la même figure.

2– limitation des durées de signaux

Soient les fenêtres suivantes :

La fenêtre de Hanning est définie par :

Wh (t)= .5*(1-cos(2*pi*t))

Générer une fenêtre de Hanning de longueur P échantillons et de valeur max =1, et afficher
son allure temporelle.

 Limitez la durée de signaux générés plus haut 1- par la fenêtre de hanning et tracez-
les.

Traitement du Signal 2
LST IIEA 2016/2017

La fenêtre de Blackman est définie par :

Wb(t) = (.42-.5*cos(2*pi*t)+.08*cos(4*pi*t) ;

 Générer une fenêtre de Blackman de longueur P échantillons et de valeur max =1, et


afficher son allure temporelle.
 Limitez la durée de signaux générés plus haut 1- par la fenêtre de Blackman et
tracez-les.

La fenêtre de Hamming est définie par :

Whm (t)= .54 +0,46 cos(2*pi*t -)

Générer une fenêtre de Hamming de longueur P échantillons et de valeur max =1, et afficher
son allure temporelle.

 Limitez la durée de signaux générés plus haut 1- par la fenêtre de hamming et tracez-
les.

 Calculer la Transformée de Fourier de chaque signal et en tracer une


représentation sur la même figure.

 Construire un signal y qui se compose de x 1 pour ces premiers échantillons et se


termine par les échantillons de x2.

 Calculer la Transformée de Fourier du signal y et tracer sa représentation puis


comparer avec la Transformée de x.

 Calculer la transformée de Fourier discrète (TFD) de la fenêtre sur N = 1000


points fréquentiels.
 Afficher le module de la transformée de Fourier en linéaire puis en dB.
 Quelle est la largeur du lobe principal ?
 Quel est le rapport en dB entre le max du lobe principal et le max du lobe
secondaire ?

Traitement du Signal 3
LST IIEA 2016/2017

Autocorrelation et DSP d'un signal aléatoire

 Créer un bruit blanc sur 200 points (utiliser Randn) et le visualiser.

 Calculer et visualiser sa fonction d'auto-corrélation temporelle.

 En déduire sa DSP et la visualiser; Commentaires.

Traitement du Signal 4
LST IIEA 2016/2017

TP 2 La Transformée de Fourier Discrète

0.0 Objectifs

L’objectif de ce TP est l’étude des performances, par simulation numérique, de quelques


estimateurs spectraux classiques mono-dimensionnel par le calcul l’utilisation de la
Transformée de Fourier Discrète et Rapide.

La comparaison sera effectuée sur des signaux synthétiques dont on maîtrise l’amplitude,
la phase et la fréquence de résonance. On étudiera les avantages et les inconvénients
résultants l’utilisation de quelques fenêtres : Rectangulaire, Hamming et Blackman.

1 - Spectre d’un signal sinusoïdal

1. Construire et visualiser un signal sinusoïdal sur 1024 points :

s(t) = ACos(2f0t) (1)

où A = 1, f0 = 150 Hz et la fréquence d’échantillonnage Fe = 1/Te = 20000.

2. Calculer la transformée de Fourier FFT S(f) de s(t) sur 20000 points.

3. En déduire la densité spectrale de puissance |S(f)|2 et la représenter graphiquement sur


512 points en deux modes : linéaire et logarithmique.

2 - Spectre d’un bruit blanc

1. Créer et visualiser un bruit blanc b(t) de moyenne nulle et de variance 2 sur 1024
points.

2. Calculer la Transformée de Fourier FFT B(f) sur 1024 points.

3. En déduire la densité spectrale de puissance |B(f)|2 et la représenter graphiquement sur


512 points en deux modes : linéaire et logarithmique.

3 - Spectre d’un signal sinusoïdal noyé dans un bruit blanc

1. Construire et visualiser un signal y(t) qui soit la somme du deux signaux s(t) (1) et le
bruit blanc b(t) sur 1024 points.

2. Calculer la Transformée de Fourier FFT Y(f) de y(t) sur 20000 points.

3. En déduire la densité spectrale de puissance |Y(f)|2 et la représenter graphiquement sur


512 points en deux modes : linéaire et logarithmique.

Traitement du Signal 5
LST IIEA 2016/2017

Remarque
Lors de l’analyse spectrale d’un signal de longue durée, nous n’avons accès, en pratique,
qu’à une portion limitée de ce signal. Le spectre obtenu correspond donc au spectre du signal
à analyser auquel une « fenêtre » a été préalablement multipliée. La figure ci-dessous illustre
cette opération.

Figure 3.1
Exemple

Figure 3.2
Cette opération de limitation de durée du signal ne se voit pas en pratique, surtout lorsqu’on
utilise une fenêtre rectangulaire. Et c’est le cas des trois premières questions où la limitation
de la durée du signal consistait à ne considérer que les échantillons désirés.

Comme on peut le constater, la fenêtre f(t) doit être telle que le spectre Y(ν) puisse être
considéré comme une approximation acceptable de X(ν), le spectre du signal complet.
Plusieurs études ont été effectuées pour déterminer la forme optimale de la fenêtre à utiliser.

Les principales caractéristiques d’une fenêtre peuvent être mises en évidence en utilisant, par
exemple, un signal x(t) sinusoïdal de fréquence ν0. Comme on le sait, le spectre X(ν) de la

Traitement du Signal 6
LST IIEA 2016/2017

sinusoïde n’est formé que deux impulsions de Dirac situées à ±ν0; le spectre Y(ν) sera donc
(à un facteur près) F(ν+ν0) + F(ν-ν0) et nous permettra d’évaluer la qualité de la fenêtre selon
les deux critères (figure 3.3) suivants :

11 - La largeur du lobe central détermine la résolution spectrale de la fenêtre, c’est-à-dire sa


capacité de discriminer deux fréquences proches l’une de l’autre.
2
32 - L’amplitude des lobes latéraux détermine l’étalement spectral de la fenêtre. Un
étalement spectral trop grand nuira à la détection d’un signal d’amplitude faible en
présence d’un signal d’amplitude élevée.

Figure 3.3
Des exemples de fenêtres de troncation sont illustrés par la figure 3.4

Traitement du Signal 7
LST IIEA 2016/2017

Les commandes triang(n), blackman(n) et hamming(n) produisent directement les fenêtres


voulues selon n points (en vecteurs colonnes).

4- Etude de l’effet de différentes fenêtres


On propose de travailler sur l’intervalle illustré par la figure 3.5

Intervalle [ 0  ] représenté par 1024 points


Intervalle [ 0 T ] représenté par 16384 points

TRAVAIL À EFFECTUER

Au début de la séance, deux fenêtres vous serons désignées. Vous utiliserez le logiciel
MATLAB pour :

 mettre en évidence par une simulation pertinente (1) la supériorité d’une fenêtre sur l’autre
en ce qui a trait à la résolution spectrale,
(1)
deux sinusoïdes de fréquences très proches l’une de l’autre

 mettre en évidence par une simulation pertinente (2) la supériorité d’une fenêtre sur l’autre
en ce qui a trait à l’étalement spectral.
(2)
une sinusoïde d’amplitude forte + une sinusoïde de fréquence différente et
d’amplitude faible

Traitement du Signal 8
LST IIEA 2016/2017

Dans le rapport de TP, vous devrez remettre :

 des figures illustrant la supériorité d’une fenêtre sur l’autre en ce qui a trait à la
résolution spectrale,

 des figures illustrant la supériorité d’une fenêtre sur l’autre en ce qui a trait à l’étalement
spectral,
 le listage commenté des commandes MATLAB utilisées.

Traitement du Signal 9
LST IIEA 2016/2017

TP 4 Filtrage Numérique

0.0 Objectifs

L’objectif de ce TP est d’apprendre comment implémenter des filtres FIR sous Matlab et
d’étudier la réponse de ces filtres face à différentes entrées.

De plus, les expériences de ce TP, vous permettront de comprendre comment définir un


algorithme de filtrage numérique. Enfin, on va introduire des exemples concrets pour
montrer comment un filtre réagit à différentes composantes de fréquence en entrée.

1. Introduction

Nous allons définir un filtre comme un système en temps discret qui convertit un signal
d’entrée x[n] en un signal de sortie y[n] à l’aide de moyennes de la somme pondérée
M N

y[n] = b k x[n-k] -  a l y(n-l) (4.1)


k 0 l 1

L’équation (4.1) donne une règle pour calculer la n-ième valeur de la séquence de sortie à
partir de certaines valeurs de la séquence d’entrée. Les coefficients du filtre {b k) et (al) sont
des constantes qui définissent le comportement du filtre. Par exemple, considérons le
système pour lequel les valeurs de sortie sont données par :

y[n] = 13 x[n] + 13 x[n-1] + 13 x[n-2] (4.2)

= 13  x[n]  x[n -1]  x[n - 2]

Cette équation énonce que la n-ième valeur de la séquence de sortie est une moyenne de la
n-ième valeur de la séquence d’entrée x[n] et des deux valeurs précédentes, x[n -1] et

x[n –2]. Pour cet exemple, les b k sont : b0 = 1/3, b1 =1/3 et b2 =1/3.

Matlab a une fonction du nom de filter() pour exécuter l’opération dans (4.1).

nn = 0 :99; % <-- indices de temps

xx = cos (0.08* pi*nn) ; % <-- signal d’éntrée

bb = [1/3 1/3 1/3 ] ; aa=1; % <-- coefficients du filtre

yy = filter ( bb,aa, xx ) ; % <-- calcule la sortie

Traitement du Signal 10
LST IIEA 2016/2017

2. Filtres à Réponse Impulsionnelle Fini FIR

2.1 Réponse fréquentielle

La sortie ou réponse d’un filtre pour une entrée sinusoïdale complexe, e j n, dépend de la
fréquence . Souvent, un filtre se décrit simplement par la manière dont il affecte différentes
fréquences. Ceci est communément appelé la réponse fréquentielle. Par exemple, la réponse

fréquentielle d’un filtre (à 2 points) y[n] =1/2x[n]  x[n -1]  peut être trouvée en

utilisant une exponentielle générale complexe comme entrée et en observant la sortie ou


réponse.

x [n] = A e j n (4.3)

1 1
y [n] = 2 A e j n +  + 2 A e j (n -1) +
(4.4)

1
= A e j n +  2 {1 + e - j} (4.5)

Dans (4.4), il y a deux termes, l’entrée originale et un terme qui est une fonction de .

Ce second terme est la réponse fréquentielle et est communément notée H (e j ).

1
H (e j ) = 2 {1 + e - j} ( 4.6 )

Une fois que le réponse fréquentielle H ( e j ) est déterminée comme une fonction de ,
l’effet du filtre sur n’importe quelle exponentielle complexe pourrait être déterminé en

évaluant H (e j ) à la fréquence correspondante. Le résultat sera un nombre complexe dont


la phase décrit la phase de transition de la sinusoïde complexe et dont l’amplitude décrit le
gain appliqué à la sinusoïde complexe.

La réponse fréquentielle (en général) d’un système FIR linéaire et invariant en


temps est :
M
H (e j
) =  bk e - jk (4.7)
k 0

Matlab a une fonction pour calculer la réponse fréquentielle d’un système LTI et discret en
temps. Elle s’appelle freqz ( ). Les lignes de commande suivantes de Matlab montrent

Traitement du Signal 11
LST IIEA 2016/2017

comment utiliser freqz pour calculer et imprimer l’amplitude (en valeur absolue) de la
réponse fréquentielle d’un système (de 2 points) comme une fonction de  dans
l’intervalle -     :

bb = [ 1, -1] ; %<-- coefficients du filtre

ww = -pi : ( pi/100) : pi ;

h = freqz ( bb, 1, ww ) ;

plot (ww, abs (H) )

Nous utiliserons toujours le H majuscule pour la réponse fréquencielle. Pour les filtres FIR
de la forme de (4.1), le second argument de freqz doit toujours être égal à 1.

2.2 Laboratoire : filtres FIR

Dans les sections suivantes, nous allons étudier la manière dont un filtre affecte une entrée
sinusoïdale, et nous commencerons à comprendre la performance du filtre en tant que
fonction de la fréquence d’entrée. Nous verrons que :

1. Les filtres de la forme de l’équation 4.1 peuvent modifier l’amplitude et la


phase d’une courbe en cosinus, mais ils ne modifient pas les fréquences.

2. Pour une somme de courbes en cosinus, le système modifie chaque composante


indépendamment.

3. Les filtres peuvent enlever complètement une ou plusieurs composantes de la


somme de courbes en cosinus.

2.2.1 Filtrage de courbes en cosinus


Nous nous intéresserons au filtrage de sinusoïdes en temps discret de la forme :

x[n] = A cos (n +  ) où n = 0,1, 2, … , L –1 (4.8)

La fréquence en temps discret pour des courbes en cosinus en temps discret, , satisfait
toujours 0    .

Si la sinusoïde en temps discret est générée en échantillonnant une courbe en cosinus

continue en temps, la fréquence en temps discret est  = Ts = 2. f / fs,

Traitement du Signal 12
LST IIEA 2016/2017

2.2.2. Filtre du premier ordre


Générer 50 échantillons d’une courbe en cosinus (en temps discret) avec A = 7,  =  /3, et
 = 0.125. Stocker ce signal dans le vecteur xx, comme cela il pourra aussi être utilisé
dans les parties suivantes. Maintenant utilisez firfilt ( ) pour implémenter le filtre suivant
avec le signal xx comme entrée :

y[n] = 5 x[n] – 5 x [n-1] (4.9)

Ceci est communément appelé fisrt-difference filter, mais avec un gain de 5. Sous Matlab
vous devez définir le vecteur bb nécessaire dans firfilt.

1. Noter que y[n] et x[n] ne sont pas de la même longueur. Quel est longueur du
signal filtré, et pourquoi est-il de cette longueur? (Si vous avez besoin d’une indication,
referez vous à la section (4.1)

2. Tracez les 50 premiers échantillons des deux courbes x[n] et y[n] sur la même
figure en utilisant subplot. Utilisez la fonction stem pour un tracé du signal (en temps
discret), mais étiquetez l’axe des x pour rester dans l’intervalle 0 < n < 49.

3. Vérifiez l’amplitude et la phase de x[n] directement à partir de son tracé dans le


domaine temporel.

4. A partir du tracé, observez que, à l’exception du premier échantillon y[0], la


séquence y[n] semble être une courbe en cosinus graduée et shifted de la même fréquence
que l’entrée. Expliquez pourquoi le premier échantillon est différent des autres.

5. Déterminez la fréquence, l’amplitude et la phase de y[n] directement à partir du


tracé. Ignorez le premier point de sortie, y[0].

6. Caractérisez la performance du filtre à l’entrée fréquentielle en calculant


l’amplitude et la phase relative, i.e., le ratio de l’amplitude de sortie par rapport à l’amplitude
d’entrée et la différence des phases d’entrée et de sortie.

7. Dérivez l’expression mathématique pour la sortie lorsque le signal d’entrée est

une exponentielle complexe x[n] = e jn. A partir de cette formule, déterminez comment
l’amplitude et la phase devraient changer pour x[n], qui a une fréquence de  = 0.125.

Traitement du Signal 13
LST IIEA 2016/2017

2.2.3 Linéarité du filtre


1. Maintenant multipliez le vecteur xx de la section 2.2.2 par 2 pour obtenir xa, xa
=2* xx. Générez le signal ya en filtrant xa avec le filtre du premier ordre donné
par l’équation 4.3.b. Répétez les mesures relatives d’amplitude et de phase
décrites dans la section 2.2.2.

2. Générez un nouveau vecteur d’entrée xb correspondant au signal temps discret


xb[n] = 8 cos (0.25n) et ensuite filtrez le avec l’opérateur du premier ordre pour
obtenir yb[n]. Maintenant, répétez les mesures relatives d’amplitude et de phase
comme précédemment. Dans ce cas la mesure de la phase pourrait être
légèrement biaisée car il y a seulement peu d’échantillons par période. Décrire la
manière dont l’amplitude, la phase et la fréquence de la sortie yb changent
comparées à l’entrée.

3. Créez un autre signal d’entrée xc qui est la somme de xa et xb. Faites passer xc à travers
le filtre pour obtenir yc. Faire le tracé de yc. Comparez yc au tracé de ya + yb. Sont-ils
égaux? Expliquez toute différence que vous observerez.

2.2.4 L’invariance en temps du filtre


Décaler en temps le vecteur d’entrée xx par 3 unités temps pour obtenir la séquence :

xs[n] = 7 cos (0.125 (n – 3) +  /3 ) pour n = 0, 1, 2, 3,…

puis le filtrer xs[n] en utilisant l’opérateur du premier ordre pour obtenir ys[n]. Comparez ys
à yy, la sortie quand l’entrée est xx. Trouvez un décalage de yy (en nombre d’échantillons)
afin qu’il s’aligne parfaitement à ys.

Traitement du Signal 14
LST IIEA 2016/2017

TP 5 Synthèse d'un Filtre Numérique RIF

0.0 Objectifs

L'objet de ce TP est la synthèse d'un filtre R.I.F à phase linéaire par le calcul des
coefficients du filtre satisfaisant les conditions imposées par un gabarit. Ces coefficients
seront obtenus par la technique du développement en séries de Fourrier.

Dans la dernière partie de ce TP on étudiera les avantages et les inconvénients


résultants de quelques fenêtres Rectangulaire, Hanning, Blackman...

1 – Théorie

On désire synthétiser un filtre numérique hn à réponse impulsionnelle finie. Pour cela, on


spécifie H(f), réponse fréquentielle du filtre. hn étant un filtre numérique, H(f)
nécessairement périodique et de période 1. Ce problème admet donc toujours une réponse
qui est prendre pour réponse impulsionnelle h(n) la transformée de Fourier inverse de H(f),
soit :
1/ 2

 H ( f )e
2 jfn
hn 
1 / 2

La difficulté provient de ce que, en général, la réponse impulsionnelle ainsi obtenue


comprend une infinité d'échantillons non nuls et n'est donc pas finie. On reformule alors le
problème en cherchant le filtre de réponse impulsionnelle finie h(n) dont le support est défini
par n  1,2 …N-1 et dont la réponse fréquentielle est proche de H(f) en un sens à définir.

2- Méthode

Soit Hd(f) la transformée de Fourier du filtre à réponse impulsionnelle finie h(n);


n  1,2 …N-1. Hd(f) est périodique et de période 1 et il a été montré en cours que la
transformée de Fourier discrète X(k) de la séquence h(n) chantillonne Hd(f) aux fréquences fk
= k=N, soit X(k) = Hd(k=N) : (2)

L'idée consiste donc à définir h(n) comme la transformée de Fourier inverse discrète de
H(k=N); k 1,2 …N-1. De cette manière, Hd(k) et H(f) coïncideront aux fréquences
f = k=N, mais seront en général différentes aux autres fréquences (voir illustration ci-
dessous). La procédure comprend donc les étapes suivantes :

1. choix de la longueur N du support de la réponse impulsionnelle ;

2. détermination des coefficients X(k) = H(k=N); k 1,2 …N-1 ;

Traitement du Signal 15
LST IIEA 2016/2017

3. calcul de h(n); n  1,2 …N-1 par transformée de Fourier inverse discrète :


n 1
1
hn 
N
 X ( k )e
k 0
2 jkn / N

3 - Travail à effectuer

On désire effectuer la synthèse d'un filtre passe-bas à la phase linéaire dont le gabarit
est donnée par:

1-1 < H(f)< 1+1 pour f<fp

H(f)< 2 pour fs<f<1/2

Où f=F/Fe est la fréquence normalisée par rapport à la fréquence d'échantillonnage.

a) Gabarit en dB b) Gabarit en linéaire

Figure 5-1 Gabarit du filtre passes bas désiré

1. Calculer la forme littérale des coefficients hn de la réponse impulsionnelle.

2. N= 200 Fc = 0.15

Calculer et visualiser les N échantillons de cette réponse impulsionnelle. Modifier N


et commenter.

3. N=100; Fc = 0.25

Calculer et visualiser la réponse impulsionnelle ainsi que sa réponse en fréquence.


Quelle valeur prend le gain à cette fréquence Fc.

4. Refaire 1 2 et 3 en utilisant les différentes fenêtres Hanning, Blackman pour limiter la


durée des échantillons du filtre. Citer les avantages et les inconvénients, résultants de
l'utilisation de la fenêtre rectangulaire. Se référer aux résultats trouvés au TP 3.

Traitement du Signal 16