Vous êtes sur la page 1sur 17

FILTRAGE NUMERIQUE

deuxime partie : synthse des filtres numriques


Pierre Le Bars
(avec la collaboration de Francis Gary)
lebars@moniut.univ-bpclermont.fr
1
FILTRAGE NUMERIQUE
Deuxime partie : synthse des filtres numriques
I/ Mthodes gnrales de synthse des filtres numriques
Mis part quelques cas simples (par exemple filtre moyenne glissante dfini par
la rcurrence
N 1
k 0
1
y(n) . x(n k)
N

=
=

), la synthse directe des filtres numriques nest pas


aise. Les mthodes de synthse les plus utilises sappuient sur les proprits (bien
connues !...) des filtres analogiques.
On part dun filtre analogique prototype de fonction de transfert
anal
G (p) ayant les
proprits souhaites, puis on cherche le filtre numrique de fonction de transfert
Num
H (z)
ayant sensiblement les mmes proprits :
mme rponse impulsionnelle
mme rponse indicielle
mme rponse harmonique sur lintervalle
E E
f f
;
2 2
(

(

(Shannon !)
...
II/ Synthse de filtres R.I.F.
-1- Intrt des filtres RIF
Un filtre RIF est dfinie par une fonction de transfert :
P
k
k
k 0
H(z) a .z

=
=

soit en rgime harmonique :


( )
E E
P P
k
j. .T k. j. .T
k k
k 0 k 0
H( j. ) a . e a .e


= =
= =

Il arrive souvent que ces coefficients aient des proprits de symtrie :
k P k k P k
a a ou a a

= =
Si on regroupe deux deux les termes :
E E E E
E E
E
E
k. j. .T (P k). j. .T k. j. .T (P k). j. .T
k P k k
p p
P
k . j. .T . k j. .T
j. . .T
2 2
2
k
P
j. . .T
2
k E
a .e a .e a . e e
a .e . e e
p
2.a .cos k . .T .e
2

| | | |

| |
\ . \ .

( + = +

(
= +
(
(

( | |
=
| (
\ .
\

(si
k P k
a a

= , on obtient
E
P
j. . .T
2
k E
p
2.j.a .sin k . .T .e
2

( | |

| (
\ .
)
2
On aura alors :
E
P
P
2
j. . .T
2
k E
k 0
S
p
H( j. ) e . 2.a .cos k . .T
2

=
( | |
=
| (
\ .

Do :
| | ( )
E
P
Arg H( j. ) .T . (le terme + intervient si S < 0)
2
= +
On obtient un filtre dont la phase varie linairement en fonction de . Un tel
dphasage est quivalent un retard
E
P
.T
2
= .
(si
k P k
a a

= : | | ( )
E
P
Arg H( j. ) .T .
2 2

= + . La conclusion est la mme).


-2- Enonc du problme de synthse
On cherche raliser un filtre de fonction de transfert :
P
k
Num k
k 0
H (z) a .z

=
=

ou, ce qui est quivalent, dfini par la rcurrence :


P
k
k 0
y(n) a .x(n k)
=
=

Or, on a vu que pour un filtre RIF :


k
a h(k) = , o h(n) est la rponse impulsionnelle
du filtre. Le problme se ramne donc la dtermination de la rponse impulsionnelle h(n) du
filtre numrique.
Deux cas peuvent se prsenter :
on sait calculer la rponse impulsionnelle g(t) du filtre analogique
prototype (technique de lchantillonnage temporel)
on ne sait pas calculer g(t), mais on connat lallure de la rponse en
frquence du filtre analogique prototype.
anal
G ( j. ) est connu, ou au moins
un gabarit (technique de lchantillonnage en frquence).
On travaillera sur un exemple pour mettre en uvre ces deux techniques : on cherche
raliser sous forme numrique un filtre passe-bas idal de frquence de coupure
E
C
F
F
10
= (voir
TP).
anal
G
f
- F
E
/2 -F
C
F
C
F
E
/2
1
3
-3- Echantillonnage temporel (invariance impulsionnelle)
Soit g(t) la rponse impulsionnelle du filtre analogique :
| |
C
C
C C
Fourier j.2 .f .t
C C
Filtrage
anal
c C
Fourier Inverse j.2 .f .t
F
j.2 .f .t
F
j.2 .F .t j.2 .F .t
(t) (f ) (t).e .dt 1
1 si F f F
G(f ) G (f ). (f )
0 si f F ; F
g(t) G(f ).e .df
e .df
e e
j.2.
+


= =
< <
= =

=
=

( )
C
C
C
.t
sin 2 .F .t
2.F .
2 .F .t

Cette rponse impulsionnelle est chantillonne pour fournir la rponse impulsionnelle


du filtre numrique :
( )
C E
E E C E
C E
sin 2. .F .n.T
h(n) T .g(n.T ) 2.F .T .
2. .F .n.T

= =

Pour
E
C
F
F
10
= , on obtient numriquement :
sin n.
5
h(n) 0, 2.
n.
5
| |
|
\ .
=

Deux problmes surgissent :
1. la rponse impulsionnelle est infinie. Pour la rendre finie, on tronque cette
rponse (fentre rectangulaire) ; voir TP : on ne prend que 17 chantillons,
de n = - 8 n = + 8.
2. le filtre nest pas causal : il rpond avant limpulsion. Il nest donc pas
ralisable physiquement. Pour le rendre causal (et donc ralisable), on
translate cette rponse de 8 chantillons : h(-8) devient h(0), h(-7) devient
h(1) h(8) devient h(16).
Lensemble des oprations de synthse est rsum page suivante.
Valeurs des coefficients :
k 0 1 2 3 4 5 6 7 8
a
k
-0.037841 -0.043247 -0.031183 0 0.046774 0.10091 0.15137 0.1871 0.2
k 9 10 11 12 13 14 15 16
a
k
0.1871 0.15137 0.10091 0.046774 0 -0.031183 -0.043247 -0.037841
Remarque : on retrouve la proprit h(k) = h(16 - k) ; largument variera de faon linaire,
traduisant un retard de 8.T
E
(volontairement introduit pour rendre le filtre
ralisable)
4
Synthse dun filtre passe-bas idal (F
C
= F
E
/10) : chantillonnage temporel
Filtre analogique :
rponse impulsionnelle g(t)
( )
C
C
C
sin 2 .F .t
g(t) 2.F .
2 .F .t

Echantillonnage de la rponse
impulsionnelle :
E E
h(n) T .g(n.T ) =
Fentre w(t) ou w(n).
(limitation du nombre dchantillons)
Rponse impulsionnelle limite un
nombre fini dchantillons :
h(n).w(n)
Dcalage
(filtre causal, cest dire ralisable
physiquement)
g(t)
t
h(n)
n
w
t
1
h(n)
h(n)
n
n
5
-4- Echantillonnage en frquence
On dcide dchantillonner en frquence
anal
G ( j. ) . On dfinit donc la suite :
E
anal
H(k) G j.k.
N
| |
=
|
\ .
o N est le nombre dchantillons. En reprenant le mme exemple que prcdemment
N = 17, H(0) H( 1) H(1) 1et H(2) H( 2) ... H(8) H( 8) 0 = = = = = = = =
On peut en dduire, par transformation de Fourier discrte (TFD), les valeurs de la
rponse impulsionnelle :
2.
N/ 2
j. .k.n
N
k N/ 2
1
h(n) . H(k).e
N

=
=

Dans notre cas :
2. 2.
j. .n j. .n
17 17
1 1 2.
h(n) . 1 e e . 1 2.cos .n avec 8 n 8
17 17 17

| |
( | |
= + + = +
| | (
\ .
\ .
Enfin, pour rendre ce filtre ralisable physiquement, on translate cette rponse
impulsionnelle de 8 chantillons. Lensemble de ces oprations est rsum page suivante.
La figure ci-dessous indique la rponse en frquence de chaque filtre.
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5
0
0.2
0.4
0.6
0.8
1
f/F
E
|
G
N
u
m
(
j
.

)
|
Filtre idal analogique
Echantillonnage temporel
Echantillonnage en frquence
Echantillons H(k)
6
Synthse dun filtre passe-bas idal (F
C
= F
E
/10) : chantillonnage en frquence
Rponse en frquence du filtre
analogique prototype
anal
G ( j. )
Echantillonnage en frquence :
E
anal
H(k) G j.k.
N
| |
=
|
\ .
Transforme de Fourier Discrte :
2.
N/ 2
j. .k.n
N
k N/ 2
1
h(n) . H(k).e
N

=
=

Dcalage
(filtre ralisable physiquement)
anal
G
f
H(k)
k
h(n)
h(n)
n
n
7
-5- Amlioration : notion de fentre
Si on reprend lexemple de lchantillonnage temporel, la rponse harmonique
prsente des ondulations dans la bande passante et dans la bande attnue. La rponse
impulsionnelle a t tronque brutalement ; son spectre est donc tendu et ne respecte pas le
thorme de Shannon. Nous retombons dans les problmes de repliement de spectre. Afin de
limiter ces effets, on ralise une troncature en douceur en affectant les coefficients
a
k
= h(k) dun facteur de pondration (voir le chapitre sur la FFT).
Mthode rsume :
E E
N
k
Num
k 0
g(t) h(n) T .g(n.T )
h '(n) h(n).w(n) ( w(n) : facteurs de pondration)
dcalage pour que le filtre soit ralisable
H (z) h '(k).z

=
=
=

Exemple : fentre de Hamming :


n
w(n) 0, 54 0, 46.cos 2.
N
sin n.
n 5
h '(n) 0, 2. . 0, 54 0, 46.cos 2.
sin n.
17
5
n.
h(n) 0, 2.
5
n.
5
| |
= +
|
| |
\ .

|
( | |
\ .
| |
= +
`
| (
|

\ .
\ .
=

)
Aprs dcalage de 8 chantillons, on obtient le tableau suivant :
k 0 1 2 3 4 5 6 7 8
h(k) -0.0378 -0.0432 -0.0312 0 0.0468 0.1009 0.1514 0.1871 0.2000
h(k) -0.0033 -0.0064 -0.0082 0 0.0272 0.0752 0.1332 0.1813 0.2000
k 9 10 11 12 13 14 15 16
h(k) 0.1871 0.1514 0.1009 0.0468 0 -0.0312 -0.0432 -0.0378
h(k) 0.1813 0.1332 0.0752 0.0272 0 -0.0082 -0.0064 -0.0033
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5
0
0.2
0.4
0.6
0.8
1
f/F
E
|
H
N
u
m
(
j
.

)
|
La figure ci-contre
permet de comparer
les deux rsultats :
fentre rectangulaire
et fentre de
Hamming
Filtre analogique
fentre rectangulaire
fentre de Hamming
8
-6- Intrts et limites des filtres RIF
Intrts : 1) les filtres RIF sont toujours stables
2) on peut facilement raliser des filtres RIF phase linaire
Inconvnients : on arrive rapidement des filtres dordre lev (voir les
exemples ci-dessus : N = 17). Les calculs sont donc longs. Ces
filtres sont rapidement limits en frquence (F
E
limite)
III/ Synthse des filtres R.I.I.
-1- Les diffrentes mthodes
Il existe de nombreuses mthodes de synthse des filtres RII, suivant le critre quon
simpose :
rponse temporelle impose.
* rponse impulsionnelle mthode dinvariance impulsionnelle
* rponse indicielle mthode dinvariance indicielle (cette mthode a t
utilise pour raliser en TP AU le PID numrique, la consigne tant souvent
un chelon)
simulation numrique dune quation diffrentielle
* mthode dEuler
* mthode des trapzes
rponse en frquence impose : transformation bilinaire
Pour illustrer ces mthodes, on cherchera raliser un filtre numrique partir dun
filtre analogique prototype de fonction de transfert
anal
1
G (p)
1 .p
=
+
, avec = T
E
(systme dj pris comme exemple dans la premire partie)
-2- Invariance impulsionnelle
Cette mthode est rsume ci-dessous :
E
E
t
Transforme de Laplace
anal inverse
n
T
Echantillonnage E
E E
Transforme en Z E
T
1
1 1
G (p) g(t) .e . (t)
1 .p
T
h(n) T .g(n.T ) . e .u(n)
T 1
H(z) .
1 e .z

= =
+
| |
= =
|

\ .
=


Remarque : G
anal
(p) possde un ple (valeur de p rendant G
anal
(p) infini) :
1
p =

H(z) possde un ple :


E
E
T
T .p
z e e

= = , o p est le ple de G
anal
(p).
9
-3- Invariance indicielle
E
E
anal anal
t
Laplace
n.T
Echantillonnage
Transforme en Z
T 1 1
1
1 1 1
G (p) Y(p) G (p). (p) .
1 .p p 1 .p
y(t) 1 e . (t)
y(n) 1 e .u(n)
1 1 1
Y(z) H(z).U(z) H(z).
1 z 1 z
1 e .z

= = =
+ +
| |
=
|
\ .
| |
=
|
\ .
= = =

On obtient donc lexpression de H(z) :


( )
E
E E
T
1
1
1
T T
1 1
1 e .z
1 z
H(z) 1 z .Y(z) 1
1 e .z 1 e .z




| |

\ .
= = =

-4- Mthode dEuler : approximation de la drive
Un filtre analogique est dfini par sa fonction de transfert G
anal
(p) :
m
0 1 m
anal n
1 n
a a .p ... a .p
G (p)
1 b .p ... b .p
+ + +
=
+ + +
ou, ce qui est quivalent, par lquation diffrentielle :
n m
1 n 0 1 m n m
dy d y dx d x
y b . ... b . a .x a . ... a .
dt dt dt dt
+ + + = + + +
Le problme consiste simuler sous forme numrique cette quation diffrentielle.
Considrons donc un drivateur :
( )
t 0
x(t) x t t
dx
y lim
dt t


= =

Si T
E
est petit , on pourra assimiler t T
E
; on aura donc :
( )
E
E
x(t) x t T
dx
y(t)
dt T

=
En crivant cette relation linstant t = n.T
E
, on obtient :
E
E
t n.T E
dx x(n) x(n 1)
y(n.T ) y(n)
dt T
=

= =
et en prenant la transforme en Z de chaque membre :
1
E
1 z
Y(z) .X(z)
T

=
10
En rsum :
E
1
E
1
anal Num
E
dx x(n) x(n 1)
Equation temporelle : y Rcurrence : y(n)
dt T
1 z
Transforme de Laplace : Y(p) p.X(p) Transforme en z : Y(z) .X(z)
T
1 z
G (p) p H (z)
T


= =

= =

=
On passe de G
anal
(p) H
Num
(z) en remplaant p par
1
E
1 z
T

.
Exemple :
1
E
1 z
p
T
anal Num 1
1
E E
E
E
1 1 1 1
G (p) H (z) .
1 z 1 .p
1
1 .
T T
T
1 .z
1
T

= = =

+
+
+


+
Remarques
1. On a fait le parallle transforme de Laplace - transforme en Z en utilisant
lidentit :
E
T .p
z e = .
( )
E
1
T .p 1
E E E
E
1 z
Si T .p 1:1 z 1 e 1 1 T .p T .p soit p
T



= = = . La
mthode dEuler est une approximation au premier ordre de lidentit
E
T .p
z e = . On conoit facilement que cette approximation est grossire pour
les drives seconde, troisime Il faut que x(t) varie peu sur une
priode dchantillonnage.
2. Considrons un intgrateur analogique :
anal
1
G (p)
p
= . Son quivalent
numrique par la mthode dEuler est :
E
Num 1 1
E
T 1
H (z)
1 z 1 z
T

= =

. En
revenant la rcurrence :
E
y(n) y(n 1) T .x(n) = .
x
t
0 T
E
2.T
E
(n-1).T
E
n.T
E
y(1)
(si y(0)=0)
y(2) - y(1)
y(n) - y(n - 1)
Mthode dEuler
=
approximation dune
intgrale par une somme de
Darboux
11
-5- Mthode des trapzes
On peut amliorer le calcul dune intgrale en utilisant la mthode des trapzes :
La mthode est rsume ci-dessous :
Laplace
anal
1
1
E
1
Transforme en Z E
E Num 1
dy 1
Equation temporelle : x G (p)
dt p
2 1 z
p .
T 1 z
T x(n) x(n 1) 1 z
Rcurrence : y(n) y(n 1) T . H (z) .
2 2 1 z

= =

=
+
+ +
= =

On passe de G
anal
(p) H
Num
(z) par la transformation
1
1
E
2 1 z
p .
T 1 z

=
+
Exemple :
1
anal Num anal 1
E
1
1
E
1
1
E E
E
1 2 1 z
G (p) H (z) G p .
1 .p T 1 z
1
2 1 z
1 . .
T 1 z
1 1 z
.
1 2. 2. 1
T T
1 .z
2. 1
T

| |
= = =
|
+ +
\ .
=

+
+
+
=

+


+
x
t
(n-1).T
E
n.T
E
E
x(n) x(n 1)
T .
2
+
E
E
n.T
E
(n 1).T
dy
Si x :
dt
x(n) x(n 1)
x(t).dt T .
2
y(n) y(n 1)

=
+

12
Remarques
1. ( ) ( )
E
1
2 3
E E E 1
E
E
T .p
1
2 1 z 1 1
2
p . z 1 T .p . T .p . T .p
T .p
T 1 z 2 4
1
2

= = + + +
+

.
Lidentit
E
T .p
z e = donne : ( ) ( )
2 3
E E E
1 1
z 1 T .p . T .p . T .p
2 3!
+ + + . La
mthode des trapzes est une approximation au deuxime ordre de la
relation
E
T .p
z e = , alors que la mthode dEuler nest valable quau premier
ordre.
2. Considrons un drivateur analogique ;
Laplace
anal
1
Tranforme en Z
Num inverse 1
E E
dx
y G (p) p
dt
2 1 z y(n) y(n 1) x(n) x(n 1)
H (z) .
T 1 z 2 T

= =

+
= =
+
-6- Comparaison des diffrentes mthodes de synthse
Les figures des pages suivantes permettent de comparer les rponses impulsionnelles,
indicielles et harmoniques des 4 filtres numriques . Pour
E
T = :
Invariance impulsionnelle :
1
1
H(z)
1 0, 36788.z

Invariance indicielle :
1
1
0, 63212.z
H(z)
1 0, 36788.z

Mthode dEuler :
1
1 1
H(z) .
1
2
1 .z
2

=

Mthode des trapzes :


1
1
1 1 z
H(z) .
1
3
1 .z
3

+
=

x
t
(n-1).T
E
t
0
n.T
E
Le thorme des accroissements finis dit que :
| |
0
0 E E
0
t E
t (n 1).T ; n.T
dx x(n) x(n 1)
tel que : y(t )
dt T


= =
Lapproximation consiste dire que :
0
y(n) y(n 1)
y(t )
2
+

(x(t) assimil un arc de parabole)


13
REPONSES IMPULSIONNELLES
0 1 2 3 4 5 6
0
0.5
1
1.5
0 1 2 3 4 5 6
0
0.2
0.4
0.6
0.8
1
0 1 2 3 4 5 6
0
0.2
0.4
0.6
0.8
1
0 1 2 3 4 5 6
0
0.2
0.4
0.6
0.8
1
0 1 2 3 4 5 6
0
0.2
0.4
0.6
0.8
1
0 1 2 3 4 5 6
0
0.2
0.4
0.6
0.8
1
0 1 2 3 4 5 6
0
0.2
0.4
0.6
0.8
1
0 1 2 3 4 5 6
0
0.2
0.4
0.6
0.8
1
REPONSES INDICIELLES
Invariance impulsionnelle
Invariance impulsionnelle
Invariance indicielle
Invariance indicielle
Mthode dEuler
Mthode dEuler
Mthode des trapzes
Mthode des trapzes
14
REPONSES HARMONIQUES
Si on sintresse au rgime harmonique, en basse frquence (f 0,15.F
E
), la mthode
des trapzes ou linvariance indicielle donnent, pour le gain, des rponses comparables au
premier ordre analogique ; mais seule la mthode des trapzes donne des rsultats
comparables au premier ordre analogique pour le gain et largument.
-7- Transformation bilinaire
Il sagit dune amlioration de la mthode des trapzes.
7.1. Distorsion de laxe des frquences
On se pose le problme suivant : connaissant la rponse en frquence du filtre
analogique prototype (courbes
| |
anal A A anal A A
G ( j. ) f ( ) et Arg G ( j. ) g( ) = = , o
A
dsigne la pulsation du signal lentre du filtre analogique), peut-on obtenir rapidement les
courbes
| |
Num N N Num N N
H ( j. ) f '( ) et Arg H ( j. ) g'( ) = = o H
Num
est la fonction de
transfert du filtre numrique obtenu la mthode des trapzes et
N
la pulsation du signal
lentre du filtre numrique ?
N E
N E
j. .T 1
A j. .T 1
E E
2 1 z 2 1 e
p . j. .
T 1 z T 1 e



= =
+ +
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5
0
0.5
1
1.5
|G
anal
(j.)| ou |H
Num
(j.)|
f/F
E
filtre analogique
invariance impulsionnelle
invariance indicielle
mthode d'Euler
mthode des trapzes
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5
-180
-135
-90
-45
0
f/F
E
Arguments
15
Avant tout calcul, on peut remarquer que :
N E
N E
j. .T
A N
j. .T
E
A N E N
0 e 1 0
e 1 .T
2



Autrement dit, toute la gamme des frquences analogiques ( de 0 l ) est ramene sur la
gamme des frquences numriques (de 0
E
F
2
) : on vite ainsi les problmes de repliement de
spectre.
Correspondance :
E
N
N E
N E
T
j. .
2
j. .T
A j. .T
E E
e
2 1 e 2
j. . .
T 1 e T


= =
+
E E
N N
E
N
T T
j. . j. .
2 2
T
j. .
2
. e e
e


| |

|
\ .
E E
N N
E
N
T T
j. . j. .
E E
2 2
N
T
2.j.sin .
2 2
.
T T
2.cos .
. e e
2

| |

|
\ .
=
| |
| |

| +
|
\ .
\ .

E E E E
A N N A
T T T T
. tan . . arctan .
2 2 2 2
| | | |
= =
| |
\ . \ .
(lutilisation de la fonction arctan ne pose ici aucun problme, car
E
N
T
. 0 ;
2 2




)
La figure ci-dessous indique la construction permettant de passer de la rponse en
frquence du filtre analogique la rponse en frquence du filtre numrique.
anal A
G ( j. )
A

E
/2
Num N
H ( j. )
Num anal
H G =
E
N A
E
T 2
.arctan .
T 2
| |
=
|
\ .
Transformation bilinaire :
construction de la rponse
en frquence du filtre
numrique partir de la
rponse du filtre analogique
prototype
16
7.2. Exemple
On veut raliser un filtre numrique de pulsation de coupure :
CN
E
1 1
T
= =

Comment choisir le filtre prototype de fonction de transfert


anal
CA
1
G (p)
p
1
=
+

?
Autrement dit, comment choisir
CA
?
Pour tenir compte de la distorsion de laxe des frquences, on choisira :
CN E
CA
E E
.T 2 2 1
. tan . tan
T 2 T 2
| | | |
= =
| |
\ . \ .
puis on applique la transformation bilinaire :
anal Num 1
E
E
1
E
1
Num
1
1 1
G (p) H (z)
T 1
T 2 1 z 1
1 p. .
1 . . .
1 2 1 T 1 z 2
tan
tan
2
2
1
tan
1 z 2
H (z) .
1 1
1 tan 1 tan
2 2
1 .z
1
1 tan
2

= =

+
+
| |
+ | |
|
|
\ .
\ .
| |
|
+
\ .
=
| | | |
+
| |
\ . \ .

| |
+
|
\ .
La rponse en frquence est reprsente ci-dessous
10
-1
10
0
-10
-8
-6
-4
-2
0
|G(j.)|et |H(j.)|
.T
E
10
-1
10
0
-80
-60
-40
-20
0
.T
E
Arg[G(j.)] et Arg[H(j.)]
-3 dB
- 45
H(z) obtenue par transformation bilinaire
E
1
G(p)
1 T .p
=
+