Vous êtes sur la page 1sur 9

SICOM 2- FILTRAGE ET FILTRES NUMÉRIQUES . F.

ABDI DGE, FST FES

FILTRAGE DES SIGNAUX


FILTRES NUMÉRIQUES

But de la manipulation:
Notions de filtrages, présentation des filtres théoriques, la conception de filtres. Les filtres
analogiques et numériques.

Outils utilisés:
MATLAB, MATLAB « FDATool, » "Signal Processing Tool" et en particulier ses interfaces
graphiques : "Signal Browser", "Filter Designer, "Filter Viewer "Spectrum Viewer" et "Sptool".

Rappels théoriques :
Les filtres ont pour rôle de modifier les données vues par leurs entrés pour répondre à des
spécifications fréquentielles.

La spécification d'un filtre peut aller de la simple élimination d'une ou des composantes
spectrales, à la spécification avec contraintes sur les amplitudes des ondulations sur les bandes
passantes ou coupantes, sur la transition entre ces régions ...etc. Cette spécification peut être
encore plus précise si on y trouve d'autres contraintes supplémentaires telles la nature du filtre ou
un ordre minimal.

Les filtres à RII comportent moins de paramètres que les filtres à RIF mais présentent en
générale une phase non linéaire.

Filtres IIR classiques :


Les quatre catégories des filtres idéaux sont les filtres passe-bas, passe-haut, passe-bande et
coupe- bande. Il est toutefois suffisant de disposer des réponses fréquentielles des filtres passe bas
car, à partir de ces prototypes normalisés (pulsation de coupure égale à 1), on aboutit par simple
changement de variable, aux catégories passe-haut, passe-bande ou coupe-bande.

Dans la suite, on se restreindra aux filtres passe bas. Les caractéristiques élémentaires des
filtres proposés par MATLAB sont:

Ø Filtre de Butterworth: Meilleure approximation par les séries de Taylor de la réponse


idéale d'un filtre passe bas entre 0 et l'infini. Il est connu par une amplitude constante

1
SICOM 2- FILTRAGE ET FILTRES NUMÉRIQUES . F.ABDI DGE, FST FES

dans la bande passante. Amplitude d'ondulation presque nulle dans la bande passante et
décroissante par ailleurs. Seuls les paramètres ordre du filtre et fréquence de coupure
sont à préciser.

Ø Filtre de Chebyshev de type I: Minimise la différence en valeur absolue des réponses


idéale et réelle sur la totalité de la bande passante. Il introduit des ondulations de même
amplitudes Rp dans la bande passante.

Ø Filtre de Chebyshev de type II: Minimise la différence en valeur absolue des réponses
idéale et réelle sur la totalité de la bande coupée. Il introduit des ondulations de même
amplitudes Rs dans la bande coupée. On parle de filtre de Chebyshev inverse.

Ø Filtre elliptique(Cauer): Minimise l'ordre du filtre et offre donc le filtre d'ordre le plus
bas par rapport aux autres implémentations possibles des filtres classiques. La réponse
fréquentielle a des ondulations à la fois dans la bande passante et dans la bande coupée.

Ø Filtre de Bessel: Optimise le retard de phase qui est presque constant à la fréquence
origine et reste presque constante sur la totalité de la bande passante.

Conception des filtres à R.I.I.:


Les filtres à RII digitaux proposés par MATLAB "butter", "cheby2", "ellip" et "besself"
sont relatifs aux filtres théoriques de Butterworth, de Chebyshev du type I et II, elliptiques et de
Bessel respectivement. Ils ont été conçus sur la base de la version analogique des filtres passe-bas
correspondant, normalisés à une fréquence de coupure 1Hz, qui ont été transformés en des filtres
d'autres types (passe-haut , passe-bande,..) puis discrétisés.

Les arguments possibles à ces fonctions sont l'ordre du filtre, l'amplitude des ondulations
dans une bande donnée, la fréquence de coupure et une liste d'options ('high' ou 'stop').

Forme générique Exemple

[b,a]=butter(n,Wn,options) [b,a]=butter(5,0.4);

[b,a]=ellip(n,Rp,Rs,Wn,option). [b,a]=ellip(3,1,60,[0.4 0.7],'stop');

[b,a]=cheby1(n,Rp,Wn,option). [b,a]=cheby1(4,1,[0.4 0.7]);

[b,a]=cheby2(n,Rs,Wn,option). [b,a]=cheby2(6,60,0.8,'high');

2
SICOM 2- FILTRAGE ET FILTRES NUMÉRIQUES . F.ABDI DGE, FST FES

L'élaboration d'une version analogique de l'un de ces filtres est possible en ajoutant
l'argument 's' pour signaler le plan analogique s.

Exemple:

[b,a]=butter(n,Wn,options,'s')

La seconde classe des FRII utilise des spécifications directes:

Filtres dit RIF

Exemple: le filtre elliptique.


Le filtre elliptique est pré - programmé dans MATLAB par la fonction ellip qui a 4
arguments:

§ l'ordre N du filtre, l'amplitude des ondulations dans la bande passante Rp, l'amplitude
des ondulations dans la bande coupée Rs et la fréquence de coupure (fréquence
normalisée).

La syntaxe de cette fonction est similaire à celle de tous les autres filtres proposés par le
logiciel et va constituer de ce fait un exemple qu'on détaillera ici bien volontiers:

[b,a]=ellip(n,Rp,Rs,Wn,'type')

où n est l'ordre du filtre, Rp et Rs représentent l'amplitude des ondulations en dB dans la


bande passante et dans la bande coupées respectivement.

Wn est la fréquence de coupure du filtre considéré par défaut comme un passe – bas
(l'argument type est alors facultatif). Si Wn=[W1 W2] est un vecteur à 2 éléments, le filtre est
considéré comme un passe bande entre W1 et W2.

L'argument type peut prendre soit la mention 'high' pour un filtre passe haut ou alors 'stop'
pour un filtre coupe-bande entre deux pulsations [W1 W2].

Cette commande donne dans tous les cas deux vecteurs de coefficients constituant le
numérateur et le dénominateur du filtre.

Dans le domaine discret, les vecteurs coefficients du filtre sont donnés dans l'ordre
décroissant des puissances de Z selon l'écriture.

3
SICOM 2- FILTRAGE ET FILTRES NUMÉRIQUES . F.ABDI DGE, FST FES

B(z) b(1) + b(2)z −2 +!+ b(n +1)z −n


H (z) = =
A(z) 1+ a(2)z −1 +!a(n +1)z −n

Dans le domaine analogique, la syntaxe est modifiée selon


[b,a]=ellip(n,Rp,Rs,Wn,'type','s') et les vecteurs coefficients sont donnés dans l'ordre décroissant
des puissance de s.

B(s) b(1)s n + b(2)s n−1 +!+ b(n +1)


H (s) = =
A(s) s n + a(2)s n−1 +!a(n +1)

La technique de conception des filtres discrets en se basant sur des versions analogiques est
dite méthode de conception indirecte car elle élabore une expression temporelle à partir de
spécification fréquentielles. Par opposition, lorsque le filtre est spécifié dans le domaine temporel,
on parle de conception directe.

Cette deuxième manière de conception offre de plus grandes variétés et la littérature est
riche en documents et en méthodes: Méthodes de Yule-Walker, de Prony, de Prédiction
linéaire,etc. Par ailleurs, elle ne se restreint pas à des modèles passe-bas prototype comme c'est le
cas des méthodes indirectes.

La méthode directe produit des filtres de réponses fréquentielle quelconque et se classe


parmi les techniques dites de modélisation paramétriques.

Cette classe sort du cadre de ce T.P..

Conception des filtres à R.I.F.:


Les filtres à Réponse Impulsionnelle Finie (RIF) présentent les avantages d'être le plus
souvent à phase linéaire, stables et d'implémentation facile par rapport aux filtres à RII. Leurs
inconvénients majeurs sont un ordre plus élevé et un retard plus grand.

L'idée de base pour l'obtention d'un filtre à RIF est la troncature d'une RII. Pour ceci, on
utilise des fenêtres d'observation de durée finie. Différentes fenêtres peuvent être utilisées: Fenêtre
rectangulaire, de Hamming, de Hanning, de Blackman...etc. Chacune présente des caractéristiques
différentes.

Exemple:

Soit le filtre à 51 éléments donné par

b=0.4*sinc(0.4*(-25:25))

4
SICOM 2- FILTRAGE ET FILTRES NUMÉRIQUES . F.ABDI DGE, FST FES

C'est un passe bas de fréquence de coupure de 0.4π rad/sec.

L'observation sur une fenêtre de Hamming permettra d'améliorer le spectre et s'écrira:

b=b.*hamming(5).1

Travail à effectuer:
PREPARATION

1) La forme générale d’un filtre numérique est donnée par une fonction de
transfert H(z) à P pôles et Q zéros :

B(z) b(0) + b(1)z −1 + b(2)z −2 +!+ b(Q)z −Q


H (z) = =
A(z) 1+ a(1)z −1 +!a(P)z − P

a. Si P=0, (le filtre n’a que des zéros), quel est le type du filtre ? Que représentent les
coefficients b(k) ?

b. Comment qualifier le filtre :

• Si les pôles sont à l’intérieur du cercle unité dans le plan des z ?


• Si les pôles et les zéros sont à l’intérieur du cercle unité, ?

2) Soit le filtre analogique défini par la fonction de transfert H(p) suivante :

0.5
𝐻 𝑝 =
𝑝 + 0.5

a) En utilisant la transformation bilinéaire, donner la fonction de transfert du filtre


numérique correspondant.

b) Est que le filtre numérique obtenu est stable ? Justifier votre réponse.

c) Donner l’équation aux différences du filtre numérique obtenu.

d) Que représente l’équation aux différences d’un filtre ?

5
SICOM 2- FILTRAGE ET FILTRES NUMÉRIQUES . F.ABDI DGE, FST FES

MANIPULATION

Manip 1 :

• Le signal de sortie y(n) d’un filtre à moyenne mobile d’ordre M est donné par
l’équation :
!!!
1
𝑦 𝑛 = 𝑥 𝑛−𝑘
𝑀
!!!

Un tel filtre laisse passer les signaux de basses fréquences et supprime les signaux de
hautes fréquences.

1. Ecrire une fonction Matlab qui effectue un filtrage du type moyenne mobile sur M
échantillons

2. Générer N échantillons d’un signal x(n) (Sinusoïde+ bruit).

3. Filtrer le signal x(n) par un filtre à moyenne mobile pour M = 3 et N=200.

4. Tracer le signal de sortie. Comment le signal de sortie peut-il être décrit en ignorant
les effets de transition sur le début et la fin du signal?

5. Décrire les effets qui se produisent si vous changez la longueur du filtre entre M=1
et M=15 dans l’étape 3

1 - Filtres RII classiques: On utilisera l'environnement MATLAB.

Par des lignes de commande MATLAB, et en utilisant les différents filtres préprogrammés
dans cet environnement en souhaite concevoir des filtres à RII classiques.

On fixe la fréquence d'échantillonnage à 1000Hz et la fréquence de coupure désirée est de


300Hz.

Concevoir et visualiser un filtre de butterworth d'ordre 9 analogique puis discret. Observer


et comparer.

Concevoir et visualiser un filtre de chebyshev de type I, d'ordre 9, analogique puis discret


ayant des ondulations dans la bande passante de rp=0.5. Observer et comparer.

Concevoir et visualiser un filtre de chebyshev de type II, d'ordre 9, analogique puis discret
ayant les ondulations dans la bande coupée Rs=20. Observer et comparer.

6
SICOM 2- FILTRAGE ET FILTRES NUMÉRIQUES . F.ABDI DGE, FST FES

Concevoir et visualiser un filtre elliptique, d'ordre 9, analogique puis discret ayant les
caractéristiques Rs= 3, Rp=500. Observer et comparer.

On utilisera les commandes freqs(b,a) et freqz(b,a) qui traceront automatiquement la réponse


fréquentielle du filtre B/A.

Manip2 :

Se familiariser avec l’outil fdatool de MATLAB© en utilisant le help.

Concevoir un filtre passe bas RII de type elliptique avec le gabarit suivant :

• Fréquence d’échantillonnage : Fs = 48000 Hz.


• Fréquence de la bande passante : Fpass = 9600 Hz.
• Fréquence de la coupe bande : Fstop = 12000 Hz
• Ondulations dans la bande passante: Apass = 1 dB.
• Atténuation dans la coupe bande : Astop = 80 dB.
3. Etudier la stabilité du filtre obtenu en utilisant les options de fdatool.

4. Quel est l’ordre du filtre obtenu ?

5. Visualiser les coefficients de l’équation aux différences du filtre obtenu.

6. Enregistrer les coefficients obtenus dans un fichier de format .mat en utilisant


l’option export de fdatool.

7. Générer un signal contenant deux sinusoïdes : l’une appartenant à la bande passante,


l’autre appartenant à la coupe bande du filtre réalisé.

8. Etudier la fonction filter de MATLAB©

9. Filtrer le signal généré à l’aide du filtre réalisé.

10. Tracer le spectre du signal filtré et interpréter le résultat obtenu.

Refaire la Manip 2 en réalisant un filtre passe haut avec le gabarit suivant :

7
SICOM 2- FILTRAGE ET FILTRES NUMÉRIQUES . F.ABDI DGE, FST FES

a. Fréquence d’échantillonnage : Fs = 48000 Hz.


b. Fréquence de la bande passante : Fpass = 8000 Hz.
c. Fréquence de la coupe bande : Fstop = 7000 Hz
d. Ondulations dans la bande passante: Apass = 1 dB.
e. Atténuation dans la coupe bande : Astop = 80 dB.

2 - Filtrage: On utilisera l'interface sptool.

SPTOOL est un outil qui simplifie les calculs que l’on peut faire avec MATLAB.
L’interface de SPTOOL permet de créer ou d’importer des signaux et des filtres et d’observer
(avec l’outil FVTOOL5) le résultat du filtrage numérique en temporel et en fréquentiel (outil
FDATool). Toutes les opérations effectuées sous ces outils sont obtenues par des calculs que l’on
peut exécuter pas par pas dans la ligne de commande Matlab. L’utilisateur peut revenir aux calculs
en utilisant les fonctions :

Pour SPTOOL et FVTOOL : plot, stem, linspace, logspace, fft, spectrum, filter, freqz,
zplane, roots, poly,…

Pour FDATOOL : les mêmes plus les fonctions de synthèse de FIR/IIR : filt1, filt2, butter,
buttord, ellip, ellipord, yulewalk …

A - principe de base du filtrage

On désire filtrer un signal composé de la somme de 3 sinusoïdes de fréquences respectives


1000, 1500 et 2000 Hz.

Partant d'une fréquence d'échantillonnage de 5000 Hz, générer un vecteur signal de 5000
points. Donner les valeurs normalisées des fréquences?

Concevoir un filtrer elliptique capable d'éliminer la composante à 1500 Hz. Visualiser les
signaux et leur spectres respectifs à l'entrée et à la sortie du filtre.

B - Filtrage d'un bruit blanc: On utilisera l'interface sptool.

Utiliser la fonction "randn" pour générer un signal aléatoire de 5000 échantillons


normalement distribués (spécifier la fréquence d'échantillonnage à 5000).

Visualiser le signal généré ainsi que son spectre.

8
SICOM 2- FILTRAGE ET FILTRES NUMÉRIQUES . F.ABDI DGE, FST FES

Filtrer ce signal par le filtre passe-bande ([500Hz 750Hz], [1250Hz 1500Hz]) "equiripplle" ,
d'ordre 78, et d'ondulations Rp=0.01 et Rs=75.

Observer les deux signaux par l'interface "Signal Browser".

Activer l'interface "Spectrum Viewer" pour afficher les spectres de puissances des deux
signaux. Comparer les deux spectres (On affichera les deux spectres sur un même graphe (CTRL
+ sélection)). Prélever les caractéristiques principales du spectre du signal filtré.

Filtrage par FFT

On veut utiliser la FFT pour réaliser un filtre FIR défini par sa réponse impulsionnelle h(m).

1. Implémenter sous Matlab la procédure suivante :

Connaissant H(f), la FFT de h(m), et pour un signal d'entrée x(n), calculer X(f), la FFT de
x(n), multiplier les deux FFT terme à terme : Y(f)= H(f ) X(f ))

restituer la FFT inverse y(n) : y(n) =IFFT (H(f ) X(f )) Avec H(f ) =FFT( h(m )) et X(f )
=FFT( x(n ))

2. Tester la procédure en utilisant le filtre défini par h= ones(1,M)/M sur un sinusoïde avec
un bruit additif gaussien (utilise la fonction y = wgn(m,n,p) pour générer le bruit blanc ou la
fonction Y = awgn(X,SNR) pour bruiter directement par un bruit blanc avec un SNR fixé.

Vous aimerez peut-être aussi