You are on page 1of 23

CHAPITRE 6

SYNTHESE DES FILTRES


NUMERIQUES
Thomas W. Parks and James H. McClellan ont
marqu le traitement du signal au dbut des annes
70, alors que J. McClellan tait encore tudiant
Rice University (Houston, Texas), par l'invention
d'une technique d'approximation numrique de
filtres FIR phase linaire. Connue aujourd'hui sous
le nom d'algorithme de Parks-McClellan, ce procd
est trs largement utilis dans les systmes de
tlcommunications numriques.
R. Boite (1928-2002) et H. Leich (1941-),
professeurs mrites de la FPMs, ont fortement
contribu au dveloppement des techniques de
filtrage numrique au dbut des annes 80,
notamment par la publication de leur ouvrage "Les
filtres numriques" (Masson, Paris)




Avec la FFT, le filtrage numrique est un des outils majeurs du traitement du
signal. Si les proprits temporelles et frquentielles des filtres numriques
linaires ont t analyses aux Chapitres 1 et 2, il reste voir comment on les
approxime pour obtenir une rponse en frquence donne avec un filtre IIR (6.2)
ou un FIR (6.3) et comment on les synthtise (c.--d. comment on les
implmente en pratique). Nous commenons (6.1) par le cas particulier des
filtres du second degr, qui sont fort utiliss pour construire des filtres plus
complexes.
6.1 La cellule du second degr
Pour des applications peu exigeantes, on pourra utiliser un filtre d'ordre un,
deux, ou trois. Les proprits de ces filtres en fonction de leurs coefficients ont
t largement tudies dans la littrature, et sont rsume par exemple dans
l'article "The Swiss Army Knife of Digital Networks" de R. Lyons et A. Bell (IEEE
Signal Processing Magazine, Mai 2004, pp. 90-100).
2 SYNTHESE DES FILTRES NUMERIQUES
Nous nous contenterons ici d'tudier une cellule de base du second degr et deux
exemples d'application.
La transmittance rationnelle du second degr :
1 2
1 2
1 2
1 2
0
( )
1
b b z b z
H z
a z a z


+ +
=
+ +

(6.1)
caractrise une cellule biquadratique ou cellule du second degr, trs utilise en
pratique.
6.1.1 Stabilit
Lexpression (6.1) peut tre mise sous une forme utilise classiquement en
thorie des circuits analogiques :
0 1 2 0 1 2
1 2

( )
2
b z b z b b z b z b
H z
z a z a z z
+ + + +
= =
+ + + +

(6.2)
La stabilit impose des conditions sur la valeur des coefficients du dnominateur:
si
2
2 1
/ 4 a a > ( > ), les ples de H(z) sont complexes et il faut que l'on
ait
2
1 a < ( 1 < )
si
2
2 1
/ 4 a a , les ples sont rels. On obtient alors, aprs quelques
dveloppements partant du fait que le module des racines doit tre positif,
quil faut que
1 2
(1 ) a a + et
1 2
(1 ) a a + + soient positifs.
Ces conditions de stabilit sont illustres la Fig. 6.1.
b
2
1 2 -2 -1
1
ples complexes conjugus
ples rels
0 b
1
b
2
=b / 4
2
1
1
-
b
1
+
b
2
=
0 1
+
b
1+
b
2=
0

a
1
a
2
=a
1
/4
1+a
1
+a
2
=0 1-a
1
+a
2
=0
Ples complexes conjugus
Ples rels

Fig. 6.1 Domaine de stabilit (ordre 2)

6.1.2 Le rsonateur du second ordre
La transmittance (6.1) avec ples complexes situs dans le voisinage du cercle
unit, et dans laquelle
2
0 b = (ce qui correspond un seul zro, rel), caractrise
le rsonateur du second ordre (Fig. 6.2).
SYNTHESE DES FILTRES NUMERIQUES 3

p
2
p
1
Z
0
(Z)

Fig. 6.2 Ples et zros d'un rsonateur du second ordre
La fonction de transfert est donne par :
1 1
1 2 1 1
1 2 1 2
1 1
( )
1 . . (1 . ).(1 . )
bz bz
H z K K
a z a z p z p z


+ +
= =
+ +

avec
2
1,2 1 2
. 2 cos
j
p e a a

= = =
(6.3)
Le calcul de l'amplitude conduit alors :
2
2
2
2 2
( ) ( ) ( )
1 2 cos
.
1 2 cos( ) . 1 2 cos( )
j j
A H e H e
b b
K

=
+ +
=
+ + +


(6.4)
Si lon suppose que le zro est plac comme sur la Fig. 6.2
1
, on a cos b = , ce
qui conduit :
2
2 2
2 2
sin
( ) .
1 2 cos( ) . 1 2 cos( )
A K


=
+ + +


(6.5)
Comme on pouvait le prvoir en vertu de linterprtation gomtrique de la
rponse en frquence, cette fonction atteint un maximum pour = . Autour de
cette frquence, lallure de la rponse en frquence est surtout influence par le
premier facteur du dnominateur. Si on approxime le second facteur par
2
1 2 cos(2 ) + , la rponse en frquence est approximativement donne par :
2
2 2
2 2
sin
( ) . ( )
1 2 cos( ) . 1 2 cos(2 )
A K pour




+ +


(6.6)
Si de plus on suppose que est assez voisin de 1 (ce qui correspond au cas
dun filtre trs slectif), on peut mme crire:

1
Il nest pas indispensable davoir un zro pour crer une rsonance. On montre par contre que
lutilisation dun zro tel que sur la Fig. 6.2 conduit une filtre dont lamplitude de la rsonance est
indpendante de .
4 SYNTHESE DES FILTRES NUMERIQUES
2
2
2
(1 ) 0
1 2 0
1 2




+
+
(6.7)
Do :
2 2 2 2
2 2
2
1 2 cos(2 ) 1 2 cos 2 sin
2 (1 cos ) 2 sin
4 sin



+ = + +
+
=
(6.8)
Ce qui donne finalement :
2
2
2
( )
1 2 cos( ) .4
K
A

+

(si 1 )
(6.9)
Le maximum vaut alors :
2(1 ).
M
K
A

=


(6.10)
A()
2 2
f
f
e
/2 f
e
1
0
f

Fig. 6.3 Rponse en frquence d'un rsonateur du second ordre
La loi de l'amplitude en fonction de (ou de la frquence f) est reprsente la
Fig. 6.3
L'intervalle de frquences dans lequel A est suprieur 1/ 2 (la bande
passante 3 dB) se calcule comme suit :
2
2 2
2
1
( ) . 1
2 8. .
M
K
A A si

= = = (6.11)
Comme
2
cos 1 / 2 x x , il vient :
2 2 2 2 2 2
1 2 .(1 / 2) (1 ) x x x + + = + (6.12)
On en tire donc la relation :
2 2 2
( ).4 8 x x + = = (6.13)
c'est--dire
SYNTHESE DES FILTRES NUMERIQUES 5
2 2(1 )
2(1 ). / 2
e
radians
f F Hertz


= =
=
(6.14)

6.1.3 Le filtre coupe-bande du second ordre
La transmittance possdant deux zros sur le cercle de rayon unit et deux ples
proches de ces zros et de mmes arguments :
1 2
1 2 2
1 2cos .
( ) . 1 1
1 2 cos .
z z
H z K
z z





+
= = <<
+
(6.15)
caractrise un filtre destin liminer une composante spectrale de frquence
0
.
2
e
F
f

= (figure 4.18).
0
Z
1
Z
2
P
2
P
1

(Z)
|0P
1
|=

Fig. 6.4 Coupe-bande du second ordre (ples et zros)
La loi de l'amplitude est reprsente la Fig. 6.4. On peut montrer, par un
raisonnement similaire ce qui a t fait prcdemment, que lintervalle de
frquences autour de f
0
dans lequel l'amplitude est infrieure 1/ 2 (la bande
coupe 3 dB) vaut encore :
2 2(1 )
2(1 ). / 2
e
radians
f F Hertz


= =
=
(6.16)
6 SYNTHESE DES FILTRES NUMERIQUES
A()
f
f
c
/2




f

Fig. 6.5 Rponse en frquence d'un filtre coupe-bande
6.1.4 Implmentation d'une cellule du second degr
Nous avons prsent au Chapitre 1 une structure possible pour l'implmentation
de la rcurrence numrique d'un filtre rcursif (le plus gnral). Cette structure,
appele structure directe I (ou immdiate), implmente en fait B(z)/A(z) comme
la cascade de B(z) suivi de A(z) (Fig. 6.6). Ce n'est pas la seule structure
possible, et en pratique ce n'est pas celle qui est utilise le plus souvent.

Fig. 6.6 Structure directe I (dite immdiate)
Il est facile de trouver la structure dite directe II, en intervertissant l'ordre de
l'implmentation de A(z) et B(z) (Fig. 6.7). Il est clair que les valeurs w(k), w(k-
1), et w(k-2) apparaissant dans les parties gauche (A(z)) et droite (B(z)) de
cette structure sont identiques dans la partie A(z) et B(z). On peut donc en
pratique fusionner les lments dlais, ce qui divise par deux le nombre de dlais
ncessaires par rapport la structure directe I. Ce nombre de dlai est
minimum, d'o le nom de canonique pour cette structure.

SYNTHESE DES FILTRES NUMERIQUES 7
Fig. 6.7 Interversion de B(z) et A(z)

Fig. 6.8 Structure directe II (version finale)
Il est galement possible d'implmenter la mme rcurrence avec une structure
dite directe II transpose (Fig. 6.9). Le principe de la transposition a t tabli
par Mason, sur base d'une rgle simple, dite de Mason, pour le calcul de la
fonction de transfert d'un filtre :
( )
( )
1 ( )
i
i
j
j
P z
H z
B z
=


(6.17)
o P
i
(z) reprsente la fonction de transfert associ un parcours dans la
structure du filtre, et o B
j
(z) reprsente celle d'une boucle (les sommes sur i et
j s'tendent sur tous les parcours et toutes les boucles). On peut vrifier que les
structures prcdentes vrifient bien cette rgle.
Sur base de cette rgle, on peut toujours obtenir une structure dite transpose
partir d'une structure de base, en ralisant les oprations suivantes :
1. Remplacer les nuds de sommation par des nuds de dispersion, et
inversment
2. Inverser tous les sens de parcours
Applique la structure directe II, cette opration conduit la structure directe
II transpose. On notera que cette structure n'est autre que la structure directe I
dont on a dplac (et fusionn) les lments dlais des extrmits vers le centre
de la structure.
MATLAB implmente par dfaut la structure directe II transpose. D'autres
structures sont disponibles via la fonction df i l t
8 SYNTHESE DES FILTRES NUMERIQUES



Fig. 6.9 Structure directe II transpose
Le choix d'une structure ou d'une autre est pratique dict par un critre de bruit
de calcul (voir 6.2.4).
6.2 Approximation et synthse des filtres IIR
Le problme de l'approximation ayant largement t tudi dans le cadre des
filtres analogiques (cf. cours de Thorie des Circuits : Butterworth, Chebyshev,
Cauer, etc.), une des mthodes de conception consiste trouver des
transformations qui permettent de passer du domaine analogique (plan p) vers le
domaine numrique (plan z).
On suppose que la fonction de transfert d'un filtre analogique :
( )
( )
( )
a
N p
H p
D p
=
(6.18)
a t dtermine par l'une des mthodes classiques d'approximation des filtres
analogiques. On doit alors trouver une fonction de transfert numrique :
( )
( )
( )
B z
H z
A z
=
(6.19)
qui ait la mme rponse du filtre analogique sans en augmenter le degr, et en
assurant le maintient de la stabilit: les ples de H(z) doivent donc tre situs
l'intrieur du cercle unit.
Parmi les transformations existantes, on ne considrera que les deux plus
importantes : la transformation qui prserve la rponse impulsionnelle et la
transformation bilinaire.
6.2.1 La transformation qui prserve la rponse impulsionnelle
Si on veut un filtre numrique dont la rponse impulsionnelle h(n) soit une
version chantillonne de celle du filtre analogique h
a
(t) :
( ) ( )
a e
h n h nT = (6.20)
on peut videmment imposer:
0 0
( ) ( ) ( )
i i
a e
i i
H z h i z h iT z


= =
= =

(6.21)
SYNTHESE DES FILTRES NUMERIQUES 9
ce qui conduit tout naturellement un filtre FIR, dont la rponse en frquence
est la TFTD de h(n). Il faut donc, pour viter un recouvrement des images des
rponses en frquences du filtre analogique, chantillonner h
a
(t) avec une
priode d'chantillonnage respectant le thorme de Shannon.
L'implmentation d'un tel FIR pose cependant le problme de la longueur de la
suite h(n) : mme si on ne considre la rponse h
a
(t) que pout t=0t
max
(o t
max

est tel que h
a
(t>t
max
)<0.001*max(h
a
(t)), il reste que la condition de non
recouvrement conduit le plus souvent une suite h(n) trs longue, et la charge
de calcul est alors importante.
On peut heureusement respecter (6.21) en passant par un filtre IIR, nettement
moins gourmand en calcul. Considrons par exemple un filtre analogique d'ordre
un :
( )
a
A
H p
p a
=


(6.22)
Sa rponse impulsionnelle est donne par :
( )
at
a
h t Ae = (6.23)
On peut facilement obtenir h(n) par le filtre numrique suivant :
1
( )
1
e
aT
A
H z
e z

(6.24)
Ce principe peut tre gnralis en passant par une dcomposition en fractions
simples de (6.18) :
1
( )
N
i
a
i
i
A
H p K
p p
=
=


(6.25)
ce qui donne:
1
1
( )
1
i e
N
i
p T
i
A
H z K
e z

=
=

(6.26)
On obtient donc un filtre numrique de mme degr que le filtre analogique de
dpart, et dont la stabilit est bien entendu prserve par la transformation.
En pratique, on multiplie galement H(z) par T
e
pour compenser le fait que la
TFTD de h(n) ne correspond H
a
(f) qu' un facteur 1/T
e
prs :
1
1
( )
1
i e
N
i
e
p T
i
A
H z KT
e z

=
=

(6.27)
L'inconvenient de cette approche est que, si la rponse en frquence H
a
(f) n'est
pas ngligeable pour f>Fe/2, elle fait apparatre un recouvrement spectral qui
peut diminuer les performances du filtre.
Exemple 6.1
On cherche crer un filtre passe-bas numrique (F
e
=3000) par approximation de
Chebyshev de type I, qui respecte les spcifications suivantes :
10 SYNTHESE DES FILTRES NUMERIQUES

( ) H f (dB)
-1
1000 1200


-40
0
f (Hz)

On ralise l'approximation du filtre analogique et utilise la fonction i mpi nvar(N, D, Fe) :
Fe=3000;
[n, wn]=cheb1ord(2*pi *1000, 2*pi *1200, 1, 40, ' s' );
[N, D]=cheby1(n, 1, wn, ' s' );
[B, A]=i mpi nvar(N, D, Fe); %on mul ti pl i e aussi par Te

%Cal cul de l a rponse i mpusi onnel l e anal ogi que
[r, p, k]=resi due(N, D);
t=0: 1/ (5*Fe): . 02;
ha=real ([exp(t' *(p. ' ))*r]);

%Cal cul de l a rponse i mpusi onnel l e numri que
h=f i l ter(B, A, [1; zeros(49, 1)]);

%Comparai son des rponses i mpul si onnel l es
pl ot(t, ha);
hol d on;
stem(0: 1/ Fe: 49/ Fe, Fe*h, ' r. ' )

%Comparai son des pl es et zros
f i gure;
zpl ane(N, D)
f i gure
zpl ane(B, A)

%Cal cul des rponses en f rquence
[Ha, Wa]=f reqs(N, D, 2*pi *(1: 10: Fe));
[H, W]=f reqz(B, A, 1: 10: Fe, Fe);

%Comparai son des rponses en f rquence
f i gure;
pl ot(Wa/ (2*pi ), 20*l og10(abs(Ha)));
hol d on;
pl ot(W, 20*l og10(abs(H)), ' r: ' )

SYNTHESE DES FILTRES NUMERIQUES 11


On constate effectivement que le degr du filtre est conserv, ainsi que la rponse
impulsionnelle, et que la rponse en frquence est rendue priodique par l'chantillonnage
de cette rponse, ce qui rend le filtre lgrement moins efficace autour de Fe/2
6.2.2 La transformation bilinaire
Une transformation simple qui limine cet inconvnient est la transformation
bilinaire (ou homographique) dfinie par:
1
1
1 1
1 1
z p
p z
z p

+
= =
+
(6.28)
qui tablit une correspondance entre l'axe des imaginaires du plan p et le cercle
unit du plan z (Fig. 6.10).
12 SYNTHESE DES FILTRES NUMERIQUES
j
( p)

( z )
( = 0 )
( = )


Fig. 6.10 Correspondance p - z tablie par la transformation bilinraire
Par consquent, au demi-plan de gauche du plan p correspond l'intrieur du
cercle unit et au demi-plan de droite l'extrieur du mme cercle, l'axe
imaginaire tant transform en le cercle lui-mme (figure 4.21) : la stabilit est
prserve.
En particulier, on peut en effet vrifier que :
j
p j z e

= = (6.29)
On peut ainsi parler d'une correspondance entre la pulsation
a
du systme
temps continu et la pulsation rduite du systme temps discret: en effet,
pour p imaginaire pur, l'quation (6.28) devient :
2sin cos
1 1 2 sin
2 2
1 1 2 2cos
cos
2
tan( )
2
j j
a
j j
j
e e j
j
e e
j


+
= = =
+ + +
=
(6.30)
En consquence, si on calcule la fonction de transfert d'un filtre numrique H(z)
en partant d'une fonction de transfert analogique H
a
(p) en remplaant p par sa
valeur dans (6.28) :
1 1
(1 )/(1 )
( ) ( )
a
p z z
H z H p

= +
=
(6.31)
on aura :
( ) ( )
a a
H H = avec tan( )
2
a

= , ou 2arctan( )
a
= (6.32)
SYNTHESE DES FILTRES NUMERIQUES 13
La relation entre la pulsation analogique et la pulsation numrique est
reprsente la Fig. 6.11. La rponse en frquence du filtre analogique peut
donc s'tendre jusqu' l'infini: il n'y a plus aucun risque de recouvrement.

Fig. 6.11 Correspondance
a
- tablie par la transformation bilinraire
La transformation bilinaire occasionne cependant une distorsion de l'axe des
frquences comme le montre la figure 4.22; elle ne pourra donc tre utilise que
si la distorsion peut tre tolre ou bien compense par une prdistorsion
adquate. Dans la plupart des cas rencontrs en pratique, les spcifications sont
constantes dans des domaines de frquences donns, comme l'illustre par
exemple la Fig. 6.12. Les spcifications du filtre analogique destin tre
transform sont alors obtenues simplement : on calcule les frquences critiques
analogiques par prdistorsion de celles qui sont imposes pour le filtre
numrique, et on ne modifie pas les attnuations.
Une fois les spcifications du filtre analogique obtenues, on peut en raliser
l'approximation(analogique) de Butterworth, de Chebyshev ou de Cauer, et
repasser ensuite au domaine numrique par (6.31)

=
e
T



a
14 SYNTHESE DES FILTRES NUMERIQUES

=
2
2
T
tg
e

A dB
f
( )
( ) FILTREANALOGIQUE
(
)
FILTRE
NUMERIQUE
A dB
f
( )
c s

0

Fig. 6.12 Technique de compensation de la distorsion des frquences due la
transformation bilinaire (exemple d'un filtre passe-bas).
Exemple 6.2
Reprenons l'exemple prcdent, cette fois par transformation bilinaire. Le calcul sous
MATLAB est immdiat : Si l'on ne spcifie pas 's' dans l'appel des fonctions (ce qui veut dire
que l'on demande, non pas une approximation analogique, mai bien une approximation
numrique), MATLAB intgre par dfaut la prdistorsion, l'approximation analogique, et le
passage au numrique par la transformation bilinaire. Ainsi par exemple, pour un filtre de
Chebyshev :
Fe=3000;
[n, wn]=cheb1ord(1000/ (Fe/ 2), 1200/ (Fe/ 2), 1, 40);
[B, A]=cheby1(n, 1, wn);

%Cal cul du f i l tre anal ogi que, pour comparai son
[n, wn]=cheb1ord(2*pi *1000, 2*pi *1200, 1, 40, ' s' );
[N, D]=cheby1(n, 1, wn, ' s' );

%Comparai son des pl es et zros
zpl ane(N, D)
f i gure
zpl ane(B, A)

%Cal cul de l a rponse i mpusi onnel l e anal ogi que
[r, p, k]=resi due(N, D);
t=0: 1/ (5*Fe): . 02;
ha=real ([exp(t' *(p. ' ))*r]);

%Cal cul de l a rponse i mpusi onnel l e numri que
h=f i l ter(B, A, [1; zeros(49, 1)]);

%Comparai son des rponses i mpul si onnel l es
f i gure;
pl ot(t, ha);
SYNTHESE DES FILTRES NUMERIQUES 15
hol d on;
stem(0: 1/ Fe: 49/ Fe, Fe*h, ' r. ' )

%Cal cul des rponses en f rquence
[Ha, Wa]=f reqs(N, D, 2*pi *(1: 10: Fe));
[H, W]=f reqz(B, A, 1: 10: Fe, Fe);

%Comparai son des rponses en f rquence
f i gure;
pl ot(Wa/ (2*pi ), 20*l og10(abs(Ha)));
hol d on;
pl ot(W, 20*l og10(abs(H)), ' r: ' )



On constate que la rponse impulsionnelle et la rponse en frquence du filtre numrique
sont diffrentes de celle du filtre analogique, mais que la diffrence est favorable au filtre
numrique, de par la prsence de zros en z=-1.

6.2.3 Le problme de la quantification des coefficients
Lorsqu'un filtre numrique est implment sur un processeur en virgule fixe (ou
lorsqu'il est directement implment en hardware dans un ASIC en virgule fixe),
les coefficients calculs par approximation doivent tre quantifis sur un nombre
fini de bits, ce qui en modifie la valeur. Malheureusement, un polynme tant
trs sensible une modification de ses coefficients, la simple quantification des
coefficients b
i
ou a
i
peut conduire une modification majeure de la rponse en
frquence du filtre.
Exemple 6.3
16 SYNTHESE DES FILTRES NUMERIQUES
Nous allons faire l'approximation d'un filtre passe-bas IIR de Cauer, de degr 8, avec une
frquence de coupure de 300 Hz, un ripple en bande passante de 0.5 dB et une attnuation
minimale en bande attnue de 50 dB (la frquence d'chantillonnage est de 4 kHz). Nous
comparerons ensuite la rponse en frquence du filtre celle des filtres obtenus en
diminuant la prcision des coefficients 6, puis 5 chiffres aprs la virgule (le calcul initial de
MATLAB tant affectu avec 16 chiffres aprs la virgule).
%Approxi mati on de dpart
[b, a]=el l i p(8, . 5, 50, 300/ 2000);
[h, f ]=f reqz(b, a, 256, 4000);

%6 chi f f res dci maux
b6=round(b*1
e
6)/ 1
e
6;
a6=round(a*1
e
6)/ 1
e
6;
[h6, f ]=f reqz(b6, a6, 256, 4000);

%5 chi f f res dci maux
b5=round(b*1
e
5)/ 1
e
5;
a5=round(a*1
e
5)/ 1
e
5;
[h5, f ]=f reqz(b5, a5, 256, 4000);

%Comparai son
subpl ot(3, 1, 1);
pl ot(f , 20*l og10(abs(h)));
subpl ot(3, 1, 2);
pl ot(f , 20*l og10(abs(h6)), ' r' );
subpl ot(3, 1, 3);
pl ot(f , 20*l og10(abs(h5)), ' g' );

On constate que la rponse en frquence est fort modifie lors du passage 5 chiffres aprs
la virgule. Pire : l'examen des positions des ples et zros rvle un problme : le passage
5 chiffres aprs la virgule a pouss certaines ples en dehors du cercle de rayon unit.
%Comparai son
zpl ane(b, a);
f i gure;
SYNTHESE DES FILTRES NUMERIQUES 17
zpl ane(b5, a5);

La rponse en frquence donne dans la fentre infrieure du graphique ci-dessus n'a donc
aucun signification physique : le filtre est devenu instable!
6.2.4 Le problme du bruit de calcul
Il ne faut pas oublier que dans un filtre en virgule fixe, les chantillons sont eux
aussi quantifis sur un nombre de bits fini. Ceci a deux consquences
importantes :
1. En sortie de chaque multiplicateur, les valeurs numriques sont connues
sur 2N bits (o N est le nombre de bits des valeurs d'entre : la
multilplication de deux nombres sur N bits produit un nombre sur 2N bits).
Si on ne conserve par ces 2N bits mais qu'on requantifie plutt les
valeurs, la requantification des rsultats cre au droit de chaque
multiplieur un bruit que l'on appelle bruit de calcul. Il est clair alors que
l'ordre des cellules du second degr influe sur la transmission de ce bruit
de calcul vers la sortie du filtre.
Pour attnuer cet effet, on ralise en gnral les calculs internes sur N
c

bits (o N
c
est le nombre de bits interne, qui peut tre diffrent du nombre
de bits sur lequel les chantillons d'entre et de sortie sont quantifis). La
valeur de N
c
est alors choisie telle qu'il en rsulte un bruit de calcul en
sortie du filtre dont le puissance
c
soit du mme ordre de grandeur que
la puissance
s
du bruit en sortie du filtre, d la quantification des
chantillons d'entre. Il en rsulte une valeur de N
c
qui est comprise entre
N et 2N.
2. Les additionneurs posent un problme diffrent : ils n'oprent pas de
requantification, mais peuvent tre soumis au dpassement, si le rsultat
de la somme dpasse la valeur maximale admissible en sortie. Le
dpassement est le plus souvent interprt par le calculateur comme un
changement de signe, ce qui produit des erreurs importantes (assimilables
des bruits) et des comportements transitoires qui peuvent perturber le
bon fonctionnement du filtre, jusqu' mme devenir des bruits de rgime
(on parle de cycles limites lorsque les coefficients du filtres conduisent ce
que ces transitoires de dpassement s'entretiennent d'eux-mmes).
L'tude complte de ces effets sort du cadre de ce cours. On montre
cependant que les structures des cellules du second degr (Directe I, II,
transpose) possdent des caractristiques de bruit de calcul fort diffrentes
18 SYNTHESE DES FILTRES NUMERIQUES
l'une de l'autre. Il est donc intressant, avant de choisir une implmentation,
d'en tester les performances de bruit
6.2.5 Synthse des filtres IIR en virgule fixe, par cascade de
cellules du second degr
Les problmes mentionns la Section prcdente sont d'autant plus importants
que de degr du filtre est lev. En effet, la quantification de chacun des
coefficients du dnominateur modifie la position de tous les ples. Tout comme
en synthse des filtres analogiques, une solution pour minimiser le problme est
de raliser le filtre :
0 1
1 1
(1 )
( )
1 (1 )
M M
i i
i i
i i
N N
i i
i i
i i
z z b z
H z K
a z p z

= =

= =

= =
+


(6.33)
(o zi et pi sont les zros et les ples du filtre) sous la forme d'une cascade de
cellules du second degr (avec si ncessaire une section du premier degr)
2
:
1 1 2 / 2
0 1 2
0
1 1 2
1
0 1 2
1 (1 )
( )
1 (1 )
M
i i
i
i
i i
z z b z b z
H z K K
p z a z a z


=
+ +
=

+ +

(6.34)
Il reste alors dcider quelles paires de zros on associe quelles paires de
ples, et dans quel ordre placer les cellules, et comment rpartir la constante K.
Le problme du bruit de calcul, mentionn la Section prcdente, intervient ici
directement.
On retiendra simplement que (Fig. 6.13) :
1. Pour le choix de la rpartition de la constante K, on cherchera minimiser
les risques de dpassement, en rpartissant K de faon ce que la
dynamique des sorties des cellules soient toujours adaptes celle du
quantificateur. Ainsi, si une section du second degr prsente une
amplification importante sa frquence de rsonance, on utilisera pour
cette section un facteur K
i
gal l'inverse de ce facteur d'amplification (de
manire liminer l'amplification).
2. Pour le choix de l'association ples-zros, on cherchera toujours associer
aux ples les plus rsonant les zros les plus proches, de manire en
compenser au maximum la rsonance.
3. Pour le choix de l'ordre des cellules, on placera toujours en premier les
cellules les moins rsonantes, pour terminer par les cellules les plus
rsonantes.

2
On peut en vrifier le principe sous MATLAB grce la fonction sosdemo.
SYNTHESE DES FILTRES NUMERIQUES 19

Fig. 6.13 Exemple d'association ples-zros pour un filtre elliptique
Exemple 6.4
Sous MATLAB le calcul des sections du second degr ncessaires l'implmentation cascade
d'un filtre numrique est directement disponible dans la fonction tf 2sos(b, a, ordre, scal e) (o
' tf " signifie "transfer function" et "sos" signifie "second order section", o ordre est mis
"up" par dfaut et spcifie l'ordre des cellules en terme de facteur de qualit, et o scal e
spcifie comme on rpartie la constante K : "Inf" correspond la procdure propos ci-
dessus, qui normalise le maximum de la rponse en frquence de chaque cellule 1).
Reprenons l'approximation de l'exemple prcdent :
[b, a]=el l i p(8, . 5, 50, 300/ 2000);
sos=tf 2sos(b, a, ' up' , I nf )

>sos=
0. 0261 - 0. 0085 0. 0261 1. 0000 - 1. 6853 0. 7290
0. 3027 - 0. 4761 0. 3027 1. 0000 - 1. 7250 0. 8573
0. 6795 - 1. 1687 0. 6795 1. 0000 - 1. 7542 0. 9488
0. 8641 - 1. 5131 0. 8641 1. 0000 - 1. 7705 0. 9882

sos1n=sos(1, 1: 3); sos1d=sos(1, 4: 6);
sos2n=sos(2, 1: 3); sos2d=sos(2, 4: 6);
sos3n=sos(3, 1: 3); sos3d=sos(3, 4: 6);
sos4n=sos(4, 1: 3); sos4d=sos(4, 4: 6);
f reqz(sos1n, sos1d); hol d on;
f reqz(sos2n, sos2d);
f reqz(sos3n, sos3d);
f reqz(sos4n, sos4d);

La structure du filtre correspondant est donne ci-dessous (o t
s
symbolise un lment
dlai), ainsi que la rponse en frquence de ses cellules du second degr.
20 SYNTHESE DES FILTRES NUMERIQUES



Il est noter que MATLAB fournit deux toolboxes spciales pour l'tude des filtres
en virgule fixe : la Filter Design Toolbox, couple la Fixed-Point Toolbox.
Notons pour terminer que ces problmes ne concernent pas les filtres en virgule
flottante.
6.3 Approximation et synthse des filtres FIR
6.3.1 Filtres phase linaire
Les filtre FIR ont une fonction de transfert de la forme :
1
0
( ) ( )
N
n
n
H z h n z

=
=

(6.35)
Ils sont toujours stables et leur principal intrt est qu'ils peuvent facilement
implmenter des filtres phase linaire. Par contre, pour une mme slectivit,
leur degr est souvent fort suprieur celui d'un filtre IIR. Les filtres FIR et IIR
ne sont donc pas utiliss dans les mmes applications. Une utilisation typique
des filtres FIR est par exemple celle des filtres d'interpolation ou de dcimation,
o la phase linaire de FIR permet de conserver la forme du signal.
SYNTHESE DES FILTRES NUMERIQUES 21
La proprit de linarit de la phase est obtenue en imposant que la rponse
impulsionnelle h(n) (qui est aussi la suite des coefficients du filtre) soit
symtrique (Fig. 6.14)
3
:
( ) ( ) h n h n = (6.36)
En effet, considrons la rponse impulsionnelle h(n) comme la somme de deux
rponses distinctes :
1 2
1
1
( ) ( ) ( )
( ) 0
( ) ( )/ 2 0
0 0
0 0
( ) ( )/ 2 0
( ) 0
h n h n h n
h n pour n
avec h n h n pour n
pour n
pour n
et h n h n pour n
h n pour n
= +
<

= =

>

<

= =

>


(6.37)
Clairement, on a :
1 2
( ) ( ) ( ) H H H = + (6.38)
Or, si h(n) est symtrique, on a :
1 2
( ) ( ) h n h n = (6.39)
de sorte que:
1 2
( ) *( ) H H = (6.40)
ce qui donne bien une phase rigoureusement nulle pour H().
4

En pratique, la phase d'un FIR n'est pas nulle mais linaire car pour rendre le
filtre causal on dcale sa rponse vers la droite (Fig. 6.14). Le dlai n
0
(en
nombre d'chantillons) du filtre est alors gal la moiti de sa longueur, et la
phase linaire vaut - n
0
.

3
On peut montrer qu'elle est galement obtenue lorsque la rponse est antisymtrique : h(n)=h(-
n).
4
C'est d'ailleurs cette mme proprit qui explique que la densit spectrale de puissance des
signaux alatoires rels soit purement relle (leur fonction d'autocorrlation est en effet
symtrique).
22 SYNTHESE DES FILTRES NUMERIQUES

n
0


Fig. 6.14 Rponse impulsionnelle d'un filtre phase nulle (haut) et phase
linaire (bas)
6.3.2 Approximation optimale des filtres FIR phase linaire
L'approximation numrique due Parks et McClellan fournit un degr minimal de
la transmittance obtenue pour des spcifications donnes. Le critre utilis
consiste minimiser le maximum de | ( ) ( )|
d
H H o H
d
est la transmittance
idale raliser. L'explication cet algorithme est complexe et sort du cadre de ce
chapitre. Fort heureusement, MATLAB en fournit une implmentation simple
utiliser.
Cette technique d'approximation est trs utilise.
Exemple 6.5
Pour une frquence d'chantillonnage de 5 kHz, on cherche approximer un filtre FIR
phase linaire, 32 coefficients, dont la bande passante se situe entre 600 et 900 Hz, et qui
impose une forte attnuation avant 400 Hz et au-del de 1100 Hz.
f =[0 400/ 2500 600/ 2500 900/ 2500 1100/ 2500 1];
m=[0 0 1 1 0 0];
b=remez(31, f , m);
stem(b)
f reqz(b, 1)

SYNTHESE DES FILTRES NUMERIQUES 23

On constate que le filtre est bien symmtrique, et que sa phase est donc bien
linaire (les accidents de la phase sont des imprcisions de calcul).
6.3.3 Synthse des filtres FIR phase linaire
Les filtres phase linaire sont beaucoup moins sensibles que les filtres IIR
une quantification de leurs coefficients ou au bruit de calcul. Leur implmentation
ne pose pas de problme particulier : la structure directe (il n'y a plus de
distinction entre directe I et II) ou la structure transpose (qui ne diffre de la
structure directe que par la position des ses lments dlais) conviennent trs
bien. Il n'est pas ncessaire de raliser la filtre sous la forme d'une cascade de
cellules du second degr.

You might also like