Académique Documents
Professionnel Documents
Culture Documents
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
Zone de transition
0.05A p
Bande attnue
1+
p
1
p
a
fp fa
fc
1/2
- 1 -Archives
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
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 -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:
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
HN
hN
f
0
*
F
hNM
-Fe
Fe
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
M 1
sin
2f c k 2 Te
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
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)
- 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
Hamming
6.6/N
0.0194
41
53
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
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
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
- 10 -Archives