Vous êtes sur la page 1sur 10

Chapitre 4 : Synthse des filtres non rcursifs ou RIF

La synthse consiste dterminer la structure d'un filtre en fonction de la rponse frquentielle que
l'on veut obtenir. La rponse frquentielle dun filtre numrique est priodique de "priode
frquentielle" fe, par consquent la fonction de transfert utile sera dtermine pour l'intervalle
fe fe
2 ; 2 .

Principe
Il s'agit de dfinir le cahier des charges du filtre raliser. Il faudra prciser dans le cas gnral :
- les valeurs limites de la bande passante (ou attnue),
- les valeurs permises des ondulations en bande passante et en bande attnue,
- la largeur de la zone de transition permise,
- ventuellement l'ordre maximal permis,
- la frquence d'chantillonnage.
Exemple de synthse dans le cas d'un passe-bas de frquence de coupure fc
On a fc = 0.5(fp +fa) ; p signifie zone passante, a zone attnue.
La rponse frquentielle est dfinie par:

1 si f < f p

H ( jf ) =
0 si f > f a

Bande passante

En pratique plus les frquences fp et fa sont proches, plus


l'ordre du filtre devra tre lev. Pour un filtre idal, les trois
valeurs seraient confondues.
On spcifie le gabarit du filtre en donnant :
- l'ondulation permise en bande passante en dcibels: Ap (dB),

A p (dB) = 20 log(1 + p ) d ' o p = 10

Zone de transition

0.05A p

- l'ondulation permise en bande attnue en dcibels : Aa (dB),

Bande attnue

1+
p
1
p

a
fp fa
fc

1/2

A a (dB) = 20 log a d ' o a = 10 0.05A a


- les frquences fpet fa.

1. Dtermination par identification une structure connue


On pourra procder par identification une structure connue. Supposons que l'on veuille concevoir
un filtre passe-bas de frquence de coupure fc, on peut alors prendre la structure ralise par le filtre
1
1
RIF suivant : s n = e n + e n 1 .
2
2

- 1 -Archives

La rponse de ce type de filtre s'obtient de la manire suivante :


S (z) 1 1 1
1
1
= + z ,
S ( z ) = E ( z ) + E ( z ) z 1 d'o H ( z ) =
2
2
E(z) 2 2
La rponse frquentielle sera donc :

H ( j ) =

1 1
+ e
2 2

j Te

1 j Te / 2
T
e
+ e j Te / 2 e j Te / 2 = cos e e
2
2

d'o on tirera les rponses en amplitude et en phase :


T
H ( j ) = cos e
2
1 REPONSE EN AMPLITUDE

arg(H ( j ) ) = 0

j Te / 2

Te
2

0,707
0.5
0
0
-3

fc
BODE : AMPLITUDE

Fe/2

-20
-40
100
101
102 fc
FREQUENCE : ECHELLE LOG

103
Fe/2
On obtient fc=fe/4. Par consquent, si l'on dsire une certaine frquence de coupure fc, il suffit de
fixer fe. Naturellement dans ce cas, il n'y aura pas similitude de la pente en dB par octave ni du
dphasage entre les filtres analogique et numrique.

2. Dtermination des coefficients par la mthode de la fentre (fonction Matlab FIR1)


2.1 Principe
Cette technique consiste, connaissant l'expression analytique HA(jf) de la rponse frquentielle
approcher, dterminer par utilisation de la transforme de Fourier inverse, la rponse
impulsionnelle. On sait par ailleurs que les chantillons de la rponse impulsionnelle sont gaux aux
coefficients du filtre.
h A ( t ) = F 1 ( H A ( jf )) .
On part en gnral d'une rponse frquentielle "connue" mathmatiquement de type fentre
(rectangulaire = filtre idal, triangulaire, Hann/Hamming,...) puis on obtient une rponse temporelle
non causale. Il suffira de retarder cette rponse pour la rendre causale.
Illustrons cette technique dans le cas particulier o l'on dsire approcher la fonction de transfert d'un
f
filtre passe-bas idal de frquence de coupure f C = e . La rponse frquentielle dsire est trace ci4
dessous et est dfinie par :

- 2 -Archives

fe
fe

1
H
(
jf
)
=
pour

<
f
<
A

4
4

0
H
(
jf
)
=
ailleurs

f/Fe
-1/4

1/4

1/2

Pour cela, on part du module de la fonction de transfert HA(jf) approcher dfini sur l'intervalle
fe fe
2 ; 2 . Il lui correspond une rponse impulsionnelle qui s'crit :

h A (t ) = F

fC

(H A ( jf )) = e j 2ft df

fC

sin(2f c t )
t

Pour obtenir la fonction de transfert HN(jf) du filtre RIF idal, on "priodise" la fonction HA(jf), ce qui
revient la convoluer avec un peigne |_ |_ | Fe ( f ) de priode Fe.
Dans le domaine temporel, cette opration correspond un chantillonnage la priode Te de la
rponse impulsionnelle accompagn d'une multiplication de l'amplitude par Te, on trouve ainsi la
*
rponse impulsionnelle hN (k ) = Te h A (t )| _ | _ |Te du filtre numrique idal. Les chantillons de cette
rponse impulsionnelle sont les coefficients du filtre numrique non rcursif idal. Ils s'crivent :
hk = Te h A (kTe ) =

sin( 2f c kTe )
k
HA

hA

Fe/4

X
Te

1
0

0
0

HN

hN

f
0

Deux dfauts apparaissent alors. La rponse impulsionnelle est infinie et non causale. Pour liminer
ces dfauts, on procde comme suit :
Pour rendre la rponse impulsionnelle finie, on effectue une troncature de la rponse impulsionnelle
chantillonne obtenue, c'est--dire que l'on annule les chantillons situs l'extrieur d'une "fentre"
temporelle de largeur (M+1)Te. Tout se passe comme si on multipliait la rponse impulsionnelle h *N
par une fonction F(t) dite fentre rectangulaire dfinie par:

(M + 1)T < t < M + 1 T

e
e
F (t ) = 1 pour
.
2
2

F (t ) = 0 ailleurs

- 3 -Archives

On obtient alors une rponse impulsionnelle h *N M ( k ) tronque o seuls subsistent M+1 chantillons :
hN* M (k ) = F (k )h N* (k ) = F (k )(h A (t )Te | _ | _ | Te )

sin( 2f c kTe )
(M + 1)
M+1
*
pour
k
hN M (k ) = Te h A (kTe ) =
k
2
2

hN M (k ) = 0 ailleurs
Dans le domaine frquentiel,
hN
HN
cette multiplication se traduit
par une convolution de la
fonction idale HN(f) avec la
transforme de Fourier F(f) de
0
0
la
fonction
fentre
sin(fMTe )
X
*
F : F( f ) =
.
f
Cette
convolution
fait
apparatre des ondulations en
bande passante et en bande
attnue et limite la raideur de
coupure du filtre.

MTe/2

Hnm

hNM

1.5
Pour une fentre rectangulaire et un ordre M=7,
on obtient :
1
h(4) = h(-4) = -0.0721
h(3) = h(-3) = -0.1010
0.5
h(2) = h(-2) = 0.1683
0
h(1) = h(-1) = 0.5048
0
fc=Fe/4
Fe/2
(b=fir1(7,0.5,boxcar(8)) sous MATLAB)
On remarque que la courbe passe par la demi-hauteur de la discontinuit. En augmentant lordre du
filtre M, on augmente la raideur de la coupure et le nombre d'ondulations mais on ne diminue pas
leur amplitude maximale : c'est le phnomne de Gibbs. Les ondulations dpendent de celles de
F(f). Pour les rduire, on peut imaginer de choisir une fonction fentre w(t) dont le spectre
W(f)prsente moins d'ondulations que celui de F(t). C'est la mme situation que celle rencontre
pour l'analyse spectrale et on peut utiliser les mmes fonctions fentres. Si l'on choisit la fonction de
Hamming telle que :

t
w (t ) = 0.54 + 0.46 cos
2 MT
e

w (t ) = 0 ailleurs

- 4 -Archives

M
M

pour 2 Te < t < 2 Te

HN

hN

f
0

*
F

hNM

-Fe

Fe

Pour une fentre de Hamming et un ordre M=7,


on obtient:
h(4) = h(-4) = -0.0052
h(3) = h(-3) = -0.0229
h(2) = h(-2) = 0.0968
h(1) = h(-1) = 0.4313
(b=fir1(7,0.5,hamming(8)) sous MATLAB)

0.5

fc=Fe/4

Fe/2

On remarque que si l'on a bien une rduction des ondulations, on a par contre une diminution de la
raideur de coupure.
Pour rendre la rponse impulsionnelle causale, on la retarde de

M1
Te temporel correspond une multiplication par e
2
phase linaire. Les coefficients bk s'expriment alors par :

M 1
bk = Te h A
k 2 Te
=

j 2f

M1
Te
2

M 1
priodes Te . A ce retard
2

, c'est--dire l'apparition d'une

M 1

sin
2f c k 2 Te

pour 0<k<M-1 (fentre rectangulaire)


M 1

M 1

sin
2f C k 2 Te

M 1
2

bk =
0
.
54
0
.
46
cos
k
+

pour
M 1
2

0<k<M-1

(fentre

de

Hamming).

Le filtre obtenu est donc un filtre RIF phase linaire dont le module approche d'autant mieux la
fonction dsire que lordre et donc le nombre de coefficients est important.
- 5 -Archives

2.2 Utilisation pratique de la mthode


1re tape: Spcifier la rponse frquentielle dsire du filtre HN(f) (ou HN()). Il faudra faire
attention aux frquences de coupure prendre en compte. Afin d'avoir de bons rsultats lors de la
synthse, ce ne sont pas les frquences de coupure du filtre idal qu'il faut utiliser mais il faut
dplacer celles-ci afin de les centrer dans la zone de transition :
- pour un passe-bas, l'augmenter de la demi zone de transition,
- pour un passe-haut, la diminuer de la demi zone de transition,
- pour un passe-bande, diminuer la premire frquence de coupure de la demi zone de transition
et augmenter la seconde de la demi zone de transition,
- pour un rjecteur de bande, on fera l'inverse.
Les tableaux des pages suivantes ncessitent d'utiliser des frquences rduites, c'est--dire des
frquences exprimes non pas en Hz mais en fonction de la frquence d'chantillonnage. Il y a deux
manires d'exprimer la frquence rduite :
- la premire consiste diviser toutes les frquences par fe et par consquent d'obtenir une
nouvelle fonction de la variable f/fe, cette mthode est trs souvent utilise dans la littrature,
- la seconde consiste diviser toutes les frquences par fe/2 et par consquent d'obtenir une
nouvelle fonction de la variable 2f/fe, cette mthode est celle que l'on utilisera car c'est celle qui
est utilise parle logiciel Matlab pour effectuer la synthse.
2me tape : Obtenir la rponse impulsionnelle hN(k) du filtre numrique dsir, par l'valuation de la
transforme de Fourier inverse, les coefficients de la rponse impulsionnelle tant en fait les
coefficients du filtre. Pour obtenir la rponse impulsionnelle d'un filtre idal, on pourra utiliser le
tableau ci-dessous :
Rponse impulsionnelle idale hN(k)
hN(k), k 0
sin( kf c )
fc
kf c

Type de filtre
Passe-bas
Passe-haut

fc

sin( kf c )
kf c

hN(0)
fc
1 - fc

Passe-bande

f2

sin( kf 2 )
sin( kf1 )
f1
kf 2
kf1

f2 - f1

Rjecteur de bande

f1

sin( kf1 )
sin( kf 2 )
f2
kf1
kf 2

1 -(f2 - f1)

Tableau 1 - Rponses impulsionnelles idales pour les filtres frquentiels standards


N.B. : Ce tableau est utilisable en prenant en considration le fait que les frquences sont
normalises par rapport la demi-frquence d'chantillonnage (comme c'est le cas dans Matlab).
Les frquences fc indiques dans ce tableau (frquences de coupure dsires) s'expriment
galement en frquences normalises.

- 6 -Archives

3me tape : Slectionner une fentre qui satisfait les spcifications requises pour dterminer le
nombre de coefficients du filtre en fonction de la largeur de la transition souhaite.
f, largeur de

Ondulation

Attnuation

Attnuation

transition (en

du 1er lobe

en bande

frquence

en bande
passante Ap

secondaire

attnue Aa

rduite)

(dB)

(dB)

(dB)

1.8/N

0.7416

13

21

6.2/N

0.0546

31

44

0,5 + 0,5 cos

Hamming

6.6/N

0.0194

41

53

0,54 + 0,46 cos

Blackman

11/N

0.0017

57

74

Kaiser

5.86/N

0.0274

Type de
fentre

Rectangu

Fonction fentre w k , k

N 1
2

-laire
Hann
(Hanning)

50

(=4.54)
8.64/N

0.00275

70

0.000275

90

(=6.76)
11.42/N

0,42 + 0,5 cos

2 k
N
2 k
N

2 k
4k
+ 0,08 cos
N 1
N 1

I 0 1 2 k / ( N 1)

I 0 ( )

))

avec

( x / 2)m
I 0 ( x) = 1 +
avec M < 25
m!
m =1
M

(=8.96)

Tableau2
N.B. 1 : Ce tableau est utilisable en prenant en considration le fait que les frquences sont
normalises par rapport la demi-frquence d'chantillonnage (comme c'est le cas dans Matlab).
N.B. 2 : Dans ce tableau, N reprsente le nombre de coefficients du filtre (autrement dit M + 1).
N.B. 3 : Il se peut que les expressions mathmatiques des fentres donnes ici soient lgrement
diffrentes de celles que l'on peut trouver dans la littrature (ou dans les botes outils de Matlab).
Ces diffrences traduisent en gnral simplement un dphasage temporel.
- Pour ce qui concerne les fentres rectangulaire, de Hamming, Hanning et Blackman, il existe une
relation simple entre la largeur de la bande de transition et l'ordre du filtre. Les ondulations en
bande passante sont donnes en dB, les ondulations en bande attnue sont identiques, ceci est
une caractristique des filtres conus par la mthode de la fentre avec les fentres
rectangulaire, de Hamming, Hann et Blackman. Les valeurs relatives de l'amplitude du lobe
central par rapport au premier lobe secondaire sont ensuite donnes en dB. L'avant-dernire
colonne donne l'attnuation maxi en bande attnue que l'on pourra obtenir, cette caractristique
sera un critre de choix important pour le type de fentre. Enfin la dernire colonne rappelle
les expressions mathmatiques des fentres.

- 7 -Archives

- La fentre de Kaiser permet d'obtenir des ondulations diffrentes en bande passante et attnue.
Lors de la conception, il faudra prendre la plus petite des ondulations en bande passante ou
attnue = min(p , a ) afin de dterminer la valeur d'un nouveau paramtre .
Lorsque la paramtre = 0, la fentre de Kaiser est gale la fentre rectangulaire, et lorsque =
5.44, la fentre est trs proche de la fentre de Hamming, mais pas identique. La valeur de est
dtermine en fonction de l'attnuation dsire en bande attnue et peut tre estime l'aide des
relations empiriques ci-dessous :

=0

si A < 21 dB

= 0.5842( A 21)

0.4

+ 0.07886( A 21)

si 21 dB < A < 50 dB

( A 8.7)
= 01102
.

si A > 50 dB

o A = 20 log 10 ( ) reprsente l'attnuation en bande attnue et est obtenu par la formule


suivante : = min(p , a ) . Le nombre de coefficients N du filtre est donn par :

A 7,95
7,18.f

4me tape : Obtenir les valeurs de wk pour la fentre choisie et les valeurs vraies des coefficients hk
comme tant le rsultat du produit :
hk = hNk w k
Le rsultat obtenu par cette mthode n'est pas optimal, c'est--dire qu'un filtre avec un ordre plus
faible peut tre obtenu par le biais d'autres mthodes (mthodes optimales).
2.3 Exemple
Obtenir les coefficients d'un filtre RIF passe-bas pour obtenir les spcifications suivantes :
Frquence de coupure :
fc=1.5 kHz
Largeur de transition :
Attnuation en bande attnue :
Frquence d'chantillonnage :

f=0.5 kHz
Aa> 51 dB
fe=8 kHz

Solution :
Il faudra d'abord convertir toutes les frquences caractristiques en frquences rduites, la frquence
0.5
de coupure sera donc1.5/4=0.375, la largeur de transition sera f =
= 0125
.
.
4
A partir du tableau 1, l'expression de h N k est donne par :
hNk = fc

sin( kf c )
pour k 0,
kf c

h N k = fc pour k = 0.

- 8 -Archives

Le tableau 2 indique que seules les fentres de Hamming, Blackman ou Kaiser peuvent satisfaire les
spcifications requises (Aa> 51 dB). Pour des raisons de simplicit de la mthode, la fentre de
Hamming est utilise dans cet exemple.
6.6
6.6
1. Dtermination de l'ordre : N =
=
= 52.8 , par consquent N = 53 o N est le nombre de
f 0125
.
coefficients du filtre, l'ordre est donc de M=N-1=52.
2. Les coefficients du filtre sont obtenus par l'expression mathmatique suivante :
h k = h N k w k pour-26 k 26
L'expression mathmatique de hN(k) est donne plus haut, celle de wk est la suivante :

2 k
w k = 0.54 + 0.46 cos
pour -26 k 26
53
La frquence de coupure prendre en compte (aprs centrage dans la zone de transition) est la
suivante:
f
1.75
= (15
. + 0.25) kHz = 175
. kHz =
= 0.4375
2
4
Les coefficients du filtre sont symtriques, il suffira par consquent de calculer les valeur de h(0)
f 'c = f c +

h(26).
k = 0 : hN(0) = fc = 0.4375
w(0) = 0.54 + 0.46cos(0) = 1
h(0) = hN(0) w(0) = 0.4375
2 0.4375
sin (0.4375) = 0.31219
k = 1 : hN (1) =
2 0.4375
w(1) = 0.54 + 0.46cos(2/53) = 0.98773
h(1) = h(-1) = hN(1) w(1) = 0.311
2 0.4375
k = 2 : h N ( 2) =
sin (2 0.4375) = 0.06091
2 2 0.4375
w(2) = 0.54 + 0.46cos(4/53) = 0.98713
h(2) = h(-2) = hN(2) w(2) = 0.0601
M
M
M
M
2 0.4375
k = 26 :
hN (26) =
sin (26 0.4375) = 0.01131
26 2 0.4375
w(26) = 0.54 + 0.46cos(52/53) = 0.08081
h(26) = h(-26) = hN(26) w(26) = 0.0009
Pour rendre le filtre causal, on ajoute 26 chacun des indices. Les coefficients du filtre sont alors
donns ci-dessous.

- 9 -Archives

b=fir1(52,0,4375,hamming(53))

sous Matlab
h(0)=
h(1)=
h(2)=
h(3)=
h(4)=
h(5)=
h(6)=
h(7)=
h(8)=
h(9)=
h(10)=
h(11)=
h(12)=
h(13)=
h(14)=
h(15)=
h(16)=
h(17)=
h(18)=
h(19)=
h(20)=
h(21)=
h(22)=
h(23)=
h(24)=
h(25)=
h(26)=

h(52)=
h(51)=
h(50)=
h(49)=
h(48)=
h(47)=
h(46)=
h(45)=
h(44)=
h(43)=
h(42)=
h(41)=
h(40)=
h(39)=
h(38)=
h(37)=
h(36)=
h(35)=
h(34)=
h(33)=
h(32)=
h(31)=
h(30)=
h(29)=
h(28)=
h(27)=
h(26)=

-0.0009
0.0002
0.0012
0.0003
-0.0018
-0.0014
0.0022
0.0033
-0.0019
-0.0060
0.0000
0.0090
0.0042
-0.0110
-0.0112
0.0105
0.0207
-0.0052
-0.0319
-0.0075
0.0434
0.0325
-0.0533
-0.0856
0.0601
0.3113
0.4375

3. Technique d'chantillonnage en frquence (fonction Matlab FIR2)


Lorsque l'on ne connat pas l'expression analytique de HA(jf), la mthode prcdente n'est plus
applicable puisqu'on ne peut dterminer hA(t) par transformation de Fourier inverse. On utilise alors
la transformation de Fourier Discrte inverse. C'est--dire que l'on "chantillonne" la rponse dsire
dans le domaine frquentiel, on obtient N points de cette rponse frquentielle auxquels on fait
correspondre N points de la rponse temporelle quivalente obtenus par TFD inverse (ou FFT
inverse).
4. Utilisation du serveur web
Dans le paragraphe 5 du serveur, vous trouverez :
- Un questionnaire d'auto-valuation sur les filtres numriques non rcursifs.

- 10 -Archives