Академический Документы
Профессиональный Документы
Культура Документы
Traitement du signal
Plan
Introduction gnrale
Gnralits et rappels sur le filtrage
Introduction
Dfinitions
e(t) : entre
s(t) : sortie
E(p) =TL[e(t)]
S(p)=TL[s(t)]
Reprsentations
Equation diffrentielle
N
n =0
Fonction de transfert
de Laplace
TL
d s(t) M
d e(t)
= bm
, MN
n
dt
dtm
m =0
Rponse impulsionnelle
H(p) =
TL
h(t)
Rponse une entre quelconque
Fonction de transfert
harmonique
H(j) =
Domaine temporel
Signaux quelconques
p=j
TF
TF
S(p)
E(p)
S(j)
S(f)
ou H(f) =
E(j)
E(f)
Signaux sinusodaux
Introduction
Objectif
Se rapprocher des filtres idaux (le plus simplement possible)
H(j)
1
fc
20 log H(j)
fc
f
passe-bas
f1 f2
fc
fc
passe-haut
f1
f2
passe-bande
f1
f2
f1
f2
coupe-bande
H(j)
20 log H(j)
f
4
Introduction
()
t =
- retard de groupe
d()
t =
g
d
Introduction
Stabilit
Condition par rapport aux ples
Un systme est stable si tous les ples de sa fonction de transfert de Laplace sont situs dans le demi-plan situ
gauche de laxe imaginaire du plan de la variable p :
zone de
stabilit
Im
plan p
Re
risque dinstabilit
Explication
Ple rel p0 :
H (p ) =
A
L
h(t) = Aep0t
p p0
H(p) =
A
L
t =
h(t)dt <
6
HdB ( ) = 20 log H ( j )
H(j) =
1
1+ j
c
pente=-20dB/dcade
pente=-20dB/dcade
c
H(j) =
1+ j
c
j
pente=20dB/dcade
H(j) =
coefficient damortissement
2
1 + 2j
+j
c c
1
, Q facteur de qualit)
2Q
=0,1
=0,1
Gain en dB :
HdB( ) = 20 log H ( j )
pente=-40dB/dcade
pente=-40dB/dcade
=0,7
=0,7
=2=2
Le cas =0,7 est intressant, puisque on a une rduction de gain assez limite (-3dB), et une pente 40dB/dc.
8
j
c
H(j) =
2
1 + 2j + j
c c
bande passante :
avec
f =
f0
Q
f0 = fc1 fc2
frquence centrale
Gain en dB :
=2
HdB( ) = 20 log H (j )
=0,7
=0,1
pente=-20dB/dcade
Passe-haut :
1+ j
c
2er ordre
Passe-bas :
2 j
Passe-haut :
+j
1 + 2 j
c c
2
Passe-bande :
1+ j
c
j
j
0
1 + 2j
+j
0 0
1 + 2 j
+j
0 0
Coupe-bande :
1 + j
c
+j
1 + 2 j
c c
Dphaseur :
1 2j + j
c c
2
1 + 2j + j
c c
10
j = p
H(j)
harmonique (rgime sinusodal)
H(p)
p / c = s
en variable de Laplace
H(s)
H(j) =
H(p) =
1
2
1 + 2j + j
c c
1
2
p p
1 + 2 +
c c
H(s) =
1
1 + 2s + s2
11
H(s ) =
H(s) =
1
1+ s
1
1 + 2s + s2
s= j
H(j) =
H(j) =
1
1+ j
c
1
2
1 + 2j + j
c c
Au final, il faut "dnormaliser" la fonction de transfert, cest dire remplacer s par j/c, pour pouvoir raliser le filtre
satisfaisant aux paramtre du filtrage..
12
s
Passe-bas passe-bande
1
s
1
1
s +
B
s
avec B =
f0
B : bande passante
1
s B s +
s
Passe-bas coupe-bande
fc2 fc1
13
passe-haut
2e ordre
passe-bas
passe-bande
passe-haut
Mthode de calcul
Chacun de ces montages peut tre vu comme un pont diviseur de tension
avec 2 impdances complexes Z1 et Z2.
Dans le cas du 2e ordre, lune des 2 impdances est elle-mme constitue
Z1
Z2
14
Passe-bas :
Z1 :
Z2 :
Passe-haut :
Z1 :
Z2 :
|H(j)|
H(j) =
-R2/R1
R2
1
.
R1 1 + jR2C
(ch. log)
1/R2C
15
H=
Vs
kZ2Z4
=
Ve Z1Z4(1 H0) + Z1(Z2 + Z3) + Z2(Z3 + Z4)
avec
k=
Ra
+1
Rb
Passe-bas :
Z1 = R1 Z2 =
1
C2p
Z3 = R3
Z4 =
1
C4p
c =
1
R1R3C2C4
Passe-haut :
Z1 =
1
C1p
Z2 = R2
Z3 =
1
C3p
Z4 = R4
c =
1
R2R4C1C3
16
H=
Vs
Y1Y3
=
Ve Y5(Y1 + Y2 + Y3 + Y4) + Y3Y4
Passe-bas :
Z1 = R1
Z2 =
1
C1p
Z3 = R2
Z4 = R3
Z5 =
1
C2p
c =
1
1 1
1
1
C
= +
+ R2R3 2
R 2 R 3 C1C 2
2 R1 R2 R3
C1
H0 =
c =
1
R1R2C2 C3
H0 =
R3
R1
Passe-haut :
Z1 =
1
C1p
Z2 = R1
Z3 =
1
C2p
Z4 =
1
C3p
Z5 = R2
Passe-bande :
Z1 = Z2 = R1
Z3 = Z4 =
1
Cp
c =
Z5 = R2
2
R1C
1
(C + C2 + C3 ) R1
2 1
R2C2C3
R1
2R2
H0 =
1
2
C1
C3
17
Passe-bas :
H0 =
2R4
(gain statique)
R3 + R4
Passe-haut :
H0 =
2R4
R3 + R4
Passe-bande :
H0 =
R4
R3
Coupe-bande :
H0 =
Rb
2R4
Ra R3 + R4
c =
1
R1R2C1C2
R3
R2C2
R3 + R4 R1C1
18
19
N1
pn
p pn
n=0
H(p) =
1
s sn
n=0
H(s) =
ou
N ordre du filtre
H(j) =
s = j / c
H(s) =
1+ j
c
1
1+ s
H(j) =
s = j / c
1
2
1 + 2 j + j
c c
s1 =
s =
2
2
(1 j)
2
2
( 1 + j )
2
do
H(s) =
H(s) =
s1 = 1
1
s (1)
1
1 + 2s + s2
H(s) =
(s
2
2
(1 j))(s
(1 + j))
2
2
20
H(j) = H1(j).H2(j).H3(j)
Schmas-blocs et modules lectroniques
Quand les modules lmentaires (schmas-blocs ou modules lectroniques) sont mis en cascade (=en srie), les
ordres sajoutent. Exemple pour lordre N=5 :
H1
H2
H3
N=2
N=2
N=1
H
N=5
Diagrammes de Bode
Dans les diagrammes de Bode, les courbes de gain (en dB) sadditionnent :
fc
fc
fc
=
-20
-40
-40
fc
-100
importance de ltude des cellules de filtrage dordre 1 et 2 ; on les appelle cellules lmentaires
21
Position du problme
On a vu comment vu la cellule de filtrage passe-bas du 1er ordre, dont les caractristiques sont :
-3dB fc
-attnuation -20dB/dcade
puis la cellule de filtrage du 2e ordre dont les caractristiques sont
-3dB fc
-attnuation -40dB/dcade
De plus, on sait quen associant des cellules du 1er et du 2e ordre, on peut obtenir des cellules dordre plus lev.
Problme : est-il possible dobtenir un filtre dordre N quelconque, caractris par :
-3dB fc
-attnuation -20N dB/dcade ?
On a vu quen associant des cellules lmentaires on pouvait obtenir un ordre quelconque, comme par exemple pour
lordre 5 :
H1
H2
H3
N=2
N=3
N=1
H
N=5
Intrt
Comment obtenir une pente quelconque tout en ayant 3dB fc, sans calculs (trop) compliqus ?
Dfinition
-10
H() =
-20
2N
1 +
c
-30
-40
-50
N ordre du filtre
-60
-70
-80
-90
-100
-1
10
10
Proprits
10
w=linspace(0.1,10,1000);
[z,p,k]=buttap(2);
h=freqs(k*poly(z),poly(p),w);
semilogx(w,20*log10(abs(h)),'black');
...
23
Filtre de
Cellules
Butterworth
de filtrage
: tude
dede
base
lordre
: 2e ordre
1 et 2
H(j) =
H(j) =
1+ j
c
1+ j
1
2
1 +
c
H(j) =
1
2
1 + 2 j + j
c c
2
(rappel : -3dB fc) :
2
H(j) =
1
2
1 + 2 j + j
c c
1
2
1 + j 2
c
c
= ... =
1
4
1 +
c
24
p = j
H (j ) =
2N
1 +
c
harmonique
s = p / c
H (p ) =
H (s ) =
2N
p
1 +
c
en variable de Laplace
1
1 + s2N
s= j
= js
c
c
H(s) =
1 + (1) s = 0
N 2N
1
1 + (1)Ns2N
sn = e
2n + 1
2n + 1
sn = sin
+ j cos
2N
2N
N1+ 2n
2N
0 n 2N 1
Il y a 2N ples (2 fois plus que lordre du filtre), ce qui est normal puisquon a recherch les ples de |H(j)|2
25
etc
N=1
N=2
N=3
N=4
Le ple rel pur, quand il existe, correspond une cellule du 1er ordre.
Les autres ples existent par paires : 1 ple + son conjugu ;
26
2n + 1
2n + 1
sn = sin
+ j cos
2N
2N
n = 0 ,1
Im
s0 = sin + j cos
4
4
2
2
+j
2
2
2
2
j
2
2
Re
H(j) =
H(p) =
ou
1 +
c
H(s) =
ou
p
1 +
c
1
1 + s4
H (s ) =
1
s + 2s + 1
27
2n + 1
2n + 1
sn = sin
+ j cos
2N
2N
s0 = sin + j cos
8
8
5
5
s2 = sin + j cos = s1*
8
8
n = 0,...,3
3
3
s1 = sin + j cos
8
8
7
7
*
s3 = sin
= s0
+ j cos
8
8
s0
s1
1
Re
s2
3
H(s) =
n =0
1
1
1
1
1
=
.
.
.
s sn s s0 s s1 s s2 s s3
Im
s3
H(s) =
1
*
(s s0)(s s0 )(s s1)(s s1*)
1
= ...
.
2
*
*
s s(s0 + s0 ) + s0s0 s s(s1 + s1*) + s1s1*
1
1
1
= H1(s ). H2(s )
. 2
s + 0,765s + 1 s + 1,848s + 1
2
28
Polynmes de Butterworth
Une fois les ples de la fonction de transfert calculs, les ples complexes conjugus sont regroups ensemble.
Chaque paire correspond une cellule lmentaire (passe-bas) du 2e ordre.
Le ple simple rel, sil existe (ordre impair), correspond la cellule lmentaire (passe-bas) du 1er ordre.
Forme dveloppe
n=1 : s+1
n=2 : s2+1,41s+1
n=3 : s3+2s2+2s+1
n=4 : s4+2,6131s3+3,4142s2+2,6131s+1
n=5 : s5+3,2361s4+5,2361s3+5,2361s2+ 3,2361s+1
n=6 : s6+3,8537s5+7,4741s4+9,1416s3+7,4741s2+3,8537s+1
etc
Forme factorise
n=1 : s+1
n=2 : s2+1,41s+1
n=3 : (s+1)(s2+s+1)
n=4 : (s2+0,765s+1)(s2+1,848s+1)
n=5 : (s+1)(s2+0,618s+1)(s2+1,618s+1)
n=6 : (s2+1,932s+1)(s2+1,414s+1)(s2+0,518s+1)
etc
29
a
p
-Aa
: slectivit
Dans le cas classique, Ap=3dB. On peut souhaiter une attnuation Ap moins importante. Il suffit dajouter un paramtre
supplmentaire dans la fonction de transfert de Butterworth :
H ( ) =
1+
p
2N
0 1
ou
H ( ) =
1
1 + 2 2 N
pulsation rduite
30
Gabarits
Autres gabarits
0
-Ap
-Aa
-Aa
passe-bas
0
-Ap
0
-Ap
a1 p1
passe-haut
p2 a2
0
-Ap
p1 a1
a2 p2
-Aa
-Aa
passe-bande
coupe-bande
Remarque
Pour la transformation de gabarits passe-bas vers passe-bande ou coupe-bande, ces derniers doivent tre symtriques.
Si a nest pas le cas, il faut des rendre symtrique (en les rendant plus svres).
La condition de symtrie est :
fp 1. fp 2 = fa 1. fa 2
31
20 log H ( ) = 20 log
1
1+
2
2N
Soit Ap le gain la pulsation =p, (soit =1) on peut dmontrer (*) que lon a :
= 10
A
p
10
Aa
log 10 10 1 2 log
N=
2 log a
p
p
0
-Ap
-Aa
a =
a
p
c =
p
N
(*) il suffit dimposer que le gain soit Ap dB pour =p ; on a alors 2N=1, et la seule inconnue est .
(**) on impose que la courbe passe par le point (p, Aa). Connaissant , la seule inconnue est N.
32
Exemple : Dtermination dun filtre dont le gain est attnu de 1dB la frquence fa=1kHz et de 50dB fr=5kHz
= 10
A
p
10
1 = 1010 1 = 0,509
0
-1
a =
Ordre du filtre :
a fa 5kHz
= =
=5
p fp 1kHz
f(kHz)
-50
Aa
50
log 10 10 1 2 log log 1010 1 2 log 0,509
=
N=
= 3,99
2 log a
2 log 5
On prend pour lordre lentier suprieur : N=4.
La fonction de transfert du filtre est la suivante :
H() =
2N
1 + 2
p
1
8
1 + 0,259
p
H (s ) =
s= j
= js
c
c
1
1 + 2s2N
1 + (1) s = 0
2
H(s) =
N 2N
1
1 + 2(1)Ns2N
1 j
sn = e
N1+ 2n
2N
1
2n 1
2n 1
sn = N sin
+ j cos
2N
2N
0 n N 1
s0
Les arguments des ples sont les mmes que ceux de la
fonction de transfert simplifie avec =1, mais situs
sur un cercle de rayon
Im
.N
s1
1/
Re
s2
s3
34
Utilisation dabaques
Elles permettent de dterminer lordre du filtre en fonction des paramtres Ap, Aa, p et a.
0
-Ap
-Aa
a
p
35
Programmation Matlab
0
-10
[N,Wn]=buttord(1000,5000,1,50,'s')
-30
[b,a]=butter(N,Wn,'s');
F=[100:1:10000];
%vecteur de frquences
[hb,bc]=freqs(b,a,F);
semilogx(bc,20*log10(abs(hb)));
)
B
d(
ni
a
G
-40
-50
-60
xlabel('Frequence (radians)');
-70
ylabel('Gain (dB)');
grid;
-80
2
10
10
Fre que nc e (Hz)
10
Pour la phase :
...
2
semilogx(bc,angle(hb));
...
)
d
a(r
e
s
a
h
P
0
-1
-2
-3
-4
2
10
10
Freque nce (Hz )
10
36
Dfinition
2
2TN
2
p
Type II : H ( ) =
2
1 + 2TN
Il existe 2 types :
Type I :
H ( ) =
1 + TN
p
2
<1
<1
TN() = Re[ + j 1 2 ]N
Les premiers polynmes sont donc :
....
T0() = Re[ + j 1 2 ]0 = 1
T1() = Re[ + j 1 2 ] =
T2() = Re[ + j 1 2 ]2 = 22 1
On peut dmontrer (*) quil existe une relation de rcurrence entre ces polynmes :
37
Dfinition
cos(N. arccos(x)) si x 1
TN(x) =
ch(N. arg ch(x)) si x > 1
Rappel :
sinh(x) =
ex ex
2
cosh(x) =
ex + ex
2
On peut dmontrer que la frquence de coupure 3dB est lie la frquence fp par la relation :
1
1
c = p cosh a cosh
n
38
Caractristiques
0
-10
-20
Type I
-30
-40
-50
1
1 + 2
-60
H() 1
-70
-80
-90
-100
10
10
10
20log|H(j)| (N=2,3,4)
1.0
H(0) = 1/ 1 + 2
-1
0.9
0.8
1+
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0.0
0
10
|H(j)| (N=2,3,4)
39
Caractristiques
Type II
0 H()
1 + 2
1.0
0.9
0.8
rt 0.7
ef
s
n
ar
t 0.6
e
d
n
oti
c 0.5
n
of
el
u 0.4
d
o
M
0.3
0.2
0.1
0.0
0
10
Frequence
40
Dfinition
On part du gain en dB :
20 log H ( ) = 20 log
1 + TN( )
2
Ap
= 1010 1
et que lordre N du filtre est donn par :
o Ap est lattnuation p
10 10 1
arg ch
N=
arg ch(a)
a =
a
p
41
sk = sin(k)sh( ) + j cos(k)ch()
avec
k =
+k
2N
N
et
1
1
arg sh
N
0 k 2N 1
(=cte)
Comme dans le cas de Butterworth, on ne prend en compte que la moiti des ples : ceux partie imaginaire <0.
En posant
et en se souvenant que
Imk = cos(k)ch( )
Rek = sin(k)sh()
sin2(x) + cos2(x) = 1
, on voit que
Re k2
Im 2
+ 2k =1
2
sh ( ) ch ( )
ce qui est la dfinition dune ellipse, sh2() et ch2() tant des constantes (voir ci-dessous).
Les ples sont donc situs sur une ellipse.
Rappel : dans un repre (x,y), une ellipse est dfinie par
x2 y 2
+
= 1 ; a et b sont les 2 rayons de lellipse.
a2 b2
42
sk = sin(k)sh() + j cos(k)ch()
On a :
et
k =
do
0k 3
1
1 1
1
1
arg sh = arg sh
arg sh2 0,17
N
0,509 2
N
+k
2N
N
, soit
0 =
3
+ =
4 2 4
1 =
s1 = 0,17 sin(
ch( ) 1
sh() 0,17
2 =
5
+=
4
4
3 7
+
=
4 2
4
3 =
3
3
3
3
) + j cos( ) = 0,17 sin( ) + j cos( )
4
4
4
4
Les ples sont donc situs sur une ellipse de rayons sh()0,17 et ch()1 .
43
0
-1
a =
A
Ordre du filtre :
f(kHz)
-50
a
p
50
10 10 1
1010 1
arg ch
arg ch
=
= 2 ,1
N=
arg ch(a)
arg ch(5)
H ( ) =
1
2
1 + 0 ,26 T3
3
2 .10 .
1
2
3
1 + 0 ,26 4
3
3
2 .10 3
2 .10
Polynmes de Chebyshev
Polynmes de Chebyshev
Les coefficients du polynmes sont donns en fonction de Ap (en gnral, on prend 0,5 ou 1) et de lordre du filtre N.
Pour Ap=1dB :
Forme dveloppe
n=1 : 0,509s+1
n=2 : 0,907s2+0,9957s+1
n=3 : 2,0353s3+2,0116s2+2,5206s+1
n=4 : 3,628s4+3,4568s3+5,2749s2+2,6942s+1
n=5 : 8,1415s5+7,6271s4+13,75s3 +7,933s2+4,7264s+1
n=6 : 14,512s6+13,47s5+28,02s4+17,445s3 +13,632s2+4,456s+1
etc
Forme factorise
n=1 : 0,509s+1
n=2 : 0,907s2+0,996s+1
n=3 : (2,024s+1)(1,006s2+0,497s+1)
n=4 : (3,579s2+2,411s+1)(1,014s2+0,283s+1)
n=5 : (3,454s+1)(2,329s2+1,091s+1)(1,012s2+0,181s+1)
n=6 : (8,019s2+3,722s+1)(1,793s2+0,609s+1)(1,009s2+ 0,126s+1)
etc
45
Filtres de Bessel
Les filtres de Bessel sont bass sur le critre de la plus grande linarit possible de la phase (en fonction de la frquence).
On rappelle lintrt davoir une phase linaire : le signal nest pas dform par le filtre.
On dfinit le retard de groupe :
d()
t =
g
d
H ( p ) = e p
Pour simplifier, on prend =1 :
H(j) = ej
avec constant
H(p) = ep
On cherche ensuite mettre la FT sous forme passe-bas (on cherche faire apparatre ses ples) :
H(p) =
1
1
=
ep + ep ep ep ch(p) + sh(p)
+
2
2
46
Filtres de Bessel
p2 p4
1
ch(p) 1 + 2! + 4! + ... 1
on utilise la "technique" suivante : on exprime le dveloppement
=
= +
cth(p) =
p3 p5
p 3+ 1
sh(p)
1 + + + ...
limit de cth(p)=ch(p)/sh(p), on effectue la division des polynmes
P 5 + ...
3! 5!
p
puis on identifie numrateur et dnominateur resp. ch(p) et sh(p).
Pour dterminer le polynme quivalent au dnominateur,
cth(p) =
ch(p) = 3 + p2
et
cth(p) =
Pour N=3, on a
sh(p) = 3p
do
H(p) =
1
1
=
ch(p) + sh(p) 3 + 3p + p2
1
1
15 + 6p2
+
=
p 3 / p + 1/ 5 / p 15p + p3
1 1 3 + p2
+ =
p 3
3p
p
et sh(p) = 15p + p
1
1
=
Bn(p) a0 + a1p + a2p2 + ... + anpn
do H(p) =
1
1
=
ch(p) + sh(p) 15 + 15p + 6p2 + p3
B0 = 1
B1(p) = p + 1
avec
47
Normalisation
En considrant la frquence normalise pour /c avec c telle que 20log|H(c)|=-3dB, on a :
3
3 + 3 p + p2
On le transforme en polynme standard (en mettant en facteur le terme constant, qui reprsente un gain statique) :
1+ p +
1 2
p
3
La pulsation normalise =c permettant davoir une attnuation de 3dB est telle que
3
1
1 + p + p2 = 1020
3
1
1 + jc + (jc)2 = 1020
3
c = 1,359
H(p) =
1
1
=
1
2
1
+
1
,
359
p
+ 0,6149 p2
1 + 1,359p + (1,359p)
3
48
Polynmes de Bessel
49
Programmation Matlab
0
-10
[b,a]=besself(4,1000)
F=[100:1:10000];
%vecteur de frquences
[hb,bc]=freqs(b,a,F);
semilogx(bc,20*log10(abs(hb)));
-30
-40
)
B
d(
ni
a
G
-50
xlabel('Frequence (radians)');
-60
ylabel('Gain (dB)');
-70
grid;
-80
-90
2
10
Pour la phase :
10
Fre que nc e (Hz )
10
...
3
semilogx(bc,angle(hb));
...
2
1
)
d
a(r
e
s
a
h
P
0
-1
-2
-3
-4
2
10
10
Frequenc e (Hz)
10
50
Filtres de Cauer
Introduction
Les filtres tudis jusquici (Butterworth, Chebyshev, Bessel) taient tous sous la forme :
H(p) =
1
1
=
D(p) a0 + a1p + a2p + ... + pn
On les appelle filtres polynmiaux. Ils sont caractriss par leurs ples. On parle de filtres "tous ples".
D(p) est appele fonction de transmission.
Il existe galement des filtres qui possdent en plus un polynme au numrateur.
H(p) =
51
Filtres de Cauer
Ils sont dfinis par la fonction de transfert suivante :
H ( )
1
1 + 2R N2 ( , / 0 )
o RN(,/0) est appele fonction rationnelle de Chebyshev; N est lordre du filtre, 0 la pulsation de coupure,,
est le facteur dondulation et est le facteur de slectivit.
Dans la bande passante, le gain varie donc entre 1 et
1/ 1 + 2
en.wikipedia.org
Chebyshev de type I.
52
Filtres de Cauer
La fonction elliptique peut se mettre sous la forme suivante :
RN(, x) = r0
i =1
N
i =1
(x xi)
(x xpi)
pour N pair
RN(, x) = xr0
i=1
N
i=1
(x xi)
(x xpi)
pour N impair
avec xi les zros et xpi les ples de ces rationnelles, et r0 un facteur de normalisation tel que RN(,1) = 1
Le dnominateur de ce polynme fait apparatre des zros dans la fonction de transfert du filtre.
Ils sont appels zros de transmission, et ont la proprit dliminer les frquences correspondantes.
53
Filtres de Cauer
Il nexiste pas dexpression analytique pour les ples et les zros de la fonction de transfert du filtre.
Ils sont calculs par des mthodes numriques.
La synthse comporte les tapes suivantes :
1. Dtermination de lordre N en fonction du gabarit
2. Dtermination du polynmes du numrateur et du dnominateur
3. Dtermination des ples et des zros
Exemple Matlab
fp=1000; fa=2000; Ap=1; Aa=40;
[N,Wn]=ellipord(fp,fa,Ap,Aa,'s')
%tape 1
[num,den]=ellip(N,1,50,Wn,'s')
%tape 2
zeros=roots(num)
%tape 3
poles=roots(den)
%tape 3
Une fois les ples et les zros connus, on peut crire la fonction de transfert sous forme dun produit de
fonctions de transfert lmentaires du 1er et du 2e ordre (en regroupant les ples et les zros conjugus entre eux).
On peut alors passer la ralisation lectronique.
54
Programmation Matlab
0
[N,Wn]=ellipord(1000,5000,1,50,'s')
[b,a]=ellip(N,1,50,Wn,'s');
-40
F=[100:1:10000];
%vecteur de frquences
[hb,bc]=freqs(b,a,F);
semilogx(bc,20*log10(abs(hb)));
)
B
d(
ni
a
G
-60
-80
xlabel('Frequence (radians)');
ylabel('Gain (dB)');
-100
grid;
-120
2
10
Pour la phase :
10
Fre quenc e (radia ns )
10
...
semilogx(bc,angle(hb));
2
...
1
)
B
d(
ni
a
G
0
-1
-2
-3
-4
2
10
10
Fre que nc e (ra dia ns )
10
55
Caractristiques
Affichage du gain en dB et de la phase en chelle semi-log :
-50
f=[0.1:0.01:4];
[n,wn]=ellipord(0.4,0.5,1,100) %-99dB entre f/fe=0,4 et 0,5
[b,a]=ellip(n,1,100,wn);
% -> ordre 9
[H,fl]=freqz(b,a,f);
semilogx(fl,20*log(abs(H)),'b');
hold;
[n,wn]=ellipord(0.4,0.45,1,100) %-99dB entre f/fe=0,4 et 0,45
[b,a]=ellip(n,1,100,wn);
% -> ordre 11
[H,fl]=freqz(b,a,f);
semilogx(fl,20*log(abs(H)),'r');
[n,wn]=ellipord(0.4,0.41,1,100) %-99dB entre f/fe=0,4 et 0,41
[b,a]=ellip(n,1,100,wn);
% -> ordre 16
[H,fl]=freqz(b,a,f);
semilogx(fl,20*log(abs(H)),'g');
-100
-150
-200
-250
-300
10
-1
10
50
)
B
d(
e
d
ut
i
ng
a
M
0
-50
-100
-150
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
Normalized Angular Frequency ( rads /s ample)
0.9
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
Normalized Angular Frequency ( rads /s ample)
0.9
[n,wn]=ellipord(0.4,0.5,1,100)
[b,a]=ellip(n,1,100,wn);
freqz(b,a);
)
s
e
e
gr
e
d(
e
s
a
h
P
-200
-400
-600
-800
56
%Butterworth ordre 4
w=logspace(-1,1,1000);
-10
h=freqs(k*poly(z),poly(p),w);
semilogx(w,20*log(abs(h)),'b');
%bleu
hold;
[z,p,k]=cheb1ap(4,0.5);
-30
%Chebyshev type I ordre 4
h=freqs(k*poly(z),poly(p),w);
semilogx(w,20*log(abs(h)),'r');
[z,p,k]=cheb2ap(4,20);
-20
-40
%rouge
-50
-60
h=freqs(k*poly(z),poly(p),w);
semilogx(w,20*log(abs(h)),'g');
[z,p,k]=besselap(4);
%vert
-70
%Bessel ordre 4
-80
h=freqs(k*poly(z),poly(p),w);
semilogx(w,20*log(abs(h)),'c');
[z,p,k]=ellipap(4,0.5,20);
%cyan
-90
-1
10
10
10
%Cauer ordre 4
57
Dlai de groupe
w=logspace(-1,1,1000);
[z,p,k]=buttap(4);
%Butterworth ordre 4
h=freqs(k*poly(z),poly(p),w);
dg=-diff(unwrap(angle(h)))./diff(w);
%dlai de groupe
semilogx(w(1:length(w)-1),dg,'b');
%bleu
hold;
[z,p,k]=cheb1ap(4,0.5);
h=freqs(k*poly(z),poly(p),w);
dg=-diff(unwrap(angle(h)))./diff(w);
%dlai de groupe
semilogx(w(1:length(w)-1),dg,'r');
%rouge
grid;
[z,p,k]=besselap(4);
1
%Bessel ordre 4
h=freqs(k*poly(z),poly(p),w);
dg=-diff(unwrap(angle(h)))./diff(w);
%dlai de groupe
semilogx(w(1:length(w)-1),dg,'c');
%cyan
0
-1
10
10
10
20
0
-20
-40
-60
-80
-100
0.2
0.4
0.6
0.8
1.2
1.4
58
Critres de
choix selon
type de filtre
Butterworth
Chebyshev
Bessel
Cauer
Facilit de
conception
***
**
Raideur des
pentes
**
***
Linarit de la
phase
**
***
Absence
doscillations
(BP)
***
**
***
59
s
r
s j
8. Ralisation lectronique
Remarque : dans le cas de la synthse dun filtre passe-bas, les tapes 2 et 5 nont pas lieu dtre.
60
Ap=1dB fp=4kHz
Aa=40dB fa=2kHz
0
-1
f(kHz)
0,5
-40
F=f/fp
fp
Fp=fp/fp=1
fa
Fa =fa/fp=0,5
0
-1
-40
s
Pour f=fa :
f
f
j a j p
fp
fa
j
p
p
j
1
s
j0,5 j2
0
-1
-40
10 10 1
arg ch
N=
arg ch(a)
Ap
avec
et a =
a
=2
p
A / 10
N=
on prend N=5
Fonction de transfert normalise partir de la table des polynmes de Chebyshev (pour Ap=1dB)
H(s) =
1
(3,454s + 1)(2,329s2 + 1,091s + 1)(1,012s2 + 0,181s + 1)
1
s
H(s) =
0,29s
0,429s2
0,988s2
62
s j
=j
2fp
p
( )
(c)1
c 3
(c)2
H(s) H(j) = H1(j) H2(j) H3(j) =
2
2
1+ j
1
j
2
j
+
1
+
j
2
j
+
+
(c)1
(c)2 (c)2
(c)3 (c)3
j
Identification :
(c)2 = 38,372rad / s
(fc)2 = 6,1Hz
(fc)3 = 4Hz
2 = 0,357
3 = 0,09
63
H1, H2, H3
w0=2*%pi*fc/sqrt(0.429)
xi=0.468*w0/(4*%pi*fc)
num=poly([0 0 1/w0/w0], "s", "coef");
den=poly([1 2*xi/w0 1/w0/w0], "s", "coef");
sys2=syslin('c', num, den);
bode(sys2, 0.1, 100);
w0=2*%pi*fc/sqrt(0.988)
xi=0.179*w0/(4*%pi*fc)
num=poly([0 0 1/w0/w0], "s", "coef");
den=poly([1 2*xi/w0 1/w0/w0], "s", "coef");
sys3=syslin('c', num, den);
bode(sys3, 0.1, 100);
H1 x H 2 x H 3
zoom
zoom
64
R1=1000
R2=1000
C=11,5F
Cellule 2 :
R1=1000
C1=C2=C3=6,2F
R2=17,6k
Cellule 3 :
R1=1000
C1=C2=C3=2,3F
R2=277,8k
65
R2=930
R4=7,3k
Cellule 3 :
R2=348
R4=43k
66
Cours de
Traitement du signal
67
Plan
II) Synthse de filtres numriques
II.1) Introduction
II.2) Transforme en z
II.3) Filtres RII
II.3.1) Mthode de lchantillonnage de la RI
II.3.2) Mthode de lquivalence de la drivation
II.3.3) Mthode de la transforme bilinaire
II.4) Filtres RIF
II.4.1) Principe gnral
II.4.2) Synthse par TF inverse du spectre
II.4.3) Synthse par TFD inverse du spectre
II.5) Performances compares des filtres RII et RIF
II.6) Conclusion
Conclusion gnrale
68
Introduction
Dans lintroduction gnrale sur le filtrage, on a vu quun filtre tait dcrit par une quation diffrentielle :
s(t) + b1
ds(t)
dP1s(t)
dPs(t)
de(t)
dQ1e(t)
dQe(t)
+ ... + bP 1
+ bP
= a0e(t) + a1
+ ... + aQ1
+ aQ
n
P
Q 1
dt
dt
dt
dt
dt
dtQ
QP
De manire analogue, un filtrage numrique consiste transformer une squence discrte dentre en une
squence de sortie :
s(n) = a0e(n) + a1e(n 1) + a2e(n 2) + ... + aPe(n P) b1s(n 1) b2s(n 2) ... bQs(n Q)
QP
n reprsente lindice de lchantillon prsent ; n-i (i>0) reprsentent les indices dchantillons passs.
On appelle cette relation entre-sortie "quation aux diffrences" ("qua. diff.").
La synthse de filtres numriques "se rsume" dterminer des valeurs adquates pour ces coefficients.
Les outils mathmatiques utiliss pour ltude des filtres analogiques sont les transforme de Laplace et de Fourier ;
loutil dtude des filtres numriques est la transforme en z.
La TZ permet de modliser les filtres numriques sous la forme de fonctions de transfert polynmiale, facilitant leur tude.
P
S(p)
H(p) =
=
E(p)
am.pm
S(z)
H(z) =
=
E(z)
m=0
N
1 + bn.pn
a z
p =0
Q
1 + bq.zq
q=1
n =1
(attention, les coefficients du filtre analogique ne sont pas les mmes que celui du filtre numrique !)
69
traitement
numrique
e(nTe)
Traitement temps-rel
s(nTe+tt)
e(n)
e(n-1)
e(n-2)
s(n-1)
s(n-2)
e(n-P)
s(n-Q)
s(n)
70
s(n) = a0e(n) + a1e(n 1) + a2e(n 2) + ... + aPe(n P) b1s(n 1) b2s(n 2) ... bQs(n Q)
On va voir que :
- ils permettent de synthtiser des filtres partir des caractristiques de filtres analogiques
(cellules lmentaires, filtres de Butterworth, de Chebyshev, de Bessel et de Cauer, etc) ;
- ils peuvent tre instables, do les prcautions prendre dans leur implmentation.
Filtres RIF
Leur quation aux diffrences ne comporte que les termes en e(n-i) ; la sortie ne dpend que des valeurs de lentre :
72
La transforme en z
La transforme en z (TZ) est loutil dtude des systmes chantillonns.
Dfinition
Soit s(n) un signal numrique. Sa TZ est dfinie par :
S (z ) =
s (n )z
n=0
H (z) =
h (n )z
n=0
Comme dans le cas continu, la fonction de transfert est la transforme de la rponse impulsionnelle du filtre.
Les coefficients h(n) reprsentent donc les chantillons de sa rponse impulsionnelle.
En pratique, la rponse impulsionnelle possde un nombre fini dchantillons. La sommation est donc finie :
N
H(z) = h(n)zn
n =0
73
z=ee
L
(t)
1
t0p
L
(t t0)
e
se(t) = s(t)
(t nT ) = s(nT )(t nT )
e
n =
n =
Se(p) = s(nTe)e
nTep
n=0
Tp
z=ee
S (z ) =
s (nT )z
n=0
S (z ) =
s (n )z
n=0
74
Proprits de la transforme en z
La transforme en z
Proprits lmentaires
Rappel domaine continu
Linarit :
Z
a1s1(n) + a2s2(n)
a1S1(z) + a2S2(z)
L
a1.s1(t) + a2.s2(t)
a1.S1(p) + a2.S2(p)
Retard temporel :
L
s(t t0)
et0pS(p)
Z
s(n n0)
zn0S(z)
Z
*
Produit de convolution :
Z
*
H(z) =
Stabilit :
S(z)
E(z)
E(z) = 1
H(z) =
S(z)
= S(z)
1
: RI
Rappel domaine continu
h(n) <
systme stable
n =0
t =0
h(t) dt <
75
un+1 = r.un
r : raison
u n = u 0r n
N1
SN = un
n=0
1 r
1 r
est gale :
SN = u0
S = u0 lim
Exemple numrique :
un = 0,5n
1 rn
n 1 r
n +1
un+1 = 0,5
S2 = u0
1 r2
1 0,52 1 0,25 0,75
= 1
=
=
= 1,5
1 r
1 0,5
1 0,5
0,5
1 rn
1 0,5n
1
= lim
=
=2
n 1 r
n 1 0,5
0,5
S = u0 lim
76
Quelques exemples de TZ
Transformes lmentaires
Impulsion
Il sagit ici de limpulsion de Kronecker, dfinie par (n)={1,0,0,} :
Z
s(n) = (n)
S(z) = 1
Echelon unit
1
Z
s(n) = u(n) = 1 pour n 0
S(z) =
0 pour n < 0
1 z1
Signal exponentiel
Z
s(n) = eanT
S(z) =
1
1 z1eaT
77
Stabilit
De la mme manire quun filtre analogique peut tre tudi dans le plan p du point de vue de ses ples et de ses zros,
les filtres numriques peuvent tre tudies dans le plan z.
La correspondance plan p plan z est directement lie la relation entre les variables p et z :
z = eTep
Lchantillonnage conduit limiter le plan p la bande horizontale [-e/2, e/2] (e pulsation dchantillonnage).
Il a t vu prcdemment quun filtre analogique tait stable si tous ses ples sont partie relle ngative.
Un filtre numrique est donc stable si tous ses ples sont lintrieur du cercle unit.
78
a z
p=0
Q
1 + bq.zq
q=1
E(z) et S(z) reprsentent respectivement les transformes en z des chantillons dentre e(n) (avec n correspond nTe)
et de sortie s(n) courants : E(z)=Z{e(n)} ; S(z)=Z{s(n)}
H(z) =
Z{e(n i)} = ziE(z)
S(z)
E(z)
(proprits de retard temporel et de linarit)
s(n) = a0e(n) + a1e(n 1) + a2e(n 2) + ... + aPe(n P) b1s(n 1) b2s(n 2) ... bQs(n Q)
79
Introduction
En cherchant transformer les filtres analogiques tudis prcdemment en filtres numriques, on va voir quon arrive
des fonctions de transfert de type RII.
La variable z tant dfinie par
pTe
z=e
seffectuer en remplaant p par p = (1/ Te) ln z , mais cette transformation ne conduit pas une forme polynmiale.
On doit donc rechercher des mthodes dapproximation.
Les mthodes de transformation tudies ici sont :
- chantillonnage de la rponse impulsionnelle
- quivalence de la drivation (transformation dEuler)
- quivalence de lintgration (transforme bilinaire)
Toutes ces mthodes conservent la stabilit des filtres analogiques, une fois convertis en filtres numriques.
80
H1
H2
H3
N=2
N=3
N=1
H
N=5
S ( z ) a 0 + a1z 1
=
E (z )
1 + b1z 1
(N=1)
(N=2)
Du point de vue de la programmation, chaque bloc fonctionnel correspond un ensemble de lignes de programme
calculant s(n) en fonction de e(n) et des valeurs mmorises :
- e(n-1) et s(n-1) pour le 1er ordre,
- e(n-1), e(n-2), s(n-1) et s(n-2) pour le 2e ordre.
e(n-1)
e(n-2)
e(n)
e(n-1)
e(n-2)
s(n-1)
s(n-2)
N=2
e(n-1)
s(n-1)
s(n-2)
N=2
s(n)
s(n-1)
N=1
81
H(z) =
a0 + a1z1
1 + bz1
b <1
b <1
b=
Cas du 2e ordre
H(z) =
Le dnominateur possde 2 racines :
1<
b1 b12 4b2
<1
2
z1, z2 =
fc fe
fc + fe
fe < +fe
a0 + a1z1 + a2z2
1 + b1z1 + b2z2
b1 b12 4 b2
2
b1 < b2 + 1
b < b +1
1 2
b1 < b2 + 1
Dans le cas o des ples de la fonction de transfert en z sont proches du cercle unit, il faut faire attention quils
ne se trouvent pas dplacs en dehors de ce cercle la suite darrondis numriques.
82
H(p) =
TZ
H (z) =
1
p pi
TL-1
h (n ). zn =
n=0
ch. Te
h ( t ) = e p it
1 (e i e z 1)n
p T 1
n 1 e i ez
epinTe.z n =
h ( n ) = e p inT e
pT
n=0
n=0
1:
z=1 correspond la frquence nulle. Le gain pour z=1 est gal
H0 =
piTe 1
1 e z
=
z =1
H (z ) =
1
pT
1 e i e z 1
1
pT
1 e i e
Il nest pas nul, alors que cest le cas de la fonction analogique de dpart.
Il faut donc multiplier H(z) par 1/H0 :
1 / H0
1 e p iTe z 1
H (z ) =
Finalement :
H (z ) =
S (z)
E (z )
S(z) =
avec
1
1 epiTe
H0 =
TZ-1
1
pT
E(z) + e i ez1S(z)
H0
s (n ) =
1
e (n ) + epiTes (n 1 )
H0
83
Le cellule lmentaire passe-bas du 1er ordre est un exemple du systme un ple simple tudi prcdemment :
H(j) =
1
1+ j
j=p
H(p) =
TL-1
c
p + c
TZ
H (z) =
h (t) = ce
h ( n ). z
n=0
ch. Te
c t
h(n) = cecnTe
c
T
1 e c e z 1
H (z ) =
1 / H0
T
1 e c e z 1
avec
H0 =
1
T
1 e c e
Finalement :
H (z ) =
S (z)
E (z)
S(z) =
1
T
E(z) + e c e z1S(z)
H0
TZ-1
s(n) =
1
e(n) + ecTes(n 1)
H0
84
Exemple
Soit programmer un filtrage laide de la fonction de transfert du 1er ordre suivante, avec fc=1Hz : H(j) =
1 / H0 = 1 e
H (z ) =
c Te
1
1+ j
= 1 e0,2 = 0 ,0609
0 , 0609
0 , 0609
1 / H0
=
=
0 ,2 1
c Te 1
1 e
z
1 0 , 9391 z 1
1 e
z
Magnitude
0
cTe
s(n 1)
-5
-10
= 0,0609e(n) + 0,9391s(n 1)
b -15
d
-20
-25
-30
-35
-4
10
fc=1;
fe=100;
a=[0,1-exp(-2*%pi*fc/fe)]; //coef. num. fonction transfert
b=[-exp(-2*%pi*fc/fe), 1]; //coef. dn.
num=poly(a, "z", "coef");
den=poly(b, "z", "coef");
sys=syslin('d', num, den);
bode(sys, 0.001, 0.3)
-2
10
Hz
-1
10
10
Phase
0
-10
s
-20
e
e-30
gr
e
d-40
-50
-60
-70
-4
10
-3
10
-3
-2
10
10
Hz
-1
8510
10
Autres filtres
Filtre passe-bas du 2e ordre
H(j) =
1
2
1 + 2j / c + ( j / c )
TL-1
Dans les 2 cas, on peut connatre la TZ-1 (=H(z)), en utilisant la table des transformes.
Filtre passe-haut du 1er ordre
La fonction de transfert possde un ple et un zro (nul) :
H(p) =
p
p
= 1+ i
p pi
p pi
ch. Te
H(j) =
h ( n ) = ( n ) c e
j / c
1
= 1
1 + j / c
1 + j / c
c nT e
TZ
TL-1
H (z ) = 1
h (t ) = ( t) ce
c t
c
1 e c Te z 1
En mettant H(z) sous forme rationnelle, on peut alors la transformer en quation aux diffrences.
Limitations
Lchantillonnage de la RI priodise le spectre du filtre analogique.
Or, le spectre dun filtre passe-haut nest pas limit dans les hautes frquences ; il y a donc chevauchement des spectres.
Cette mthode de transformation nest donc pas adapte aux filtres passe-haut et passe-bande bande large.
86
s(t) =
de(t)
dt
Drivateur en chantillonn :
s(n) =
e(n) e(n 1)
Te
Te priode dchantillonnage
Drivateur en continu :
Identification :
S(p)
=p
E(p)
S(z) 1 z1
=
E(z)
Te
p=
1 z1
Te
Limitations
1
Par dfinition, z = epTe ; son dveloppement limit au voisinage de 0 est : z 1 pTe , donc pour pTe<<1.
Rappel du dveloppement en srie entire dune fonction, au point a :
f(x) = f(a) + (x a)f' (a) +
Lquivalence p (1 z1) / Te
(x a)2
(x a)n (n)
f' ' (a) + ... +
f (a) + ... + (x a)n(x a)
2!
n!
On peut dmontrer que cette mthode transforme laxe imaginaire du plan p en un cercle de centre 1/2 et de rayon 1/2
(au lieu du cercle centr sur 0 et de rayon 1 de la TZ). Elle nest donc correcte que pour les basses frquences, et
nest pas adapte aux filtres devant laisser passer des frquences leves.
87
e(t) = RC
ds(t)
+ s(t)
dt
e(n) = RC(
RC RC
e(n) = s(n)
+ 1
s(n 1)
Te
Te
s(n) s(n 1)
) + s(n)
Te
Te
Te + RC
Magnitude
0
-5
-10
Programme Scilab :
b-15
d
-20
-25
tho=1/(2*%pi);
//->fc=1/(2*%pi*tho)=1
fe=100;
//fc=0,01 en frquence rduite
Te=1/fe;
beta=Te/(Te+tho);
a=[beta,0];
b=[-(1-beta),1];
num=poly(a, "z", "coef");
den=poly(b, "z", "coef");
den=poly(b, "z", "coef");
sys=syslin('d', num, den)
bode(sys, 0.0001, 0.5);
-30
-35
-4
10
-3
10
-2
10
Hz
-1
10
10
Phase
0
-20
-40
s -60
e
er -80
g
e
d-100
-120
-140
-160
-180
10
-4
-3
10
-2
10
Hz
-1
10
10
88
s(t) = e(t).dt
s(n) = s(n 1) + Te
Intgrateur en chantillonn :
e(n) + e(n 1)
2
Te priode dchantillonnage
Intgrateur en continu :
1
Identification :
1
1 Te 1 + z
=
p 2 1 z1
S(p) 1
=
E(p) p
S(z) Te 1 + z
=
E(z) 2 1 z1
p=
2 z 1
.
Te z + 1
H(p) =
p=
H(z) =
89
H(j) =
1
1+ j
H(p) =
On obtient :
H(z) =
fc
fc + fe
1
1+
H(z) = H0
1
fe z 1
.
1+
fc z + 1
H(z) =
p
c
1 + a1z1
1 + bz1
1 + z1
1 + z1
= H0
f f
1 + (H0 H1)z1
1 + c e z1
fc + fe
avec
H0 =
fc
et
fc + fe
H1 =
fe
fc + fe
Magnitude
0
-5
-10
b
d -15
fe=100Hz, fc=1
-20
-25
fe=100;
fc=1;
den=%pi*fc+fe;
H0=%pi*fc/den;
H1=fe/den;
a=[H0,H0];
b=[H0-H1,1];
num=poly(a, "z", "coef");
den=poly(b, "z", "coef");
sys=syslin('d', num, den)
bode(sys, 0.0001, 0.2)
-30
-4
10
-3
10
-2
10
Hz
-1
10
10
Phase
0
-10
-20
s -30
e
er -40
g
e
d -50
-60
-70
-80
-90
10
-4
-3
10
-2
10
Hz
-1
10
10
90
c
H(j) =
1+ j
c
On cherche la mettre sous la forme :
On obtient :
H(z) =
fe z 1
.
fc z + 1
H (z ) =
f z 1
1+ e .
fc z + 1
p
c
H(p) =
p
1+
c
H(z) = H0
1 + a1z1
1 + bz 1
fe
1 z1
1 z1
.
= H0
fc + fe 1 + z1fc fe
1 + (H1 H0)z1
fc + fe
H0 =
avec
fe
fc + fe
et H1 =
fc
fc + fe
Magnitude
0
-5
-10
-15
b-20
d
-25
-30
-35
-40
fe=100;
fc=1;
den=%pi*fc+fe;
H1=%pi*fc/den;
H0=fe/den;
a=[-H0,H0];
b=[H1-H0,1];
num=poly(a, "z", "coef");
den=poly(b, "z", "coef");
sys=syslin('d', num, den)
bode(sys, 0.0001, 0.5)
-45
-4
10
-3
-2
10
-1
10
Hz
10
10
Phase
90
80
70
60
s
e 50
er
g 40
e
d
30
20
10
0
-10
10
-4
-3
-2
10
-1
10
Hz
10
10
91
2 z 1
.
Te z + 1
H(z) = H0
1 + 2j
p=
H(j) =
H(z) = H0
+j
0 0
1 + a1z1 + a2z2
1 + b1z1 + b2z2
1 + 2z1 + z2
avec H0 =
1 + 2
fe fe
+
fc fc
Magnitude
20
10
0
b-10
d
-20
-30
-40
-50
-3
10
-2
10
Hz
-1
10
Phase
0
-20
-40
s -60
e
er -80
g
e
d-100
-120
-140
-160
-180
10
-3
-2
10
Hz
-1
10
92
p=
.
Te z + 1
2 z 1
Hn(z) = .
Te z + 1
Hn(j) =
2 ejTe 1
2j T
= ... = tg( e )
. jTe
Te e + 1
Te
2
Hn(j ) =
T
2
tg ( e )
2
Te
Te/2 /2
arg(Hn(j)) =
Hn(j)
La rponse en frquence du filtre numrique ne correspond donc plus son quivalent analogique quand f fe/2 .
Pour pallier cet inconvnient, on ralise une pr-distorsion des frquences :
avant dappliquer la transforme bilinaire prcdente. on modifie une frquence caractristique du filtre :
frquence de coupure dans les cas passe-bas et passe-haut, frquence centrale dans les cas passe-bande et coupe-bande.
c' =
T
2
.tg c e
Te
2
La transforme bilinaire est ensuite applique ; la valeur de c pour le filtre numrique correspond alors bien celle du
filtre analogique de dpart.
93
H (j ) =
1
2
+j
1 + 2 j
c c
avec c=1rad/s et
2
2
H (p ) =
1
1 + 2p + p2
c' =
H (p ) =
2
1
T
.tg c e = 2.tg = 2tg0,5463 = 1,0926
Te
2
2
1
2
p
p
1+ 2
+
1 ,0926 1 ,0926
1
1 + 1 ,2944 p + 0 ,8377 p2
2 z 1
p= .
Te z + 1
H (z) = ...
Intrt de la transformation
Un intrt important de cette transformation est quelle comprime toutes les frquences dans la bande de Shannon (0-fe/2).
Tout repliement spectral est alors impossible. Elle est adapte tous les types de filtres, mme passe-haut.
Cette mthode de transformation est la plus utilise en pratique.
94
-10
-20
L=64;
[Ha,wa]=freqs(b,a,L);
[Hn,wn]=freqz(bb,ab,L,fe);
-30
[Hnp,wnp]=freqz(bbp,abp,L,fe);
semilogx(wa/(2*pi),20*log10(abs(Ha)),':'); %pointill
-40
hold on;
title('Butterworth : analogique (pointill), RII (hachur), RII rectifi (trait plein)');
semilogx(wn,20*log10(abs(Hn)),'--'); %ligne hachure
-50
semilogx(wnp,20*log10(abs(Hnp)),'-'); %trait plein
grid;
-60
10
95
96
-fe
fc
-fc
-fe/2
fe/2
fe
La phase idale est nulle. La rponse en frquence est donc relle pure.
Les mthodes de synthse sont bases sur la Transforme de Fourier inverse de cette rponse idale :
- synthse par TF inverse, ou par dcomposition en srie de Fourier de la rponse frquentielle (ce qui revient au mme) ;
- synthse par TFD inverse.
Elles consistent dterminer le nombre et la valeur des coefficients du filtre (que lon notera hi), qui sont galement ceux
de lquation aux diffrences :
Synthse des filtres RIF ( Rponse Impulsionnelle Finie) par transforme de Fourier inverse du spectre
S(f) = rect2fc(f)
h ( t) = 2 fc sin c ( 2 fc t)
La priodisation du motif (priode fe) provoque une multiplication de la TF de ce motif par un peigne de Dirac :
+
n =
n =
n =
n 2n
1/ fc
h ( n ) = 2 Fc sin c ( 2 Fc n )
98
Autres filtres
Pour les autres types de filtres, le mme calcul donne les rsultats ci-dessous.
Passe-haut
fc
-fe/2
fc
fe/2
Passe-bande
F
fc1 fc2
-fe/2
fe/2
Coupe-bande
F
fc1 fc2
-fe/2
fe/2
Passe-haut :
Passe-bande :
Coupe-bande :
avec, dans tous les cas : n=0,,N-1, n0=N/2 pour N pair et n0=(N-1)/2.
100
Dans le domaine des frquences, cette troncature se traduit par un produit de convolution :
Pour lexemple de la rponse en frquence H(f) dun passe-bas et h(t) la rponse impulsionnelle correspondante :
H(f)
*
-fc
H(f)
fc
H(f)
W(f)
Aprs troncature de la RI, la rponse en frquence pratique possde des oscillations en bande passante et en bande
attnue, et ses pentes de variation sont moins importantes quen thorie.
Interprtation :
- pour que la rponse frquentielle relle se rapproche le plus possible de celle qui est dsire, le nombre de
coefficients du filtre N doit tre le plus grand possible ;
- plus N est petit, plus la frquence de coupure obtenue sera infrieure la frquence de coupure dsire.
101
discret
x(t) X(f)
F
x(k)
X(f)
F
x(t t0)
X( f ) e
Interprtation :
F
x(k n)
X(f)ej2fnTe
g =
(*)
( f ) = 2 fnT e
( f ) = 2 ft 0
phase :
temps propag. :
j2 ft 0
d()
1 d(f)
= t0
=
d
2 df
g = nTe
(*) dmonstration :
x(k) = y(k n)
Y (f ) =
F
X(f) =
x(k)(t kTe)
k =
y(k n ) e
k =
j2 fkTe
x(k)e
j2fkTe
k =
X(f) =
x(k)e
j2fkTe
x(k)e
j2fkTe
k =
k =
En effectuant le changement de variable k=-u, et en utilisant la proprit : x(k)=x(-k) , on peut montrer que lon obtient :
La Transforme de Fourier dune squence dchantillons x(k) prsentant une symtrie x(k)=x(-k) est donc relle pure.
( sa phase est nulle).
De mme, on pourrait montrer que cest galement le cas si les coefficients sont anti-symtriques (x(k)=-x(-k))
indices dchantillons
dcalage
phase
impair
pair
[-(N-1)/2,,(N-1)/2]
[-N/2,,N/2-1]
(N-1)/2
N/2
2((N 1) / 2)Tef
2(N / 2)Tef
((N 1) / 2)Te
(N / 2)Te
103
2e mthode de dtermination des coefficients h(n) : par dcomposition en srie de Fourier du spectre damplitude
Le spectre damplitude tant priodique de priode fe, on peut galement le dcomposer en srie de Fourier.
Rappel : un signal priodique s(t) peut se mettre sous la forme :
s (t ) =
c(n).e
jn 2
t
T
avec
c (n ) =
n =
jn 2
1 T
T
s (t). e
dt
0
T
H (f) =
h (n ). e
jn 2 fTe
avec
n =
fe
h (n ) = Te H (f ). e
jn 2 fTe
df
Dcalage :
Aprs dcalage :
h (n ) =
n0 =
N
=5
2
, n=-5,,4
, n=0,,9
1
sin(0,02 (n 5) )
(n 5 )
Rsultats obtenus :
h0= 0.0989147
h1= 0.0995054
h2= 0.0999662
h3= 0.1002962
h4= 0.1004945
h5= 0.1005607
= h9
= h8
= h7
= h6
Affichage graphique :
106
k 2
wk = 0,54 + 0,46 cos
k=-(N-1)/2,0,,(N-1)/2
107
f
Il existe une formule empirique permettant de dterminer lordre du filtre, en fonction des paramtres de ce gabarit :
2
1
log10(
)
3f
1012
108
Exemple de calcul
109
Principe de la synthse de filtres RIF par Transforme de Fourier Discrte inverse (TFD-1) du spectre damplitude
On dfinit dabord la rponse frquentielle dsire pour le filtre RIF. Elle est ensuite chantillonne.
Sa TFD-1 est calcule ; le rsultat correspond la rponse impulsionnelle (RI) du filtre (donc aux coefficients du RIF).
Rappel de lexpression de la TFD :
X( k ) =
N 1
x(n )e
j 2 nk
N
, k=0,,N-1
x (n ) =
n=0
directe
1 N 1
X( k ) e
N k =0
j2 nk
N
, n=0,,N-1
H(f)
inverse
x(n) =
1 N1
2nk
X(k) cos
N k =0
N
fc
fe
f(Hz)
Le rsultat correspond aux chantillons de la rponse impulsionnelle. Celle-ci est relle et impaire (donc non causale).
Pour que le filtre soit ralisable, il faut rendre la RI causale : elle doit tre dcale de n0 chantillons vers la droite, avec :
N pair : n0=N/2 ; N impair : n0=(N-1)/2
h(n) =
1 N1
2k
H(k). cos N (n n0 )
N n=0
n=0,,N-1
H(k) = H(f)
f=
kfe
N
H0 correspond une frquence nulle et HN-1 fe-fe/N . La rsolution frquentielle est fe/N (1/N en frquences rduites).
110
Exemple
Filtre passe-bas, avec N=16, Hn=1 pour n variant de 0 2 et de 14 15, et Hn=0 pour n variant de 3 13.
h(n) =
1 N1
2k
H(k).cos N (n n0 ) , n0=N/2=8
N k =0
h(n) =
1 15
2k
cos 16 (n 8 ) , k=0,1,,15
16 k =0
La frquence de coupure rduite est gale : fc=2/N=2/10=0,25. Cest approximativement ce quon observe sur la figure.
Programme Scilab :
N=10;
Coefficients :
if modulo(N,2)==0 //cas N pair
p=N/2;
else
//cas N impair
h0= 0,1
p=(N-1)/2;
h1= 0
end
Nc=3;
//correspond fc=Nc/N
h2=-0,1236068
for n=0:N-1
h3= 0
if(n<Nc)
h4= 0,3236068
H(n+1)=1;
end,
h5= 0,35
if(n>N-Nc)
H(n+1)=1;
end,
end
for k=0:N-1
somme=0;
for n=0:N-1
somme=somme+H(n+1)*cos(2*%pi*n*(k-p)/N);
end,
h(k+1)=1/N*somme;
end
Magnitude
10
0
-10
b
d-20
= h9
= h8
= h7
= h6
-30
-40
-50
-2
-1
10
10
Hz
10
Phase
0
-50
-100
-150
s
e-200
er
g
e-250
d
-300
-350
-400
-450
-500
-2
-1
10
10
Hz
10
111
...
for k=0:N-1
w(k+1)=0.54+0.46*cos(2*%pi*(k-p)/N);
somme=0;
for n=0:N-1
somme=somme+H(n+1)*cos(2*%pi*n*(k-p)/N);
end,
h(k+1)=1/N*somme*w(k+1);
end
...
0
-10
b -20
d
-30
-40
-50
-60
-2
10
-1
10
Hz
10
Phase
0
-100
s -200
e
e
gr -300
e
d
-400
-500
-600
10
-2
-1
10
Hz
10
Limitations
Si le nombre dchantillons hk du filtre est limit, la rsolution frquentielle lest galement.
Par exemple, avec N=10, on passe directement dune frquence de coupure fc=2/N=2/10=0,2 fc=3/10=0,33
(pour une application audio, avec fe=44100Hz, cela reprsente respectivement 0,2x44100=8820Hz 0,33x44100=14700Hz.
Do la ncessit dutiliser un grand nombre de coefficients.
112
Exemple numrique
113
RII vs RIF
Comparaison RII/RIF
Filtres RII
Avantages :
- peu de coefficients donc calcul rapide
- modlisation des filtres analogiques (et notamment possibilit dobtenir des rsonances)
Inconvnients :
- risque dinstabilit surtout pour les grands facteurs de qualit
- les coefficients doivent tre cods avec beaucoup de prcision (consquence du risque dinstabilit)
- phase non-linaire (se traduit par une dformation du signal).
Filtres RIF
Avantages :
- pas de risque dinstabilit
- phase linaire
- permet de synthtiser nimporte quelle fonction de transfert (sauf rsonances)
Inconvnients :
- nombreux coefficients surtout pour les pentes raides et les bandes passantes troites
114
Conclusion
Conclusion
115
Conclusion gnrale
Conclusion gnrale
116