Filtrage numérique linéaire

Download Report

Transcript Filtrage numérique linéaire

Filtres numériques linéaires
Hugues GARNIER
Qu’est-ce qu’un filtre numérique
•  C’est un procédé de calcul (un programme informatique) qui permet
de transformer un signal numérique d’entrée en un signal
numérique de sortie pour obtenir le filtrage désirée du signal
e(n)
s(n)
unité de
calcul
Traitement numérique
Signaux analogiques / numériques
•  Un signal peut se présenter sous différentes formes selon que son
amplitude est continue ou discrète et que le temps est lui-même
continu ou discret. On distingue ainsi 4 types de signaux :
Amplitude
Continue
Discrète
q
(t)
Continu
x
0
0
t
t
Signal analogique
Temps
Signal quantifié
CAN
x(t k )
Discret
Echantillonnage
x(t)
x
q
(t
k
)
CNA
0
tk
Signal échantillonné
0
tk
Signal numérique ou discret
= suite de nombres
quantification
Chaîne de traitement numérique
•  Une chaîne de traitement numérique est constituée des éléments
suivants :
Te
e(t)
e(n)
CAN
Signal analogique
Signaux numériques
unité de
calcul
s(n)
s(t)
CNA
Signal analogique
Traitement numérique
•  Traitements numériques implantés :
–  sur des processeurs standards (micro-ordinateur)
–  sur des processeurs dédiés (processeurs de traitement du signal :
DSP pour Digital Signal Processor)
•  Si phénomènes pas trop rapides : utilisation d'un micro-ordinateur
•  Si phénomènes rapides : utilisation de cartes spécialisées avec DSP
Chaîne de traitement numérique
•  Une chaîne de traitement numérique est constituée des éléments
suivants :
Te
e(t)
e(n)
CAN
Signal analogique
Signaux numériques
unité de
calcul
s(n)
s(t)
CNA
Signal analogique
Traitement numérique
•  Exemple de traitement (filtrage) numérique opéré sur un signal
Soit un signal e(n)=[1 1 0 0 0 0 0].
Supposons que le DSP effectue le calcul suivant :
s(n)=0.5 e(n) + 0.5 e(n-1)
Calculer et représenter la sortie du DSP.
Performances comparées entre filtrage
numérique et analogique
10000 Nombre de pôles et zéros
Filtres numériques
1000
100
Filtres analogiques
10
Fréquences
1
1
10
100
1000
10 k
100 k
1M
10 M
Filtrage analogique :
- couvre une gamme de fréquences plus large
- est limité en nombre de pôle et zéros
Le nombre de pôles et zéros détermine la "raideur" d'un filtre
100 MHz
Caractérisation d’un filtre numérique
Un filtre numérique linéaire peut être décrit par :
–  son équation aux différences
–  sa réponse impulsionnelle
–  sa fonction de transfert en z
–  sa réponse fréquentielle
Equation aux différences
•  Un filtre numérique linéaire invariant dans le temps possédant
une entrée e(n) et une sortie s(n) est régi par une équation aux
différences à coefficients constants (réels) :
s(n) + a1s(n -1) +…+ aNs(n - N) = b0e(n) + b1e(n -1) +…+ bMe(n - M)
•  Exemples de filtres du 1er ordre :
1
1
s(n) = e(n) + e(n -1)
2
2
s(n) = e(n) - 0.8s(n -1)
Réponse impulsionnelle/produit de convolution
•  Réponse impulsionnelle
–  Un filtre numérique est caractérisée par sa réponse impulsionnelle
h(n), c’est à dire la sortie obtenue lorsque l’entrée est une
impulsion unité discrète δ(n)
•  Produit de convolution discret
–  h(n) permet de calculer la sortie du filtre à toute entrée e(n) via le
produit de convolution discret
+∞
s(n) = h(n)*e(n)= ∑ h(n − i)e(i) =
i=-∞
+∞
∑ h(i)e(n − i)
i=-∞
–  Si le filtre est causal : h(n)=0 pour tout n<0
+∞
s(n) = h(n)*e(n)=∑h(i)e(n − i)
i=0
Fonction de transfert
Soit un filtre numérique décrit par l’équation :
s(n) + a1s(n -1) +…+ aNs(n - N) = b0e(n) + b1e(n -1) +…+ bMe(n - M)
En appliquant la T en Z aux deux membres de l’équation et en utilisant :
Z (x(n-i)) =z−iX(z)
(
)
(
)
1+a1z −1 +… + aN z −N S(z) = b0 +b1z −1 +… + aM z −M E(z)
−1
−M
S(z) b0 +b1z +… + aM z
H(z) =
=
E(z) 1+a z −1 +… + a z −N
1
N
Zéros de H(z) : valeurs qui annulent le numérateur
Pôles de H(z) : valeurs qui annulent le dénominateur
Stabilité d’un filtre numérique
•  On détermine sa réponse impulsionnelle à partir de la fonction de
transfert H(z) du filtre
Z−1 (H(z)) = h(n)
H(z) =
K(z − z1)(z − z 2 )…(z − zM )
A1
AN
=
+… +
(z − p1)(z − p2 )…(z − pN )
1− p1z −1
1− pNz −1
"
%
" A
%
-1
N
' +… + Z $
'
h(n)=Z
−1
−1
$#1− p1z '&
$#1− pNz '&
-1 $
A1
h(n)=A1(p1)n +…+ AN (pN )n
Ai : scalaire réel ou complexe
•  Un filtre est stable si la réponse impulsionnelle h(n) ne diverge
pas. Il faut pour cela que tous les pôles pi de H(z) aient un module
inférieur à 1
Stabilité d’un filtre numérique
•  Si on connaît la fonction de transfert du filtre numérique
−1
−M
S(z) b0 +b1z +… + aM z
H(z) =
=
E(z) 1+a z −1 +… + a z −N
1
N
•  Le filtre numérique est stable si tous ses pôles pi (racine
du dénominateur de H(z)) ont un module inférieur à 1
Im(z)
pi < 1
-1
INSTABLE
STABLE
1
Re(z)
Domaine discret
Correspondance entre les plans de Laplace et de Z
pour la stabilité
Filtres analogiques
Filtres numériques
z = epTe
Im(z)
Im(p)
INSTABLE
STABLE
-1
0
1
Re(z)
Re(p)
Domaine de Laplace
Re(pi ) < 0
INSTABLE
STABLE
Domaine discret
pi < 1
Réponse d’un filtre linéaire à un signal sinusoïdal
•  On envoie en entrée une sinusoïde de fréquence f0
(
e(nTe ) = Esin 2πf0nTe
)
dans un filtre de réponse fréquentielle
H(f) = H(f) e
(
jArg H(f)
)
•  La sortie en régime permanent s’écrit :
(
s(nTe ) = E H(f0 ) sin 2πf0nTe + φ(f0 )
)
C’est une sinusoïde de même fréquence f0 que l’entrée mais avec une
amplitude et une phase différentes (qui dépendent de H(f0))
Réponse fréquentielle
•  On remplace z=ej2πfTe dans H(z) pour obtenir la réponse
fréquentielle. Celle-ci est à valeurs complexes et peut s’écrire
H(f) = H(f) e
(
jArg H(f)
)
•  Le tracé de l’évolution du module et de la phase en fonction de la
fréquence constitue la réponse fréquentielle en amplitude et en
phase du filtre
•  Attention, on se limite à la plage de fréquences [0 ; fe/2]
H(f) =
()
S(f)
E(f)
(
φ f = Arg H(f)
)
Les deux types de filtres numériques
•  Filtres à Réponse Impulsionnelle Finie (RIF) ou non récursifs
s(n) = b0e(n) + b1e(n - 1) +…+ bMe(n - M)
M
€
H(z) =
B(z)
=
A(z)
non récursif
M
∑biz
∑bizM−i
−i
i=0
1
=
i=0
RIF
zM
•  Filtres à Réponse Impulsionnelle Infinie (RII) ou récursifs
s(n) = b0e(n) + b1e(n - 1) +… + bMe(n - M) + a1s(n - 1) +… + aNs(n - N) récursif
M
H(z) =
B(z)
=
A(z)
∑biz−i
i=0
N
∑ aiz
i=0
−i
RII
Filtres RIF – Caractéristiques principales
•  Equation de récurrence
M
s(n) = h0e(n) + h1e(n −1) +… + hMe(n − M) = ∑hie(n − i)
i=0
• M : ordre du filtre.
–  Un filtre RIF d’ordre M possède N=M+1 coefficients hi
•  Fonction de transfert
M
H(z) =
B(z)
=
A(z)
M
∑biz
i=0
1
∑bizM−i
−i
=
i=0
zM
•  Stabilité
–  pôles en z=0 => pôles à l’intérieur du cercle unité
•  filtres RIF toujours stables !!
Réponse fréquentielle d’un filtre RIF
•  Fonction de transfert
S(z) M
H(z) =
= ∑ hiz −i
E(z) i=0
•  Réponse fréquentielle
#%p = jω = j2πf
$
%&z = epTe
z=e
jωTe
j2π
=e
f
fe
M
H(f) =
∑ h(n) e
− j2πn
n=0
•  Tracé de H(f) et Arg(H(f))
•  Filtres à phase linéaire
•  Pas de pentes particulières au niveau du diagramme de Bode
•  Réponse fréquentielle : périodique de « période » fe
ð Zone utile du filtre : [0; fe/2]
f
fe
Caractéristique de la réponse fréquentielle en phase
d’un filtre RIF
•  La phase est linéaire (on parle de filtres à phase linéaire)
( )
φ(f) = Arg H(f) =
τ=
−αf
−αf + β
φ(f)
= cste
f
•  Important dans de nombreuses
applications
Ø Synthèse de musique
Ø Transmission de données
Ø Transmission de vidéo
La phase est linéaire
Exemple
Soit le filtre numérique décrit par l’équation de récurrence :
s(n) =
1
1
e(n) + e(n - 1)
2
2
Déterminer :
a) la fonction de transfert en z
b) la réponse impulsionnelle
c) le diagramme des pôles et des zéros. Conclure sur la stabilité
d) la réponse fréquentielle en amplitude et en phase
e) En déduire le type du filtre
f) Préciser la (ou les) fréquence(s) de coupure,
Filtre passe-bas RIF d’ordre 1
Sous Matlab :
>> B=[0.5 0.5];
>> A=[1 0];
>> fe=10000;
>> [H,f]=freqz(B,A,512,fe);
>>subplot(2,1,1)
>>plot(f,abs(H)),grid
>>subplot(2,1,2)
>>plot(f,angle(H),grid
>>xlabel(‘Fréquence (Hz)’)
Filtres RII – Caractéristiques principales
•  Equation de récurrence
+∞
s(n) = ∑ h(k)e(n − k)
k=0
M
N
= ∑ bie(n - i) − ∑ ai s(n - i)
i=0
i=1
= b0e(n) + b1e(n - 1) +… + bMe(n − M) − a1s(n −1) +… − aNs(n − N)
•  Fonction de transfert
M
∑biz−i
H(z) =
N: ordre du filtre
i=0
N
1+ ∑ a jz − j
=
K(z − z1)(z − z 2 )…(z − zM )
(z − p1)(z − p2 )…(z − pN )
j=1
si le numérateur = b0 : filtre purement récursif
Présence de pôles => vérifier la stabilité
pi < 1
Filtres purement récursifs du 1er et 2nd ordre
•  Filtres purement récursifs du 1er ordre
s(n) = b0e(n) − a1s(n - 1)
b0
b0 z
H(z) =
=
−1
z + a1
1+ a z
1
Pôle : p1=-a1
Stable si |p1|=|a1|<1
•  Filtres purement récursifs du 2nd ordre
s(n) = b0e(n) − a1s(n - 1) − a2s(n - 2)
H(z) =
b0
1 + a1z −1 + a2z − 2
b0 z 2
b0 z 2
= 2
=
z + a1z + a2 (z − p1)(z − p2 )
Réponse fréquentielle
•  Fonction de transfert
H(z) =
•  Réponse fréquentielle
H(f) =
b0
1 + a1e− j2πfTe
=
b0
1+ a1z −1
z = e j2 πfTe
b0
1 + a1cos(2πfTe )− ja1sin(2πfTe )
• Tracé du module et de la phase en fonction de f
réponse périodique de période fe
zone utile du filtre : [0, fe/2]
Pas de phase linéaire
Utilisation d’un logiciel (Matlab) par exemple
pour tracer la réponse fréquentielle
a1=0.8
Exemple
Soit le filtre numérique décrit par l’équation de récurrence :
s(n) =
1
4
e(n) + s(n - 1)
5
5
Déterminer :
a) la fonction de transfert en z
b) la réponse impulsionnelle
c) le diagramme des pôles et des zéros. Conclure sur la stabilité
d) la réponse fréquentielle en amplitude et en phase
e) En déduire le type du filtre
f) Préciser la (ou les) fréquence(s) de coupure,
Filtre passe-bas RII purement récursif
d’ordre 1
Sous Matlab :
>> B=0.2;
>> A=[1 -0.8];
>> fe=10000;
>> [H,f]=freqz(B,A,512,fe);
>>subplot(2,1,1)
>>plot(f,abs(H)),grid
>>subplot(2,1,2)
>>plot(f,angle(H),grid
>>xlabel(‘Fréquence (Hz)’)