Vous êtes sur la page 1sur 20

Physique applique

Filtrage numrique

0 dB
- 10
- 20
- 30
- 40
- 50
- 60
- 70

6 Hz

7 Hz

8 Hz

9 Hz

10 Hz

Filtre passe-bande numrique

Filtrage numrique

jean-philippe muller

Sommaire

1- Transforme en z dune squence binaire


2- Transformes en z des fonctions usuelles
3- Transforme en z ou transforme de Laplace ?
4- Transmittance en z
5- Exemple de synthse dun filtre numrique
6- Structure gnrale dun filtre numrique
7- Algorithme de calcul et transmittance
8- Exemple de passage de lalgorithme T(z)
9- Exemple de passage de T(z) lalgorithme
10- Les deux familles de filtres numriques
11- Stabilit dun filtre numrique
12- Rponse harmonique
13- Exemple de rponse harmonique
14- Synthse par la transforme bilinaire
15- Outils de synthse de filtres FIR
16- Outils de synthse de filtres IIR
17- Exemple de ralisation de filtre numrique

Filtrage numrique

jean-philippe muller

1- Transforme en z dune squence binaire


Soit une squence numrique xn constitue des valeurs du signal x(t) chantillonn aux instants t=0, Te, 2Te ...
xn
x2

x3

x1

x4
x5

x0

NB : on suppose dans tout ce cours


que le signal x(t) est nul avant t = 0.
temps
Te

2Te

3Te

4Te

5Te

On appelle transforme en z de la squence numrique xn le polynme X(z) dfini par la relation :

X(z)= x0 + x1.z1+ x2.z2+...+ xn.zn+...


Prenons quelques exemples simples :
squence impulsion unit
xn = 0 avant t = 0

X(z)=1

xn = 1 t = 0

xn = 0 Te, 2Te ...

squence chelon unit


xn = 0 avant t = 0
xn = 1 t = 0, Te, 2Te ...

1
t

Filtrage numrique

X(z)=1+1.z1+1.z2+...+1.zn+...= 1 1
1 z

jean-philippe muller

2- Transformes en z des fonctions usuelles


dans quelques cas particuliers simples, la transforme en z se calcule directement partir de sa dfinition
pour tous les autres cas, on dispose de tables donnant les transformes en z des signaux usuels

f(t)

F(p)

F(z)

(t)

U(t)

1
p

z
z1

a.t

a
p2

a.Te.z
(z1)2

1
p+a

z
zeaTe

a
p( p + a )

z(1eaTe)
(z1)(zeaTe)

p+a
( p + a) 2 + b 2

z(zeaTecosbTe)
z 2 2zeaTe cosbTe+e2aTe

b
( p + a) 2 + b 2

zeaTe sinbTe
z 2 2zeaTe cosbTe+e2aTe

at

1 e

at

e at cos(bt )

at

sin(bt )

Filtrage numrique

jean-philippe muller

3- Transforme en z ou transforme de Laplace ?


En ralit, cette transforme en z nest rien dautre quune transforme de Laplace cache :
le signal chantillonn x*(t) peut scrire comme une somme dimpulsions de Dirac retardes et damplitudes variables :

x*(t)= x0.(t)+ x1.(t Te)+ x2.(t 2Te)+...+ xn.(t nTe )+...


la transforme de Laplace de x*(t) scrit alors :

z=eTep

si on pose

X(z)= x0.1+ x1.1eTep + x2.1e2Tep +...+ xn.1enTep +...

on retrouve la dfinition de la transforme en z :

X(z)=x0 + x1.z1+ x2.z2+...+ xn.zn +...

La transforme en z dun signal a donc les mmes proprits mathmatiques que la transforme de Laplace.
xn
x2

x3

x1

x4
x5

x0

X(z)
Te

2Te

3Te

4Te

z=eTep

X*(p)

5Te

un signal x(t) analogique continu a une transforme de Laplace X(p)


un signal chantillonn x*(t) a une transforme en z X(z) et une transforme de Laplace X*(p) quon utilise rarement
on passe facilement de X*(p) X(z) par un simple changement de variable, la transforme en z X(z) tant moins lourde crire que X*(p)
il ny a pas de passage simple possible entre X(p) et X*(p), mais il existe des tables permettant de passer de X(p) X*(p) et X(z)

Filtrage numrique

jean-philippe muller

4- Transmittance en z dun filtre numrique


Soit un systme qui une squence dentre xn restitue en sortie une squence yn :

x0, x1, x2 ...


X(z)

filtre
numrique

y0, y1, y2
Y(z)

la transmittance T(z) du filtre


est alors dfinie par :

T(z)=

Y(z)
X(z)

Puisque les transformes X(z) et Y(z) sont des polynmes contenant les puissances ngatives de z, la transmittance sera un rapport de deux
polynmes en puissances ngatives de z.

Exemple de filtre numrique :


passe-bande de Chebychev
6me ordre
frquence centrale : fo = 0,25.fe
largeur B = 0,1.fe
3 cellules 2me ordre en cascade
transmittance T(z)
T(z) = H1(z).H2(z).H3(z)

1.z2
H1 (z)=0,225
1+0,7233.z2

1.z2
H2(z)=0,225
1+0,56.z1+0,864.z2
Filtrage numrique

1.z2
H3 (z)=0,225
10,56.z1+0,864.z2
jean-philippe muller

5- Exemple de synthse dun filtre numrique


Exemple : on se propose de trouver la transmittance dun filtre passe-haut numrique qui rpond un chelon comme un filtre passe-haut
analogique du 1er ordre de constante de temps 10 ms soit de frquence de coupure fc = 15,9 Hz

passe-haut
analogique

Filtre analogique

X(p)= 1
p

x(t)=1

Y(p)
p
T(p)=
=
X(p) p+100

y(t)=1e100.t

Y(p)=

1
p+100

passe-haut
numrique

1
Filtre numrique

t
Te

x(nTe)=1

fe = 1 kHz
Te = 1 ms

X(z)= z
z1

T (z)=

y(nTe)=1.e100.n.Te=1.e0,1n

Y(z)=

z
z0,905

Y(z)
= z 1
X(z) z 0,905

Remarques :
il est simple de trouver la transmittance dun filtre numrique qui une entre donne rpond par une sortie de forme particulire
si lentre est une impulsion, cette technique sappelle la mthode de lidentification de la rponse impulsionnelle
si lentre est un chelon, cette technique sappelle la mthode de lidentification de la rponse indicielle

Filtrage numrique

jean-philippe muller

6- Structure gnrale dun filtre numrique


Un filtre numrique calcule la valeur numrique de la sortie yn linstant t = nTe partir des chantillons prcdents de la sortie et des
chantillons prcdents de lentre, plus celui qui vient dtre appliqu sur lentre xn :

yn =a1.yn1+a2.yn2+...+a p.yn p +b0.xn +b1 .xn1+...+bq.xnq


Cette formule de calcul ou algorithme conduit naturellement la structure gnrale dun filtre numrique :
Registre dcalage

xn1

xn

b0

b1

a1

yn1

xn2

b2

a2

yn2

xn 3

b3

a3

...

bq

yn3

xnq

ap
...

Horloge Te

yn p

yn

Horloge Te

Registre dcalage

Remarques :
toutes les Te secondes, les valeurs sont dcales dans les registres, multiplies par leur coefficient respectif et additionnes pour donner yn
cette structure peut tre ralise sous forme matrielle ( registres, multiplicateurs, additionneur) ou entirement logicielle
un filtre simple calcule la sortie partir de quelques chantillons seulement
au contraire, lalgorithme dun filtre sophistiqu peut compter jusqu une centaine de termes

Filtrage numrique

jean-philippe muller

7- Algorithme de calcul et transmittance T(z)


Lalgorithme permet de calculer la valeur de lchantillon de sortie yn en fonction des chantillons dentre et de sortie prcdents.
x0, x1, x2 ...

y0, y1, y2

T(z)

X(z)

Y(z)

yn =a1.yn1+a2.yn2+...+a p.yn p +b0.xn +b1 .xn1+...+bq.xnq


La transmittance T(z) permet de synthtiser le filtre, de tracer son diagramme de Bode et dtudier ses rponses une impulsion, un chelon ou
une entre quelconque.

Pour passer de lalgorithme, relatif au domaine temporel, la


variable z, on utilise la rgle de passage trs simple :

xni

X(z).zi

yni

Y(z).zi

z1
oprateur
retard

en utilisant cette rgle, lalgorithme se transforme en :

Y(z)=a1.Y(z).z 1+a2.Y(z).z 2+...a p.Y(z).z p +b0.X(z)+b1 .X(z).z 1+...+bq.X(z).z q


soit, aprs factorisation :

Y(z)(1a1.z1a2.z2...ap.zp)= X(z)(b0 +b1 .z1+...+bq.zq)

ce qui donne la transmittance en z du filtre :

b0 +b1 .z1+...+bq.zq
Y(z)
T(z)=
=
X(z) 1a1.z1a2.z2...ap.z p
Filtrage numrique

jean-philippe muller

8- Exemple de passage de lalgorithme T(z)


On souhaite tablir la transmittance T(z) du filtre qui effectue la moyenne glissante sur les 4 derniers chantillons arrivs sur lentre :

yn = xn + xn1+ xn2+ xn3 =0,25.(xn + xn1+ xn2+ xn3)


4

son algorithme scrit :

partir de lalgorithme, il est facile de calculer manuellement les sorties aux instants Te, 2Te pour observer le comportement du filtre :

xn

x0, x1, x2 ...


x2

x5

y0, y1, y2
filtre
numrique

yn
5

x4
y4

y0 = 0,25.x0 = 0
x3
1

y2

y2 = 0,25.(x2+x1+x0) = 1,5
y3 = 0,25.(x3+x2+x1+x0) = 2

t
Te

y3

y1 = 0,25.(x1+x0) = 0,25

x1

5Te

ce qui donne la transmittance en z du filtre :

y1

y4 = 0,25.(x4+x3+x2+x1) = 2,75
y5 = 0,25.(x5+x4+x3+x2) = 2,75

Exemple de signal dentre

en utilisant la rgle de passage au domaine


des z , lalgorithme se transforme en :

y5

t
Te

5Te

Sortie filtre

Y(z)=0,25.(X(z)+ X(z).z 1+ X(z).z 2+ X(z).z 3)


1+ z 1+ z 2+ z 3
Y(z)
3

1
2

T(z)=
=0,25.(1+ z + z + z )=
4
X (z )
Filtrage numrique

jean-philippe muller

9- Exemple de passage de T(z) lalgorithme


On souhaite trouver lalgorithme de calcul du filtre caractris par la transmittance T(z) suivante :

x0, x1, x2 ...

y0, y1, y2

1+2.z1+ z3
T(z)=
2+ z1

la transmittance est le rapport entre la transforme en z de la sortie et la transforme en z de lentre :

1+2.z1+ z3 Y(z)
T(z)=
=
2+ z1
X(z)

ce qui donne , en isolant Y(z) :

en utilisant la rgle de passage au domaine


temporel, lalgorithme scrit :

soit, enfin :

soit , en faisant le produit en croix :

(1+2.z1+ z3).X(z)=(2+ z1).Y(z)

2.Y(z)=Y(z).z1+ X(z)+2.X(z).z1+ X(z)z3

2.yn =yn1+ xn +2.xn1+ xn2

yn =0,5.yn1+0,5.xn + xn1+0,5.xn2
Filtrage numrique

jean-philippe muller

10- Les deux familles de filtres numriques


Suivant la forme de lalgorithme, on distingue deux grandes familles de filtres qui ont chacune leurs proprits particulires :
filtres pour lesquels la sortie ne dpend que des entres et pas des sorties
leur rponse une impulsion sannule au bout dun certain temps
ils sappellent filtres non rcursifs ou rponse impulsionnelle finie (FIR)
ils nont pas dquivalent analogique

Rponse indicielle

Rponse impulsionnelle

Filtre moyenne glissante

yn =1(xn + xn1+ xn2)


3

filtres pour lesquels la sortie dpend des entres et des sorties prcdentes
leur rponse une impulsion sannule au bout dun temps infini
ils sappellent filtres rcursifs ou rponse impulsionnelle infinie (IIR)

Rponse impulsionnelle

Rponse indicielle

Passe-bas du premier ordre

yn =0,5.yn1+0,25.(xn + xn1)

Filtrage numrique

jean-philippe muller

11- Stabilit dun filtre numrique


Comme pour les filtres analogiques, il est possible de prvoir la stabilit partir de la transmittance du systme.
Rappel : un systme de transmittance T(p) est stable si tous ses ples sont partie relle ngative.
Ce critre de stabilit reste valable pour les transmittances T*(p) des systmes chantillonns :

pi =ai + j.bi

un systme stable aura des ples pi partie relle ngative :

la valeur de z correspondant ce ple scrit :

avec

ai 0

zi =eTe.pi =eTe(ai + j.bi )=eTeai [cos(bi + j.sin(bi )]

si le systme est stable, le module de ce nombre complexe est tel que :

zi =eTeai 1

puisque

ai 0

Im

Im
ple
instable

instable

stable
stable

Re

Transmittance en p

Re

Transmittance en z

Critre de stabilit : un systme chantillonn de transmittance T(z) est stable si tous ses ples sont lintrieur du cercle unit.

Filtrage numrique

jean-philippe muller

12- Rponse harmonique dun filtre numrique


Pour reprsenter la courbe de gain et de phase dun filtre, il faut tudier sa transmittance complexe et il faut donc passer de T(z) T(jw) :

b +b .z1+...+bq.z
T(z)= 0 11
1a1.z a2.z2...ap.z p
q

z=eTep =e jTe

b0 +b1 .ejTe+...+bq.ejqTe
T(z)=
1a1.e jTea2.e j2Te...ap.e jpTe

lexpression obtenue pour la transmittance comporte des exponentielles complexes


elle est donc assez lourde manipuler mathmatiquement
le calcul du module et de la phase de la transmittance mne souvent des calculs fastidieux
des logiciels de simulation permettent darriver rapidement la courbe de rponse

Exemple de simulation :
algorithme du filtre

fo

Module de la transmittance
dun filtre passe-bande

yn =1,5.yn10,85.yn2+ xn
filtre passe-bande

Ao

frquence dchantillonnage fe = 11 kHz


frquence centrale fo = 1,1 kHz

amplification maximale Ao = 11,2

fe/2

bande passante B = 200 Hz


coefficient de qualit Q = fo/B = 5,5

Filtrage numrique

jean-philippe muller

13- Exemple de rponse harmonique

yn = xn + xn1
2

On sintresse un filtre moyenneur sur deux valeurs, la frquence dchantillonnage tant de fe = 1 kHz :

1+ z1
T(z)=
2

z=eTep =e jTe

1+ejTe 1+cos(Te) jsin(Te)


T (j)=
=
2
2

on travaille plus volontiers avec la frquence f :

f
f
1+cos(2 ) jsin(2 )
fe
fe
T (jf)=
2

Limite
dutilisation

module
1
0,707

le module de la transmittance scrit :

0
fc

fe/2

1+cos(2 f ) +sin(2 f )2
f

2+2cos(2 )
fe
fe

fe
=
T(jf) =
2
2

fe

f
Diagramme de Bode du
filtre moyenneur

phase
fe/2
0

- 90

et largument :

sin(2 f )

fe
=arg(T (jf))=arctg
f
1+cos(2 fe)

la bande des frquences utiles va de 0 fe/2 = 500 Hz


le filtre est un filtre passe-bas
la frquence de coupure dtermine graphiquement est denviron fc = 250 Hz
la courbe de phase est linaire

Filtrage numrique

jean-philippe muller

14- Synthse par la transforme bilinaire


Il existe diffrentes techniques possibles pour raliser des filtre numriques qui rpondent une spcification donne :
nous avons dj vu la mthode par identification de la rponse indicielle ou impulsionnelle
la mthode de la transforme bilinaire permet de raliser le filtre numrique quivalent un filtre analogique donn
dans la pratique, les filtres sont labors par des logiciels de synthse auxquels il suffit de fournir les caractristiques souhaites
Mthode de la transforme bilinaire :
on veut raliser un filtre ayant une frquence caractristique fo

Ao

on calcule une pulsation fictive a = tg(fo/fe)


on crit T(p) du filtre ayant comme pulsation caractristique a
on fait p = (z-1)/(z+1) pour obtenir T(z)

0,707.Ao
Exemple : synthse dun filtre passe-bas du premier ordre
fc

frquence de coupure fo = 1 kHz


frquence dchantillonnage fe = 11 kHz
pulsation fictive a = tg(fo/fe) = 0,2936265
T(p) scrit :

T(z) scrit :

do lalgorithme :

T(p)= 1 = 1
p 1+3,4.p
1+
a

1+ z1
1
T(z)=
= z+1 =
1
1+3,4. z1 4,4z2,4 4,42,4.z
z+1

la bande des frquences utiles va de 0 fe/2 = 5500 Hz


le filtre est un filtre passe-bas
la frquence de coupure est denviron fc = 1000 Hz
la transmittance en continu est de Ao=1

yn =0,545.yn1+0,2273.xn +0,2273.xn1
Filtrage numrique

jean-philippe muller

15- Outils de synthse de filtres FIR


Ces outils crits par J. Taft permettent de synthtiser des filtres passe-bas, passe-haut, passe-bande et rjecteurs jusquau 36me ordre.
tous les filtres obtenus sont des filtres non rcursifs ou rponse impulsionnelle finie
pour ces filtres la sortie un instant donn ne dpend que de lentre et des entres prcdentes
ils sont toujours stables
x(n)

Algorithme

yn =H(0).xn + H(1).xn1+...+ H(i).xni

x(n-1)

H(1)

H(0)

Transmittance

z1

z1
H(2)

x(n-q)

H(q)

H(q-1)

T(z)= H(0)+ H(1).z 1+...+ H(i).z i


y(n)

Filtres classiques

Passe-bas

Passe-haut

Passe-bande

Coupe-bande

+ faible ondulation
- phase non linaire, attnuation moyenne

lopass

hipass

bapass

brpass

+ meilleure attnuation
- ondulations plus fortes

lopassN

hipassN

bapassN

brpassN

+ phase linaire, bonne attnuation


- transitions assez douces

lopassW

hipassW

bapassW

brpassW

+ phase linaire, trs bonne attnuation

lopassE

hipassE

bapassE

brpassE

retard et
en peigne

rjecteur
dharmoniques

drivateur

Filtres spciaux

Frquence normalise : Fc = fc/fe (passe-bas, passe-haut)

et

Fc = f0/fe (passe-bande, rjecteur)

Filtrage numrique

jean-philippe muller

16- Outils de synthse de filtres IIR


Ces outils crits par J. Taft permettent de synthtiser des filtres du 2me au 12me ordre par mise en cascade de cellules du 2me ordre.
Pour une cellule du second ordre :
Algorithme :

yn =a1.yn1a2.yn2+G(b0.xn +b1 .xn1+b2.xn2)

Transmittance :

T(z)=G

b0 +b1 .z1+b2.z2
1+a1.z1+a2.z2

Exemple de ralisation en cellule biquad :


ne ncessite que 2 mmoires
structure peu sensible aux arrondis sur les coefficients

Type

Passe-bas

Passe-haut

Passe-bande

Coupe-bande

Butterworth : gain plat dans la


bande passante, coupure correcte

lobutter

hibutter

babutter

brbutter

Chebichev : ondulations de gain,


mais coupure plus raide

locheby

hicheby

bacheby

brcheby

Cauer : coupure trs raide,


ondulations de gain paramtrables

locauer

hicauer

bacauer

brcauer

Frquence normalise : Fc = fc/fe (passe-bas, passe-haut)

et

Fc = f0/fe (passe-bande, rjecteur)

Filtrage numrique

jean-philippe muller

17- Exemple de ralisation de filtre numrique

module de filtrage numrique


frquence maximale Fmax = 20 kHz
passe-haut, passe-bas, passe-bande, rjecteur
algorithmes de filtrage en mmoire Flash
interface pour programmation et afficheur LCD

Filtrage numrique

jean-philippe muller

Physique applique

Parapentistes au Markstein (Vosges)

FIN
Reproduction interdite sans autorisation pralable.

Filtrage numrique

jean-philippe muller

Vous aimerez peut-être aussi