J-TDS Conception Filtres Num
J-TDS Conception Filtres Num
J-TDS Conception Filtres Num
de filtres numériques
Hugues GARNIER
TNS 1 H. Garnier
Objectifs de la conception de filtres numériques
H( f )
On veut réaliser un filtrage donné
1
TNS 2 H. Garnier
Caractérisation d’un filtre
Un filtre est défini par sa réponse fréquentielle en amplitude et en phase
S( f ) S( f )
H( f ) = = H( f ) e jϕ ( f ) H( f ) = ϕ (f ) = Arg (H( f ))
E( f ) E( f )
( )
s(k ) = H(f ) sin 2π fkTe + ϕ (f ) = H(f ) sin 2π f kTe + τ ϕ (f ) ( ( ))
On définit :
ϕ (f )
Retard de phase τ ϕ (f ) = −
2π f
Retard de groupe τ (f ) = − dϕ (f )
gr
2π f
TNS 3 H. Garnier
Illustration du concept de retour de groupe
s(k)
e(k)
k k
e(k) s(k)
Filtre
Le retard de groupe tgr mesure le temps mis par l’énergie pour atteindre la sortie
du filtre lorsque le signal n’est pas purement sinusoïdal (propagation de paquets
d’onde par exemple comme ci-dessus)
TNS 4 H. Garnier
Spécifications idéales en amplitude et phase
Un traitement n’apporte pas de distorsions s’il restitue en sortie un signal de
même forme qu’en entrée. s(k) peut subir une amplification et un retard
s( k ) = K e( k − k0 ) ΙH(f)Ι
− j 2π fk0Te
H( f ) = Ke
− j 2π fk0Te
S( f ) = Ke E( f )
-fc 0 fc f
TNS 5 H. Garnier
Types de distorsion en pratique
Phase (deg)
-45
-90 -2
10 10-1 100
fréquence(Hz)
TNS 6 H. Garnier
Réponse fréquentielle des 4 filtres idéaux
Selon la bande à supprimer, on distingue 4 types de filtres
Passe-bas Passe-haut
H( f ) H( f )
1 1
0 fc f 0 fc f
Passe-bande Coupe-bande
H( f ) H( f )
1 1
TNS 7 H. Garnier
Réponse impulsionnelle d’un filtre passe-bas idéal
Réponse fréquentielle du filtre numérique passe-bas idéal
⎧ H(f)
⎪1 si f < fc 1
H(f ) = ⎨
⎩0 si f ≥ fc
⎪
-fc 0 fc fe/2 fe f
( )
H f + nfe = H(f ), n ∈ Z
h(k ) =
1 ⎜e
⎛ j 2π kTefc
−e
j 2π kTefc
⎟=
(
⎞ sin 2π kT f
e c )
π kTe ⎜⎝ 2j ⎟
⎠ π kTe
(
h(k ) = 2fc sinc 2fc kTe )
TNS 8 H. Garnier
Réponse impulsionnelle d’un filtre numérique
passe-bas idéal
(
h(k ) = 2fc sinc 2fc kTe )
2fc
TNS 9 H. Garnier
Réponse impulsionnelle d’un filtre passe-haut idéal
d’après celle du passe-bas idéal
Réponse fréquentielle du filtre numérique passe-haut idéal
⎧
⎪1 si f ≥ fc HPH(f)
HPH (f ) = ⎨ 1
⎩0 si f < fc
⎪
( )
HPH f + nfe = HPH (f ), n ∈ Z - fe/2 -fc 0 fc fe/2 f
TNS 10 H. Garnier
Réponse impulsionnelle d’un filtre passe-bande idéal
d’après celle du passe-bas idéal
Réponse fréquentielle du filtre passe-bande (Band-Pass - BP) idéal
⎧
⎪1 si f ± f0 ≤ fc HBP(f)
HBP (f ) = ⎨
⎩0 si f ± f0 > fc
⎪ 1
( )
HBP f + nfe = HBP (f ), n ∈ Z
- fe/2 -f0 0 f0-fc f0 f0+fc fe/2 f
TNS 11 H. Garnier
Contraintes pratiques sur la réponse impulsionnelle
pour la conception d’un filtre numérique
• Rappel
– réponse impulsionnelle h(k) = réponse du filtre lorsque l’entrée est
une impulsion de Kronecker d(k)
d(k) h(k)
1 Filtre
numérique
0 1
k k
– Stabilité
+∞
∑ h( k ) < ∞
k=−∞
TNS 12 H. Garnier
Conception de filtres numériques
M H( f ) Zone de transition
∑ bi z −i
Bande passante Bande atténuée
H( z) = i=0
N
1+ ∑ai z−i 1 + dp
i=1 1
1- dp
N M da
TdS 13 H. Garnier
Réponse fréquentielle désirée : gabarit
H( f ) Zone de transition
1 + dp
1
1- dp
da
fp fa f
fc
Principe : Il faut respecter (ou définir) le cahier des charges et donc préciser :
- la (ou les) fréquence(s) de coupure fc désirée (s)
- les valeurs limites de la bande passante fp et bande atténuée fa
- les valeurs permises des ondulations en bande passante dp et atténuée da
- la largeur de la zone de transition Df permise
- éventuellement l'ordre maximal permis.
TdS 14 H. Garnier
Exemple de gabarit : filtre passe-bas
Zone Réponse
La réponse fréquentielle est définie par : H(f ) de
fréquentielle
transition
en
⎧ amplitude
⎪1 si f < fp Bande passante
H(f) = ⎨ Bande atténuée
⎩0 si f > fa
⎪ 1 + dp
1
avec fc = 0.5(fp +fa) 1- dp
Plus fp et fa sont proches, plus l'ordre sera élevé
da
Pour un filtre idéal, fp = fa = fc
fp fa fe/2
fc
On spécifie le gabarit du filtre en donnant : HdB = 20log10 H(f )
- l'ondulation en bande passante (BP) Zone de
Diagramme
0.05A p transition
de Bode en
A p (dB) = 20log10 (1 + δp ) ou δp = 10 −1 fa
amplitude
fp
fc
- l'ondulation en bande atténuée (BA) Ap Log(f)
0
−0.05A a
A a (dB) = −20log10δa ou δa = 10
- les fréquences fp et fa Aa
Gain dB
⎛ Y(f ) ⎞ 0
( )
HdB = 20 log10 H( f ) = 20 log10 ⎜ ⎟
⎜ E( f ) ⎟
-10
⎝ ⎠ -20 -1
10 100 101
Fréquence (Hz)
Tableau de correspondance entre rapport d’amplitude des signaux
sinusoïdaux d’entrée/sortie et le gain en dB
10-n -20×n 1 0
0.01 -40 1.414 3
0.1 -20 2 6
0.316 -10 3.162 10
0.5 -6 10 20
0.707 -3 10n 20×n
TdS 16 H. Garnier
Rappel des 2 types de filtres numériques
M M
H( z ) =
S( z )
= i =0 = i =0 s( k ) = ∑bi e( k - i )
E( z ) zM 1 i =0
S( z)
∑ bi z −i N M
H( z) =
E( z)
= i=0
N
∑ai s( k - i ) + ∑bi e( k - i )
s( k ) = −
i =1 i =0
1+ ∑ ai z −i
i=1
TNS 17 H. Garnier
Méthodes de conception de filtres RIF
- la méthode de la fenêtre
- …
TdS 18 H. Garnier
Principe de la méthode de la fenêtre
• Si H(z) est connue, la réponse impulsionnelle h(k) est la réponse
obtenue lorsqu’on envoie en entrée une impulsion de Kronecker d(k)
d(k)
s(k ) = h(k )
1 H(z)
0 1
k
• Si H(z) est inconnue, mais que H(f) est spécifiée, h(k) est la TFtd
inverse de H(f)
H(f) h(k ) =TFtd -1 H(f ) ( )
1
-fc 0 fc fe/2
+∞
H( z) = TZ(h(k )) = ∑ h(k ) z−k
k=−∞
TNS 19 H. Garnier
Prise en compte des contraintes pratiques sur la
réponse impulsionnelle d’un filtre passe-bas idéal
(
h(k ) = 2fc sinc 2fc kTe )
2fc
TNS 20 H. Garnier
Conception de filtres RIF par la méthode de la fenêtre
Principe
1.On détermine par TFtd inverse la réponse impulsionnelle du filtre idéal
M
s( k ) = ∑hi e( k - i )
i =0
TNS 21 H. Garnier
Synthèse de filtres RIF avec la fenêtre naturelle
hi(k)
Hi(f)
w(k) W(f)
Fenêtre rectangulaire
0 M/2 k
0 f
Apparition d’ondulation dans
les bandes
passante et atténuée H(f)=Hi(f)* W(f)
h(k) =hi(k). w(k)
0 k f/fe
-1 -1/2 0 1/2 1
Zone
utile
TNS 22 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, Blackmann, Kaiser, …
hi(k)
Hi(f)
0 M/2 k
0 f
h(k)=hi(k). w(k) H(f)=Hi(f)* W(f)
Réduction des ondulations dans
les bandes
passante et atténuée
TNS 23 H. Garnier
Exemple de synthèse sous Matlab :
fir1(M,fcn,window(M+1))
ordre M=5 ordre M=5
h=fir1(5,0.5,boxcar(6)) h=fir1(5,0.5,hamming(6))
H(f)
H(f)
TNS 24 H. Garnier
Exemple : synthèse d’un filtre passe-bas
avec l’interface graphique filterDesigner de Matlab
- ordre M=88
- fréquence d'échantillonnage fe = 10 kHz
- fenêtre de Blackman
TNS 25 H. Garnier
Synthèse de filtres RIF avec l’interface graphique
filterDesigner de Matlab
TNS 26 H. Garnier
Méthodes de conception de filtres RII
-…
TNS H. Garnier
27
Lien entre pôles et zéros de H(z)
et réponse fréquentielle
H (z) =
( z − e ) (z − e
jΩ0 − jΩ0
) jΩTe H(Ω) = H(Ω) e jϕ ( Ω )
z=e
(z − ae )(z − ae )
jΩ0 − jΩ0
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 en
amplitude
Il est donc possible, par un placement judicieux des pôles et des zéros, d'obtenir des
filtres à encoches ou en peigne
encoches
o zéros
ΙH(W)Ι
x pôles
TNS H. Garnier
28
Filtres à encoches (notch filter) pour supprimer
une composante sinusoïdale parasite
• But : concevoir un filtre qui supprime une et une seule composante sinusoïdale
f0 sans affecter les autres composantes fréquentielles
• Solution : placer deux zéros sur le cercle unité pour supprimer la composante
sinusoïdale f0 et placer deux pôles proches des zéros à l’intérieur du cercle
pour compenser l’effet des zéros aux autres fréquences
• Remarque : si f0=0, suppression de la composante continue
⎛ 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(W)
Ι
a: permet d’ajuster
la sélectivité du filtre
Plus a est proche de 1,
plus le filtre est sélectif
TNS H. Garnier
29
Filtre à encoches (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
z 2 − 2cos(0,2π )z +1 z 2 − 0,809z +1
()
H z =
2
z −1.8cos(0,2π )z + 0,9 2
=
z 2 −1,45z + 0.81
TNS H. Garnier
30
Exemple : note de trompette
contaminée par une fréquence parasite
1. Analyse spectrale pour identifier la fréquence parasite
TNS H. Garnier
31
Autre exemple : note de trompette
contaminée par une fréquence parasite
2. Concevoir et appliquer un filtre à encoche pour supprimer la fréquence
parasite
3. Analyse spectrale du signal filtré
TNS H. Garnier
32
Filtres en peigne (comb filter) pour supprimer
des signaux périodiques
• But : concevoir un filtre qui supprime les harmoniques d’un signal
périodique sans affecter les autres composantes fréquentielles
TNS H. Garnier
33
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 (filtre de type Butterworth par exemple)
TNS H. Garnier
34
Approximation avancée et
transformation bilinéaire
On connaît H(s) Comment en déduire H(z) ???
TNS H. Garnier
35
Synthèse de filtre RII par la transformation bilinéaire
Exemple
2s
H(s ) =
s 2 + 6s + 8
RII équivalent.
>>[Numd,Dend] = bilinear(Numc,Denc,Fs)
TNS H. Garnier
36
Synthèse de filtre RII
par la transformation bilinéaire - Exemple
Te = 1 s
2 1− z−1 1− z−1 1− z −1
s= =2 2× 2
2s Te 1+ z −1
1+ z−1
H( z) = 1+ z −1
H(s ) =
2
s + 6s + 8 ⎛ 1− z −1 ⎞2 1− z −1
⎜⎜ 2 ⎟ + 6×2 +8
−1 ⎟ −1
⎝ 1+ z ⎠ 1+ z
H( z) =
(
2 × 2 1− z −1 1+ z −1)( ) =
4 − 4z −2
=
1 / 6z 2 −1 / 6
2 2
24 + 8z −1
z 2 +1 / 3z
(
4 1− z −1
) (
+12 1− z −1
) (1+ z ) + 8 (1+ z )
−1 −1
Sous Matlab :
>> [Numd,Dend] = bilinear([0 2 0],[1 6 8],1)
Numd = 0.1667 0.0000 -0.1667
TNS H. Garnier
38
Synthèse de filtres RII
par la transformation bilinéaire - Exemple
1 / 6z 2 −1 / 6
H( z) =
z 2 +1 / 3z
Y ( z) 1 / 6 −1 / 6z −2
=
E( z) 1+1 / 3z −1
1 1 1
y(k ) = − y(k −1) + e(k ) − e(k − 2)
3 6 6
TNS H. Garnier
39
Exemple : synthèse d’un filtre passe-bande avec
l’interface graphique filterDesigner de Matlab
- ordre : 20
- fréquence d'échantillonnage fe = 5 kHz
TNS H. Garnier
40
Synthèse de filtres RII avec l’interface graphique
filterDesigner de Matlab
TNS H. Garnier
41
Comparatif filtres RIF / RII
TNS H. Garnier
42
Comment supprimer des pics parasites ?
TNS H. Garnier
43
Un autre filtre numérique utile à connaître :
le filtre médian
C’est un filtre numérique non linéaire souvent utilisé pour
– supprimer les valeurs aberrantes (outliers) ou pics parasites sur un signal
Principe : remplacer chaque valeur du signal par la valeur médiane calculée sur
une fenêtre glissante de largeur N
TNS H. Garnier
44
Sous Matlab : y = medfilt1(x,N);
TNS H. Garnier
45