Sie sind auf Seite 1von 45

Conception

de filtres numériques

Hugues GARNIER

Version du 26 mars 2018

hugues.garnier@univ-lorraine.fr

TdS 1 H. Garnier
Organisation de l’UE de TdS
I.  Introduction
II. Analyse et traitement de signaux déterministes
-  Analyse de Fourier de signaux analogiques
–  De l’analogique au numérique
–  Analyse de Fourier de signaux numériques

III. Filtrage des signaux


–  Analyse de filtres analogiques
–  Conception de filtres analogiques
–  Analyse de filtres numériques
–  Conception de filtres numériques

TdS 2 H. Garnier
Réponse fréquentielle de filtres idéaux
Selon la bande à supprimer, on distingue 4 catégories de filtres

Passe-bas Passe-haut Passe-bande Coupe-bande


H( f ) H( f ) H( f ) H( f )
1 1 1 1

0 fc f 0 fc f 0 fc1 fc fc2 f 0 fc1 fc2 f

Effets des types de filtrage sur un signal audio

Passe-bas fc=1000 Hz

Filtre
Passe-haut fc=1000 Hz

Passe-bande fc=1000 Hz

TdS 3 H. Garnier
Réponse impulsionnelle d’un filtre passe-bas idéal
Réponse fréquentielle du filtre idéal
H(f)
1

⎪1 si f < fc
H( f ) = ⎨
⎩0 si f ≥ fc

-fc 0 fc f

Réponse impulsionnelle par transformée de Fourier inverse


+∞ fc
h(t)=F -1 j2πft j2πft (
sin 2πfc t ) =2f sinc 2f t
( ) ∫
H(f) = H(f) e df = ∫ 1 e df =
πt c ( c)
-∞ -fc
h(t)
H(f)
1

0 t -fc 0 fc f

h(t)≠ 0 t < 0, réponse non causale & infinie ! Filtre idéal non réalisable
En pratique, on va approcher le filtre idéal !

TdS 4 H. Garnier
Conception de filtres numériques

•  Concevoir un filtre numérique consiste à déterminer la fonction de


transfert en z du filtre qui va approcher au mieux les spécifications
sur la réponse fréquentielle en amplitude (celles de la phase sont
complexes à satisfaire simultanément) H( f )

1 + δp
On distingue deux approches : 1
1- δp

-  celle empirique exploitant le lien entre réponse δa


fp fa f
fréquentielle et la localisation des pôles/zéros fc

-  celles approchant au mieux la réponse fréquentielle

TdS 5 H. Garnier
Lien entre réponse fréquentielle et
localisation des pôles et des zéros
Des zéros proches ou sur le cercle unité produisent des minima au niveau de la
réponse fréquentielle en amplitude.
Des pôles proches du cercle unité produisent de larges pics sur la réponse
fréquentielle
Il est donc possible, par un placement judicieux des pôles et des zéros, d'obtenir
des filtres réjecteur ou en peigne.
ΙH(ω)Ι

TdS 6 H. Garnier
Filtres réjecteur (notch filter) pour supprimer
une composante sinusoïdale parasite
•  But : concevoir un filtre qui supprime une et une seule composante
sinusoïdale ω0 sans affecter les autres composantes fréquentielles
•  Solution : placer les deux zéros sur le cercle unité imaginaire pour
supprimer la composante sinusoïdale f0, et placer les deux pôles proches
des zéros à l’intérieur du cercle pour compenser l’effet des zéros aux autres
fréquences
⎛ jΩ ⎞ ⎛ − j Ω0 ⎞
⎜ z − e 0 ⎟⎜ z − e ⎟ z2 − 2 cos( Ω0 )z +1 f0
⎝ ⎠⎝ ⎠
()
H z =
⎛ j Ω0 ⎞ ⎛ − j Ω0 ⎞
=
2 2
Ω0 = 2 π
fe
a <1
⎜ z − ae ⎟ ⎜ z − ae ⎟ z − 2acos( Ω0 )z + a
⎝ ⎠⎝ ⎠
ΙH(ω)Ι

TdS 7 H. Garnier
Filtres réjecteur (notch filter) pour supprimer
une composante sinusoïdale parasite
Exemple : concevoir un filtre numérique qui supprime la composante
sinusoïdale f0 = 200 Hz lorsque le signal est échantillonné à fe = 2000 Hz

z2 − 2 cos( Ω0 )z +1 f0
•  Fonction de transfert ()
H z = Ω0 = 2 π a <1
2 2 fe
z − 2acos( Ω0 )z + a
f0
Ω0 = 2 π = 0,4 π a = 0,9
fe

z2 − 2 cos(0,4π )z +1 z2 − 0,62z +1
()
H z =
2 2
=
z −1.8 cos(0,4π )z + 0,9 z2 − 0,56z + 0.81

•  Equation aux différences


Y( z) 1 − 0,62z−1 + z−2
()
H z = =
X( z) 1 − 0,56z−1 + 0.81z−2

y(k ) = 0,56y(k −1) − 0,81y(k − 2) + x(k ) − 0,62x(k −1) + x(k − 2)

TdS 8 H. Garnier
Autre exemple :
Suppression d’une note de la gamme musicale
•  Objectif : concevoir un filtre réjecteur pour supprimer la
note “sol” de la gamme musicale

TdS 9 H. Garnier
Filtres en peigne (comb filter) pour supprimer
des signaux périodiques
•  But : concevoir un filtre qui supprime un signal périodique sans
affecter les autres composantes fréquentielles

•  Solution : mise en cascade de 2 (ou plus) filtres réjecteurs

Exemple : séparation du son de 2 trompettes jouant simultanément


deux notes différentes !
TdS 10 H. Garnier
Rappel des 2 types de filtres numériques

Filtres à Réponse Impulsionnelle Finie (ou filtres RIF)

M M
∑ bi z −i
∑ bi zM−i
B( z ) i =0 i =0
H( z ) = = =
A( z ) 1 zM

Filtres à Réponse Impulsionnelle Infinie (ou filtres RII)

M
∑ bi z−i
B( z ) i =0
H( z ) = =
A( z ) N
∑ ai z−i
i =0

TdS 11 H. Garnier
Méthodes de conception de filtres RIF

Il en existe de nombreuses dont :

- la méthode de la fenêtre

- la méthode d’échantillonnage fréquentiel

- …

TdS 12 H. Garnier
Synthèse de filtres RIF :
méthode de la fenêtre
Principe
1.  On choisit une réponse fréquentielle d’un filtre analogique idéal HA(f)
2. On détermine par transformée de Fourier inverse la réponse impulsionnelle

h(t)=F-1(HA(f))

3. On échantillonne cette réponse impulsionnelle h(n)

4. On tronque cette réponse impulsionnelle (revient à multiplier par une fenêtre)


5. On retarde cette réponse pour la rendre causale

6. Les valeurs successives de la réponse impulsionnelle sont les coefficients

du filtre recherché b(n)=h(n)

TdS 13 H. Garnier
Réponse impulsionnelle d’un filtre passe-bas idéal

Réponse fréquentielle du filtre idéal


⎧ 1
HA(f)
f 1
⎪1 si <
fe ⎪ fe 4
Exemple : fc = HA( f ) = ⎨
4 ⎪0 si f ≥ 1
-1/4 0 1/4 f/fe
⎪ fe 4

Réponse impulsionnelle par transformée de Fourier inverse


fc
hA (t)=F -1
+∞
j2πft j2πft (
sin 2πfc t ) =2f sinc
( )
H A (f) = ∫ H A (f) e df = ∫ 1e df =
πt c (2fct )
-∞ -fc

hA(t) HA(f)
1

0 t -1/4 0 1/4 f/fe

TdS 14 H. Garnier
hA(t)
HA(f)
étape 2 1 étape 1

0 t -1 -1/4 1/4 1/2 1 f/fe


δTe(t) 0

1/Te δfe(f)
1
étape 3

0 t -1 0 1
f/fe
hN(k) =hA(t). δTe(t)
HN(f)= HA(f)* δfe(f)

0 k -1 -1/4 1/4 1/2 1 f/fe


0 F(f)
F(t) F(f)

Te Fenêtre rectangulaire
étape 4

0 M Te/2 t
0 f
h(k) =hN(k). F(t) Apparition d’ondulation dans H(f)=HN(f)* F(f)
les bandes
passante et atténuée
Zone
utile

0 k -1 -1/2 1/2 1 f/fe


0
TdS 15 H. Garnier
Réduction des ondulations-Fenêtrage
Pour diminuer les ondulations en bandes passante et atténuée, on peut choisir
une autre fenêtre (Hamming, Hanning, ...)
hN(k) =hA(t). δTe(t)
HN(f)= HA(f)* δfe(f)

0 k -1 -1/4 1/4 1/2 1


f/fe
0 F(f)
F(t) F(f)
Te Fenêtre de Hamming

0 MTe/2 t
0 f
H(k) =hN(k). F(t) H(f)=HN(f)* F(f)
Réduction des ondulations dans
les bandes
passante et atténuée

0 k -1 -1/2 0 Zone 1/2 1


utile f/fe

TdS 16 H. Garnier
Exemple de synthèse sous Matlab : fir1
ordre M=7 ordre M=7
Fenêtre rectangulaire Fenêtre de hamming

h=fir1(7,0.5,boxcar((8)) h=fir1(7,0.5,hamming((8))

Sous Matlab, les fréquences de coupure sont normalisées par rapport à fe / 2


fc=fe/4 d’où fn=fc/(fe/2)=0.5

h(4) = h(-4) = -0.0721 h(4) = h(-4) = -0.0052


h(3) = h(-3) = -0.1010 h(3) = h(-3) = -0.0229
h(2) = h(-2) = 0.1683 h(2) = h(-2) = 0.0968
h(1) = h(-1) = 0.5048 h(1) = h(-1) = 0.4313

Réduction des ondulations


mais diminution de la
1 raideur de coupure 1

0 0
0 fc=fe/4 fe/2 0 fc=fe/4 fe/2

TdS 17 H. Garnier
Utilisation pratique de la méthode
1ère étape: Spécifier la réponse en fréquences désirée du filtre HN(f).

Il faudra faire attention aux fréquences de coupure à prendre en compte. Afin


d'avoir de bons résultats lors de la synthèse, ce ne sont pas les fréquences de
coupure du filtre idéal qu'il faut utiliser mais il faut déplacer celles-ci afin de
les centrer dans la zone de transition :

- pour un passe-bas, augmenter fc de la demi-zone de transition,

- pour un passe-haut, diminuer fc de la demi-zone de transition,

- pour un passe-bande, diminuer la première fc de la demi-zone de transition


et augmenter la seconde de la demi zone de transition,

- pour un réjecteur de bande, faire l'inverse.

TdS 18 H. Garnier
Utilisation pratique de la méthode
2ème étape : Obtenir la réponse impulsionnelle hN(n) du filtre numérique désiré
par transformée de Fourier inverse, les coefficients de la réponse
impulsionnelle étant les coefficients de la fonction de transfert.

Type de filtre hN(n), n ≠ 0 hN(0)

Passe-bas fc
sin(n!c / 2) fc
n!c / 2

Passe-haut !fc
sin(n"c / 2) 1 - fc
n"c / 2

Passe-bande f2
sin(n!2 / 2) sin(n!1 / 2)
" f1 f2 - f1
n!2 / 2 n!1 / 2

Réjecteur de bande f1
sin(n!1 / 2)
" f2
sin(n!2 / 2) 1 -(f2 - f1)
n!1 / 2 n!2 / 2

Tableau 1 - Réponses impulsionnelles idéales pour les filtres standards


N.B. : Les fréquences sont normalisées par rapport à fe / 2
(comme dans Matlab)
TdS 19 H. Garnier
Utilisation pratique de la méthode
3ème étape : Sélectionner une fenêtre qui satisfait les spécifications requises pour
déterminer l’ordre du filtre d’après la largeur de la transition souhaitée.
Type de Δf, largeur de transition Ondulation en Atténuation du Atténuation en
fenêtre (en fréquence réduite) bande passante 1er lobe bande atténuée
Ap (dB) secondaire (dB) Aa (dB)

Rectangulaire 0.7416
1.8/Nc 13 21

Hanning 6.2/Nc 0.0546 31 44

Hamming 6.6/Nc 0.0194 41 53

Blackman 11/Nc 0.0017 57 74

Kaiser 5.86/Nc (β=4.54) 0.0274 50

8.64/Nc (β=6.76) 0.00275 70

11.42/Nc (β=8.96) 0.000275 90

N.B. 1 : les fréquences sont normalisées (réduites) par rapport à fe / 2 (comme dans Matlab)
N.B. 2 : Nc = M + 1 : Nombre de coefficients
d’où ordre du filtre : M=Nc -1
TdS 20 H. Garnier
Utilisation pratique de la méthode
4ème étape : Obtenir les valeurs de f(n) pour la fenêtre choisie et les valeurs
vraies des coefficients h(n) et décaler h(n) pour la rendre causale :

h(n)=hN (n) f(n)

Exemple
Déterminer les coefficients d'un filtre RIF passe-bas respectant :
Fréquence de coupure : fc=1.875 kHz
Largeur de transition : Δf=625 Hz
Atténuation en bande atténuée : Aa> 51 dB
Fréquence d'échantillonnage : fe=10 kHz

TdS 21 H. Garnier
Exemple de conception d’un filtre RIF
1.  On détermine les fenêtres qui permettent de respecter Aa> 51dB
⇒  D’après le tableau, seules les fenêtres de Hamming, Blackman et Kaiser
permettent d’obtenir Aa> 51dB
2.  On calcule la largeur de la zone de transition réduite
Δf 625
Δf = = = 0.125
fe / 2 5000

3.  On en déduit l’ordre du filtre (pour Hamming, par exemple)


6.6 6.6 6.6
Δf = => Nc = = = 52.8
Nc Δf 0.125
M = Nc −1 = 52

4.  On calcule la fréquence de coupure centrée dans la zone de transition et


réduite
fc + Δf / 2 1875 + 625 / 2
fc = = = 0.4375
fe / 2 5000

5.  On utilise la commande fir1 de Matlab

TdS 22 H. Garnier
Fenêtre de Hamming
Sous Matlab :
>> B=fir1(52,0.4375,hamming(53)); % fir1(M,fn,hamming(N+1))

>> A=1; 20
0
>> fe=10000; -20
-40
>> freqz(B,A,512,fe) -60
-80
-100
-120
0 500 1000 1500 2000 2500 3000 3500 4000 4500 5000
Frequency ( Hz)

-500

- 1000

- 1500

- 2000

- 2500
0 500 1000 1500 2000 2500 3000 3500 4000 4500 5000
Frequency ( Hz)

TdS 23 H. Garnier
Fenêtre de Blackman

50

Sous Matlab :
0

B=fir1(87,0.4375,blackman(88));
- 50

A=1;
- 100

fe=10000;
0
50 0 1000 1500 2000 2500 3000 3500 4000 4500 5000
freqz(B,A,512,fe) Fr equency ( Hz)

- 1000

- 2000

- 3000

- 4000

- 5000
0 500 1000 1500 2000 2500 3000 3500 4000 4500 5000
Frequency ( Hz)

TdS 24 H. Garnier
Synthèse de filtres RIF avec l’interface graphique
filterDesigner de Matlab

TdS 25 H. Garnier
Méthodes de conception de filtres RII

Il en existe de nombreuses dont :


- la méthode de l’invariance impulsionnelle

- la méthode de l’invariance indicielle

- la méthode de la transformation bilinéaire

TdS H. Garnier
26
Synthèse de filtres RII par transformation bilinéaire

•  Principe

On dispose d’un filtre analogique ayant un gabarit fréquentiel répondant au


cahier des charges demandées (conception d’un filtre de type Butterworth par
exemple).

Objectif : Trouver le filtre numérique RII ayant une réponse fréquentielle


équivalente à celle du filtre analogique.

Remarque : la coïncidence des réponses est limitée à la zone utile du filtre


numérique, soit pour des fréquences comprises entre 0 et fe /2.

TdS H. Garnier
27
Approximation avancée et transformation bilinéaire
simple

On connaît H(s) Comment en déduire H(z) ???

On connaît la relation liant z à s :


sTe
z=e
1
s= ln( z ) Relation non linéaire !
Te

sTe z −1 Approximation avancée


z=e ≈ 1 +Tes +… s= =approximation de l’intégrale
Te
par la méthode des rectangles
sTe
Ne conserve pas la stabilité !
Te
1 + s +…
e 2 2 Transformation bilinéaire
z= ≈ 2 z −1 2 1 − z−1
−sTe Te s= = =approximation de l’intégrale
1 − s +… Te z +1 Te 1 + z−1
e 2 2 par la méthode des trapèzes
Conserve la stabilité

TdS H. Garnier
28
Synthèse de filtres RII – Cas d’un circuit RC

R
y( t ) = h( t )* e( t ) h( t ) rép. imp.
e(t) C y(t) dy( t )
RC + y( t ) = e( t ) ( éq. diff .)
dt

H(s) ? Y ( s ) = H( s )E( s )

E(s) Y(s) Y(s) 1 1


H( s ) = = =
H(s) E( s ) 1 +T s s
1+
ωc
1
ωc =
T

TdS H. Garnier
29
Synthèse par approximation avancée et
transformation bilinéaire simple - Exemple
Déterminer le filtre RII équivalent au filtre analogique RC en utilisant :

- l’approximation avancée

- la transformation bilinéaire

Donner pour les deux méthodes :

- la fonction de transfert H(z) du filtre RII

- l’équation de récurrence

Etudier la stabilité des filtres obtenus

Tracer la réponse fréquentielle en amplitude et phase des filtres RII pour :

- T=RC=1ms; Te=T / 10;

- T=RC=1ms; Te=T / 2;

Comparer celles-ci avec les réponses du filtre analogique RC. Conclusions

TdS H. Garnier
30
Comparaison des réponses fréquentielles
Te=T/10 (ωe=20πωc)
1
RC analogique
0.8 RII avancée
RII bilinéair e
0.6

0.4

0.2

0
2 3 4 5
10 10 10 10

100
RC analogique
50 RII avancée
RII bilinéair e
0

-50

-100

-150

-200
2 3 4 5
10 10 10 10

TdS H. Garnier
31
Comparaison des diagrammes de Bode
Te=T/10 (ωe=20πωc)
0

-10

-20
RC analogique
-30 RII avancée
RII bilinéaire
-40

-50

-60
2 3 4 5
10 10 10 10

100
RC analogique
50 RII avancée
RII bilinéair e
0

-50

-100

-150

-200
2 3 4 5
10 10 10 10

TdS H. Garnier
32
Comparaison des réponses fréquentielles
Te=T/2 (ωe=4πωc)
1
RC analogique
0.8 RII avancée
RII bilinéair e

0.6

0.4

0.2

0
2 3 4
10 10 10

100
RC analogique
50 RII avancée
RII bilinéair e
0

-50

-100

-150

-200
2 3 4
10 10 10

TdS H. Garnier
33
Transformation bilinéaire avec ajustement fréquentiel

z −1 2 ⎛ω T ⎞
s=k k = ωa = k tan ⎜⎜ n e ⎟⎟
z +1 Te
⎝ 2 ⎠
s = jω a
3.5
jωnTe
z=e
3

2.5

Relation entre la pulsation


2

du filtre analogique et celle du A


ω
1.5

filtre numérique : linéaire pour


1
des valeurs faibles uniquement
0.5
Engendre une distorsion au niveau
0
de la réponse du filtre numérique 0 0.5 1
ω
N
1.5 2 2.5

TdS H. Garnier
34
Synthèse de filtres RII par transformation
bilinéaire avec ajustement fréquentiel
On note
ωA : pulsation de coupure dans le domaine analogique
ωN : pulsation de coupure dans le domaine numérique
ωe : pulsation d’échantillonnage ωe =2πfe

1. Faire la synthèse du filtre analogique de référence H(s)

2. Définir une pulsation de référence ωr pour laquelle on veut faire coïncider les
réponses fréquentielles des filtres analogique et numérique
Rq : pour filtres passe-bas et passe-haut, ωr = ωc
pour filtres passe-bande et coupe-bande, ωr = ω0 pulsation au
centre de la bande passante ou de la bande atténuée,

3. Calculer la fonction de transfert de Laplace analogique en fonction de la


variable normalisée sn en utilisant la relation : s = sn ωr

TdS H. Garnier
35
Synthèse de filtres RII par transformation bilinéaire
avec ajustement fréquentiel
4. Définir une pulsation où l'on voudra identité des réponses fréquentielles
des filtres analogique et numérique
Rq : le plus souvent on choisira cette pulsation = ωr

5. Déterminer le facteur d'échelle k :


ωA
k=
⎛ ω ⎞
ωr tan ⎜⎜ π N ⎟⎟
⎝ ωe ⎠

6. Calculer la fonction de transfert en z après avoir effectué le changement de


variable :
1 − z−1
sn = k
1 + z−1

7. Etudier le filtre numérique obtenu afin de vérifier les spécifications


demandée.
Remarque : transformation bilinéaire simple : k=2/Te
TdS H. Garnier
36
Exemple : synthèse d’un filtre passe-bande
Synthétiser un filtre numérique passe-bande du second ordre ayant les
caractéristiques suivantes :

- fréquence d'échantillonnage fe = 5 kHz,

- fréquence centrale : f0 = 500 Hz,

- gain unitaire à la fréquence centrale,

- fonction de transfert du filtre analogique de référence :

337.81s
H(s)=
s 2 +337.81s+9.8696´106

TdS H. Garnier
37
Comparaison des réponses fréquentielles
Réponse fréquentielle en amplitude 0 diagramme de Bode en amplitude
1

0.8
analogique-50
0.6
numérique
0.4
-100

0.2

0 -150
0 500 1000 1500 2000 2500 -4 -2 0 2 4

Fréquence en Hz 10 10 10 10 10
Fréquence en Hz

100 Réponse fréquentielle en phase 100


diagramme de Bode en phase

50 50

0 0

-50 -50

-100 -100
-4 -2 0 2 4
0 500 1000 1500 2000 2500 10 10 10 10 10
Fréquence en Hz Fréquence en Hz
TdS H. Garnier
38
Synthèse de filtres RII avec l’interface graphique
filterDesigner de Matlab

TdS H. Garnier
39
Comparatif filtres RIF / RIF

Filtres RIF Filtres RII

•  Toujours stables •  Peuvent être instables


•  Phase linéaire •  Phase non linéaire
•  Faciles à concevoir •  Nécessitent moins
d’opérations et de places
•  Pas d’équivalent en analogique mémoires
•  Plus efficaces que RIF

TdS H. Garnier
40
Un autre filtre numérique utile à connaître :
le filtre médian
C’est un filtre numérique non linéaire souvent utilisé pour
–  réduire l’effet du bruit
–  supprimer les valeurs aberrantes (outliers) ou pics parasites sur un signal

Principe
L'idée principale du filtre médian est de remplacer chaque valeur du signal par la
valeur médiane calculée sur une fenêtre glissante

Exemple : soit un extrait d’un signal comprenant 9 valeurs : 5 7 7 8 100 7 8 6 5

Le filtre médian va ordonner les valeurs : 5 5 6 7 7 7 8 8 100


la médiane vaut 7. La valeur 100 sera remplacée par 7
La sortie du filtre donnera donc : 5 7 7 8 7 7 8 6 5
La valeur aberrante a été remplacée par une valeur “de consensus” entre les
valeurs voisines
TdS H. Garnier
41
Exemple : filtrage médian

TdS H. Garnier
42
Exemple : filtrage médian
medfilt1 sous Matlab

TdS H. Garnier
43
Traitement du Signal
Conclusion
•  « L’art de faire parler les signaux »
•  La transformée de Fourier est un outil majeur

TdS H. Garnier
44
Traitement du Signal
Conclusion
•  Les domaines d’applications sont nombreux et variés
Télécoms & radars Médical

Audio Finance

•  Matlab est un outil puissant


https://www.youtube.com/watch?v=sCZLJsi6-FA
TdS H. Garnier
45