Vous êtes sur la page 1sur 9

TP du Traitement du signal numérique :

Analyse et synthèse de filtres Numériques (RIF et RII)


Pr. A. ENNAJIH Filière : Génie Electrique AU : 2020-2021

A. Conception des filtres Numériques


I. BUT
Le but de cette manipulation est l’étude des outils des filtres numériques. Il s’agit de mettre
en évidence au niveau temporel et fréquentiel, les caractéristiques d’un filtre, d’étudier son régime
transitoire et permanent et de réaliser l’opération de filtrage de deux signaux de fréquences
différentes.

II. FILTRAGE NUMERIQUE


1. Introduction
Les Filtres numériques sont exprimés par des polynômes en « 1/z » soit H(z)=B(z)/A(z) ou
bien H(z)=N(z)/D(z). Les filtres seront donc par la suite identifiés par les deux vecteurs B et A,
et éventuellement un gain statique K si B et A sont sous forme canonique ; Par exemple, le filtre
H(z) suivant :
∑𝐌−𝟏
𝐤=𝟎 𝐛𝐤 𝐳
−𝐤
𝟎. 𝟐𝟗𝟐𝟗 + 𝟎. 𝟓𝟖𝟓𝟖𝐳 −𝟏 + 𝟎. 𝟐𝟗𝟐𝟗𝐳 −𝟐
𝐇(𝐳) = =
𝟏 + ∑𝐍−𝟏
𝐤=𝟏 𝐚𝐤 𝐳
−𝐤 𝟏 + 𝟎. 𝟏𝟕𝟏𝟔𝐳 −𝟐

est représenté sous MATLAB par les deux vecteurs :


B= [0.2929 0.5858 0.2929] et A= [1 0 0.171]

2. Travail à faire

Nous allons déterminer la réponse en fréquence d’un filtre numérique. Prenons le filtre causal
suivant : Y(k)=0.0422 x(k) +0.0843 x(k-1) + 1.3993 y(k-1) - 0.5779 y(k-2)
1. Quelle est le type de ce filtre numérique RII ou RIF ? justifier.
2. Déterminer la réponse en fréquence du filtre en fonction de la fréquence en Hz.
Utiliser la commande [H,f]=freqz(b,a,N,Fe), avec : N=512 Nombre de points
d’évaluation, Fe=8000Hz.

Pr. A. ENNAJIH Page 1 sur 9


Ce filtre sera excité par un signal d’entrée x(k)=cos(2*pi*f0*k*Te) avec f0=500Hz.
Fe=8000Hz.

3. Peut-on prévoir le signal de sortie en s’appuyant juste sur la courbe de réponse en fréquence
H(f) du filtre ?
▪ Définir le vecteur k allant de 0 jusqu’à 199 avec un pas unité.
▪ Définir le signal x(k) et déterminer le signal de sortie y(k) à travers ce filtre (Attention à la
𝒇𝟎
fréquence normalisée 𝒇𝒏𝟎 = , y=filter(b,a,x).
𝑭𝒆

▪ Tracer sur un graphe en utilisant la commande plot plutôt que stem les deux signaux x(k) et
y(k).
▪ Interpréter le résultat.

Nous allons modifier maintenant la fréquence du signal d’entrée x1(k) à 2500Hz plutôt que
500Hz

4. Avant d’effectuer le filtrage de ce signal, peut-on prévoir le signal de sortie ?


Définir le nouveau signal d’entrée x1(k) et déterminer le signal de sortie y1(k) à travers ce
filtre.
5. Tracer sur un graphe en utilisant la commande plot plutôt que stem les deux signaux x1(k)
et y1(k). Interpréter les résultats obtenus.
6. Que pouvez-vous en conclure à propos du filtrage de ce 2ème signal d’entrée.
▪ Utiliser la commande [h,t]=impz(b,a) ; pour calculer la réponse impulsionnelle.
7. Donner une interprétation sur le comportement de y1(k) en le comparant à la réponse
impulsionnelle sur la même zone temporelle.
III. FILTRAGE DU BRUIT BLANC
1. Introduction
Le but de ce travail est d’effectuer le filtrage du bruit blanc d’un signal en s’appuyant sur les
caractéristiques spectrales du bruit.
2. Travail à faire
On prend un signal sinusoïdal x(t) de fréquence 150 Hz et d’amplitude 5.
La fréquence d’échantillonnage fe= 8000 Hz, et la durée tmax= 0.1 s.
▪ Définir les paramètres ci-dessus et l’axe du temps et de fréquence sous MATLAB.
▪ Ajouter un bruit blanc en utilisant la commande randn(size(x)).

Pr. A. ENNAJIH Page 2 sur 9


▪ Essayer de filtrer le signal par le filtre de Butterworth en utilisant la commande
[b,a]=butter(N,Wn,’ftype’) avec :
N : l’ordre du filtre (choisi 2).
Ftype : type du filtre (low, high, stop, bandpass)).
Wn=2fc/fe : la fréquence de coupure normalisée Wn.
▪ Interpréter le résultat.

B. Synthèse des filtres RIF par la méthode de la fenêtre

I. INTRODUCTION
La synthèse d’un filtre numérique RIF est basée sur un ensemble de techniques permettant à partir
des caractéristiques spectrales désirées ou souhaitées (en particulier le module de sa réponse
fréquentielle appelée gabarit du filtre, de sa réponse en phase et éventuellement de son temps de
groupe) de déterminer les coefficients de sa réponse impulsionnelle h(n) garantissant une réponse
fréquentielle obtenue la plus proche possible de la réponse fréquentielle désirée.
Parmi les techniques de synthèse d’un filtre RIF nous citons la méthode des fenêtres.

II. LA METHODE DE LA FENETRE


1. Introduction
Supposons que la réponse fréquentielle désirée est celle d’un passe-bas idéal. A l’aide de la TFD
(Transformée de Fourier Discrète) inverse nous obtenons la réponse impulsionnelle idéale. Il s’agit

Pr. A. ENNAJIH Page 3 sur 9


dans ce cas d’un sinus cardinal échantillonné.
Il y’a dans ce cas deux inconvénients :
▪ La durée, ou nombre d’échantillons, du sinus cardinal discret est infini donc contradiction
avec un RIF
▪ Le sinus cardinal discret est non causal ce qui est contradictoire avec le principe d’un filtre
réalisable.
Pour limiter le nombre de coefficients de ce filtre, on multiplie cette réponse impulsionnelle par
une fenêtre temporelle (opération de troncature) d’une durée finie égale à N échantillons et on
effectue ensuite un décalage de (N-1) /2 échantillons pour rendre le résultat causal.

Exemple dans le cas de N=11

Si la fenêtre utilisée est de type rectangulaire composée de 11 échantillons le résultat est donné ci-
dessous
h = [ -0.0637 0.0468 0.0328 -0.1514 0.2575 0.7000 0.2575 -0.1514 0.0328
0.0468 -0.0637]
Les figures ci-dessous représentent respectivement la réponse impulsionnelle discrète de 11
échantillons et le gabarit (module de la réponse fréquentielle) en dB.

On constate de faibles ondulations en bande passante qui pourraient être améliorés afin d'obtenir
une réponse plus plane. Dans la zone de transition, la réponse plonge convenablement, mais ensuite

Pr. A. ENNAJIH Page 4 sur 9


des ondulations importantes apparaissent dans la bande coupée, dépassant même le gabarit. Ces
ondulations sont dues à l'utilisation de la fenêtre rectangulaire qui a pour effet d'accentuer ces lobes
secondaires.
Pour réduire ces oscillations nous pouvons augmenter la taille de la fenêtre (augmenter N) mais
surtout utilisez d’autres fenêtres aux angles moins abruptes que celle de la fenêtre rectangulaire.
2. Fenêtrage de Hamming
L’une des fenêtres les plus utilisées est la fenêtre de Hamming. Il s’agit de pondérer les coefficients
de la réponse impulsionnelle obtenue avec les coefficients de cette fenêtre. On constate que les
coefficients de Hamming tendent de manière continue vers zéro en bord de fenêtre. Ceci a pour
effet de quasiment annuler les coefficients de la réponse impulsionnelle du filtre les plus excentrés.
Au final dans le domaine fréquentiel, l'opération a fait totalement disparaître les ondulations en
bande passante et en bande coupée mais ce au détriment de la raideur de la réponse en bande de
transition et en bande coupée. En effet, la réponse ne respecte plus du tout le gabarit de départ. Il
y a donc un compromis à trouver au niveau de la fenêtre pour obtenir des ondulations pas trop
importantes sans perdre en raideur dans les bandes d'atténuation et les bandes coupées et ce bien
sûr en respectant le gabarit du filtre.

Il existe d’autres types de fenêtre intéressantes comme par exemple


▪ Fenêtre de Hanning
▪ Fenêtre de Blackman
▪ …etc

Pr. A. ENNAJIH Page 5 sur 9


3. Synthèse d'un RIF par MATLAB
A l'aide de la fonction fir1, MATLAB propose la synthèse d'un filtre RIF d'ordre paramétrable que
nous allons déterminer en première partie.

3.1 Calcul de l'ordre minimal du filtre passe bas


Calculer l’ordre du filtre RIF, ou bien le nombre d’échantillons N, nécessaire pour satisfaire le
gabarit (caractéristiques spectrales désirées) n’est pas facile.
Il est sûr que plus l’ordre N’augmente, plus le filtre satisfait mieux le gabarit. Plusieurs formules
ont été proposées dans la littérature. Possédant les caractéristiques du gabarit à respecter, il est
possible de calculer quel devra être l’ordre N (très approximatif et en général sous-estimé) :
𝟐 𝟏 𝐅𝐞
̂=
𝐍 𝐥𝐨𝐠 ( )
𝟑 𝟏𝟎 𝛅𝟏 𝛅𝟐 ∆𝐟
où Fe est la fréquence d’échantillonnage, f la largeur de la bande de transition, 1 l’amplitude des
ondulations en bande passante et 2 l’amplitude des oscillations en bande atténuée.
Sous Matlab, en utilisant cette formule et à l'aide de la fonction « ceil » qui effectue un arrondi à
l'entier supérieur, on obtient directement l'ordre N minimal du filtre passe bas.

N=ceil (2/3*log10 (1/(10*delta1*delta2))*fe/(f2-f1))

On obtiendra alors une approximation de N en fonction des paramètres souhaités.

3.2 Réalisation par MATLAB du filtre


La fonction fir1 en Matlab synthétise un filtre RIF simple (défini par une seule bande passante ou
coupée) par troncature et fenêtrage de la réponse impulsionnelle du filtre numérique idéal :
h = fir1(n,fn,type,window) ;
▪ n est l’ordre du filtre (longueur de la RI moins un).
▪ Les fréquences fn sont normalisées par rapport à la fréquence de Nyquist (fn=fc/(fe/2),0≤fn≤1).
fc indique la fréquence de coupure pour les passe-bas et passe-haut, et les fréquences de
coupures basse et haute pour les passe-bande et coupe-bande.
▪ La chaîne de caractère type précise le type de filtre. ’high’ pour passe-haut, ’stop’ pour coupe-
bande, type omis pour les passe-bas et passe-bande.
▪ Le vecteur window de longueur n+1, correspond à la fenêtre prise en compte (par défaut
fenêtre de Hamming).
Les fonctions Matlab, disponibles pour créer des fenêtres sont :

Pr. A. ENNAJIH Page 6 sur 9


bartlett, blackman, boxcar (rectangulaire), chebwin (chebychev), Hamming, hanning,
kaiser, triang (triangulaire).
Fenêtre Observation de la réponse en fréquence

Rectangulaire Elle fait apparaître le plus d'ondulation, mais donne une bonne raideur de coupure
malgré les quelques dépassements en bande coupée

Hamming Elle fait apparaître le moins d'ondulation, mais sa raideur de coupure est très
mauvaise puisque la réponse en fréquence n'atteint pas l'atténuation minimum
requise en bande coupée

Blackman Elle fait apparaître une légère diminution continue du gain en fonction de la
fréquence en bande passante, ce qui peut être gênant. D'autre part, la raideur de
coupure obtenue est déplorable puisque c'est avec cette fenêtre qu'on obtient
l'atténuation minimum en bande coupée.

Hanning Elle a les mêmes qualités et défaut que la fenêtre de Hamming mais fait apparaître
des ondulations en bande coupée plus rapidement que cette dernière
On voit donc que le choix de la fenêtre a une grande influence sur la réponse en fréquence du
filtre. L'atténuation en bande coupée que l'on souhaite obtenir nous permet de choisir la fenêtre
adéquate.

4. Travail à faire
On souhaite faire la synthèse de filtres RIF par les quatre fenêtres citées dans le tableau ci-dessus
et en utilisant les paramètres suivants (tableau ci-dessous) :
N° Type Fe (Hz) F0 (Hz) F1 (Hz) F2 (Hz) F3 (Hz) dp (dB) da (dB)
1 Passe-bas 8000 - 1000 1500 - 3 30
2 Passe-haut 8000 - 2500 3000 - 3 30
3 Coupe-bande 8000 1000 1500 2500 3000 3 30
4 Passe-bande 8000 1000 1500 2500 3000 3 30
Notons que dp et da sont respectivement les ondulations en bande passante et bande atténuée
exprimée en dB :
𝟏+𝛅𝟏 𝟏
𝐝𝐩 = 𝟐𝟎𝐥𝐨𝐠 ( ) & 𝐝𝐚 = 𝟐𝟎𝐥𝐨𝐠 ( )
𝟏−𝛅𝟐 𝛅𝟐

F0, F1, F2 et F3 sont les fréquences limites des bandes de transitions selon le type du filtre (figure

Pr. A. ENNAJIH Page 7 sur 9


ci-dessous)

1. Déterminer le nombre d’échantillons N

2. Synthétiser chacun des filtres proposés dans le tableau ci-dessous en utilisant respectivement
les quatre fenêtres.

3. Représenter pour chaque type de filtre sur la même figure les quatre réponses fréquentielles
obtenues par les quatre fenêtres utilisées. Conclusions

4. Dans chaque cas déterminer les zéros du filtre à l’aide de la fonction roots.

III. FILTRAGE DU BRUIT BLANC


1. Introduction
Le but de ce travail est d’effectuer le filtrage du bruit blanc d’un signal à l’aide d’un filtre
passe-bas conçu par la méthode de fenêtrage en s’appuyant sur les caractéristiques spectrales du
bruit.
2. Travail à faire
Créer un signal constitué de deux sinusoïdes respectivement d’amplitudes 3 et 5, de
fréquences 500Hz et 800Hz. Le nombre d’échantillon du signal est de 300 échantillons. Ajouter
du bruit avec l’instruction rand. Appliquez sur ce signal les filtres passe-bas obtenus
respectivement avec les quatre fenêtres, en utilisant l’instruction conv, et discuter les résultats
obtenus

IV. FILTRAGE D’UN SIGNAL AUDIO


1. Introduction
On souhaite reprendre les tests précédents sur un cas concret. On considère un signal sonore
stocké dans un fichier son de type WAV. Dans les fichiers utilisés pour cette séance de TP, ce son

Pr. A. ENNAJIH Page 8 sur 9


a été échantillonné à une fréquence 44,1kHz (fréquence pour une qualité haute-fidélité, utilisée
pour les CD). Dans une application de téléphonie, on se limite à une bande passante de 8kHz.
2. Travail à faire
On considère les filtres décris par les relations suivantes :
𝒛−𝟏
𝑯(𝒛) =
𝟏 − 𝟎. 𝟓𝒛−𝟏
𝒚(𝒏) = 𝟏. 𝟐 𝒚(𝒏 − 𝟏) − 𝟎. 𝟓𝟏𝟔 𝒚(𝒏 − 𝟐) + 𝟎. 𝟎𝟕𝟗 𝒙(𝒏) + 𝟐 ∗ 𝟎. 𝟎𝟕𝟗 𝒙(𝒏 − 𝟏) + 𝟎. 𝟎𝟕𝟗 𝒙(𝒏 − 𝟐)
Pour lire et afficher un signal audio, rajouter les lignes suivantes.
% ****** Lire, écouter et afficher un signal audio ******
nom_fich = uigetfile('*.wav', 'Selectionner le fichier son');
[x,fe]=audioread(nom_fich);
sound(x,fe)
t=(0:length(x)-1)/fe;
figure;plot(t,x);
legend('Son original');xlabel('Temps (s)');ylabel('Amplitude');

1. Charger un signal audio et bruité le (avec l’instruction rand) avec différentes amplitudes du
bruit (on doit obtenir au moins trois signaux bruités. C'est-à-dire un premier signal peu bruité,
un second moyennement bruité et un troisième fortement bruité). Ecoutez les et comparer les
sons par rapport à l’original (sans bruit).
2. Tracer les trois signaux bruités obtenus. Que pouvez-vous conclure en les comparants au
signal original ?
3. Filtrer ces trois signaux à l’aide du premier filtre, écouter les, affichez leurs spectres. Que
pouvez-vous conclure en les comparants au signal original ?
4. Refaire le même travail avec le deuxième filtre. Comparer les résultats obtenus.
5. Que peut-on conclure ?

Pr. A. ENNAJIH Page 9 sur 9

Vous aimerez peut-être aussi