Filtrage Numérique
Filtre numérique causal
• Réponse impulsionnelle hn = {h0 h1 h2... hn...}
•
• Transformée en z : H ( z ) = Â hn z - n
n =0
1 + b1 z1 + b2 z 2 + .. + bm z m
• Fonction de transfert H ( z) =
1 + a1 z1 + a2 z 2 + .. + an z n
• Convolution numérique •
yn = Â hi xn -i
i =0
• Réponse harmonique •
H (e jw ) = Â hn e - jnw
n =0
Filtre numérique non causal
• Réponse impulsionnelle
» hn = {…h-p .. h-1 h0, h1 h2... hn...}
• Transformée en z : •
-n
H ( z) = h
 n z
n = -•
•
• Convolution numérique yn = Âh x
i = -•
i n -i
•
• Réponse harmonique H (e ) =jw
h
 n e - jnw
n = -•
Typologie
• Filtre à Réponse Impulsionnelle Infinie
– Filtre 1 : 1 + b1 z1 + b2 z 2 + .. + bm z m
H ( z) =
1 + a1 z1 + a2 z 2 + .. + an z n
• Equation récurrente (ou récursive)
yk + a1 yk -1 + .. + an yk - n = xk + b1 xk -1 + ... + bm xk - m
• Filtre ARMA dans un contexte stochastique
Typologie
• Filtre à Réponse Impulsionnelle Infinie
– Filtre 2 : 1
H ( z) =
1 + a1 z1 + a2 z 2 + .. + an z n
– Equation récurrente (ou récursive)
yk + a1 yk -1 + .. + an yk - n = xk
• Filtre AR
Typologie
• Filtre à Réponse Impulsionnelle finie
H ( z ) = 1 + b1 z -1 + b2 z -2 + .. + bm z - m
• Equation récurrente (ou récursive)
yk = xk + b1 xk -1 + ... + bm xk - m
• Filtre MA
Gabarit d’un filtre
Gain
Ondulation
Largeur de la bande de coupure
Bande passante
Atténuation f
bande de coupure
« sptool »
Typologie
– Tchebyshev type 1
2
[
H ( f ) = 1 + e 2Tn2 ( f ) ]
-1
Ï cos(n arccos( x)) x <1
Tn ( x) = Ì
Ócosh(n arg cosh( x) x > 1
– Butterworth
1
H ( p) = n
’( p - p )
k =1
k
– Elliptique (Cauer)
Filtre de Chebyshev 1
Tchebyshev 2
Filtre elliptique
Butterworth
Filtre RIF/RII
Structures d’implantation
Canonique Filtre RII
yk + a1 yk -1 + .. + an yk - n = xk + b1 xk -1 + ... + bm xk - m
ek-1
ek ek-M
-1 -1
b0
z z z-1
* * *
b1 bM
S + sk
S
S -
* aN * a2 * a1
-1 -1 -1
sk-2 sk-1 z
sk-N
Structures d’implantation
Canonique Filtre RIf
snenh0*h1*hN*en-Nz-1z-1z-1
S
Masque de convolution
N
yn = Â hi xn -i = h0 xn + h1 xn -1 + h2 xn - 2 + .... + hN xn - N
i =0
[ xn - N . xn - 2 xn -1 xn xn +1 xn + 2 . .]
[hN . h2 h1 h0 ]
M
M = [hN . h2 h1 h0 ]
M est égal à la séquence de h retournée
Structure en Treillis
xn
+ en yn = k1en + en -1
en = xn - k1en -1
- k1
E ( z ) = X ( z ) - k1 z -1 E ( z )
k1 X ( z)
fi E ( z ) =
yn 1 + k1 z -1
Z -1
+
( )
Y ( z ) = k1 E ( z ) + z -1 E ( z ) fi Y ( z ) = k1 + z -1 E ( z )
Y ( z ) k1 + z -1
A( z ) =
k1 £ 1
=
X ( z ) 1 + k1 z -1 Stabilité :
+ + È k1 + z -1 ˘
-1
xn wn en k2 + z Í -1 ˙
Y ( z) Î1 + k1 z ˚
- =
k2 - k1
X ( z) È k1 + z -1 ˘
-1
1 + k2 z Í -1 ˙
k2 k1 Î1 + k1 z ˚
yn vn
Z -1 Z -1
+ + V ( z ) k1 + z -1
=
W ( z ) 1 + k1 z -1
Y ( z ) k 2 + k 2 k1 z -1 + z -1k1 + z -2
=
X ( z ) 1 + k1 z -1 + k1k 2 z -1 + k 2 z - 2
En appliquant un critère algébrique,
on montre que la stabilité est obtenue si :
k1 < 1
k2 < 1
Structure FFT
x(t) y(t)
FFT * IFFT
H(f)
Synthèse de filtres RII
• Invariant impulsionnel pT
z=e
– Méthode des résidus pour le calcul de H (z)
– inconvénient : les caractéristiques fréquentielles ne sont
pas conservées
• Transformation bilinéaire z -1
p=k
z +1
– Bonnes caractéristiques dans une bande de fréquence
que l’on ajuste avec k
Synthèse de filtres RII
• Transformation bilinéaire
– On sélectionne un filtre continu soit H(jw)
– On détermine les paramètres de H(jw)
– Utilisation de la transformation bilinéaire
z -1
p=k
z +1
Exemple
k0 k0
H ( p) = H (0) =
(p + wc )2 wc2
k0 k0
H ( z) = 2 H ( z = 1) =
È z -1 ˘ [wc ]2
k
ÍÎ z + 1 + wc˙
˚
2
Ajustement des fréquences de coupure k=
Te
Equation aux différences
-1 2
H ( z) =
k0
=
(
Y ( z) K ' 1 + z
=
)
2 2
È z -1 ˘ (
X ( z ) 1 + z0 z -1 )
ÍÎk z +1
+ wc ˙
˚
Avec K ' = k0 / (k + wc )
wc - k
z0 =
wc + k
yn + z0 yn -1 + z02 yn - 2 = K ' (xn + 2 xn -1 + xn - 2 )
yn = K ' xn + K ' (2 xn -1 + xn - 2 )- z0 yn -1 - z02 yn - 2
yn = K ' xn + vn -1
Synthèse de filtres RIF
• Méthode de la fenêtre
– On choisit un gabarit idéal à phase nulle
(périodique)
– On choisit le nombre d’échantillons retenus N
– On calcule la transformée de fourier inverse
pour ces N coefficients
– On pondère les coefficients par une fenêtre
– On décale le filtre pour le rendre causal
Exemple
1
Choix de 7 échantillons
-1/2 -1/4 1/4 1/2
1/ 2
hn = H ( e j 2pf
) e j 2pfn
df hn = 0.5 sin c(np / 2)
Ú
-1 / 2
ÏÔn : - 3 - 2 -1 0 1 2 3
Ìh - 1 0
1 1 1
0 -
1
ÔÓ n 3p p 2 p 3p
Exemple
1
Pondération par une
fenêtre
-1/2 -1/4 1/4 1/2
ÏÔn : - 3 - 2 - 1 0 1 2 3
Ìh - 1 0
1 1 1
0 -
1
ÔÓ n 3p p 2 p 3p
f n = [0.08 0.31 0.77 1 0.77 0.31 0.08]
g n = [- 0.0085 0 0.2451 0.5 0.2451 0 - 0.0085]
Exemple
1
Décalage de 3 périodes
d’échantillonnage
-1/2 -1/4 1/4 1/2
n = [0 1 2 3 4 5 6]
g n = [- 0.0085 0 0.2451 0.5 0.2451 0 - 0.0085]
Introduction d ’un déphasage linéaire
Typologie des filtres RIF
• RIF non causal pair h-n = hn
N -1 N N N
- jnw - jnw - jnw jmw
 hne =  hne +  hn e =  h- m e +  hn e - jnw
n=- N n=- N n =0 m =1 n =0
N N N
= Â hm e jmw
+ Â hn e - jnw
(
= Â hn e jnw + e - jnw - h0 )
m =1 n =0 n =0
N
jw
= Â 2hn cos(nw) - h0
n =0
arg( H (e )) = 0
• RIF causal : phase linéaire et symétrie de h'n
Typologie des filtres RIF
• RIF non causal impair h-n = -hn
N -1 N N N
- jnw - jnw - jnw jmw
 hne =  hne +  hn e =  h- m e +  hn e - jnw
n=- N n=- N n =0 m =1 n =0
N N N
= -Â hm e jmw
+ Â hn e - jnw
(
= Â hn - e jnw + e - jnw - h0 )
m =1 n =0 n =0
N
p
jw
= -2 j  hn sin( nw) - h0 arg( H (e )) = -
n =0
2
• RIF causal : phase linéaire et antisymétrie h'n
Algorithme de Remez
La méthode des fenêtres est paramétrée
paramètres d’entrée : type de filtre
gabarit soit Hd ( f )
nombre de points
type de fenêtre
fréquence échantillonnage
paramètres à déterminer ordre du filtre
Minimisation au sens des moindres carrés:
2
Hd ( f ) - Hc ( f )
Pour f = [f - N ... f -1 f 0 f1... f N ]
Transformation 2D
Soit xij un signal 2D
Sa Transformée X mn = ÂÂ aklmn xkl
k l
Les éléments aklmn forment un tableau A(k,l,m,n)
Ce tableau est appelé noyau de la transformation
Si A(k,l,m,n) se met sous la forme :
A(k,l,m,n) =A1(k,m) A2(l,n)
avec A1(k,m) = [a1km] et A2(l,n) = [a2lm]
Alors A(k,l,m,n) est dit séparable
La séparabilité permet d'effectuer le calcul en 2 étapes :
On calcule un signal intermédiaire
X 1ml = Â a1km xkl
k
On calcule le signal final :
X mn = Â a2 ln X ml
l
Convolution 2D
m+ K n+ K
X mn = xmn * g mn = Â Â xkl g m-k ,n-l
k =m- K l =n- K
Avec g i , j = g 1i g 2j
m+ K n+ K m+ K n+ K
X mn =   xkl g 1m - k g n2-l =  g 1m - k  xkl g n2-l
k =m- K l =n- K k =m- K l =n- K
m+ K
X mn = Â g 1m - k X k , n
k =m- K
Conclusion
( )( )( )
X mn = xmn * g mn = xmn * g 1m g n2 = xmn * g 1m * g n2
Quand la transformation 2D est séparable,
elle est équivalente à la mise en série
de 2 transformations 1D
Symétrie : Si A(k,l,m,n) =A0(k,m) A0(l,n)
Masque de convolution 1D
N -1
yk = Â g l x k -l
l =0
y k = xk g 0 + xk -1 g1 + xk - 2 g 2 + ... + xk - N +1 g N -1
È xk ˘ È g0 ˘
Vecteur Í x ˙ Í g ˙
Í k -1 ˙ Í 1 ˙
Xk = Í . ˙ G =Í . ˙ yk = G T X k
Í ˙ Í ˙
Í . ˙ Í . ˙
Í xk - N +1 ˙ Í g N -1 ˙
Î ˚ Î ˚
yk = G T X k È yk ˘
y k +1 = G T X k +1 Íy ˙
Í k +1 ˙
yk + 2 = G T X k + 2 Notation Y =Í . ˙
Í ˙
.. Í . ˙
Í yk + P ˙
yk + P = G T X k + P Î ˚
È yk ˘
Íy ˙
Í k +1 ˙
Y = Í . ˙ = G T [X k X k +1 . . X k + P ]
Í ˙
Í . ˙
Í yk + P ˙
Î ˚
x
n-2 n-1 n
g2 g1 g0 yn
g2 g1 g0 Yn+1
g2 g1 g0 Yn+2
Masque 2D
Exemple filtre 3 3
m +1 n +1
X mn = Â Â xkl g m-k ,n-l
k = m -1 l = n -1
m +1
X mn = Â {xkn-1 g m-k ,1 + xkn g m-k ,0 + ... + xkn+1 g m-k ,-1}
k = m -1
X mn = xm -1n -1 g1,1 + xm -1n g1,0 + ... + xm -1n +1 g1, -1
+ xmn -1 g 0,1 + xmn g 0,0 + ... + xmn +1 g 0, -1
+ xm +1n -1 g -1,1 + xm +1n g -1,0 + ... + xm +1n +1 g -1, -1
È g1,1 g1,0 g1, -1 ˘ È xm -1, n -1 xm -1, n xm -1n +1 ˘
Í ˙Í ˙
X mn = Í g 0,1 g 0, 0 g 0, -1 ˙ Í xm, n -1 xm, n xm, n +1 ˙
Í g -1,1 g -1,0 g -1, -1 ˙˚ ÍÎ xm +1, n -1 xm +1, n xm +1n +1 ˙˚
Î
Séparabilité 1 2
g kl = g k gl
È g1,1 g1,0 g1, -1 ˘ È g11 g12 g11 g 02 g11 g -21 ˘
Í ˙ Í 1 2 1 2 1 2 ˙
Í g 0,1 g 0, 0 g 0, -1 ˙ Í g 0 g1 g0 g0 g 0 g -1 ˙
Í g -1,1 g -1,0 g -1, -1 ˙˚ Íg1 g 2 g 1-1 g 02 g 1-1 g -21 ˙
Î Î -1 1 ˚
È g11 g12 g11 g 02 g11 g -21 ˘ È g11 ˘
Í 1 2 1 2 ˙ Í 1˙ 2
Í g 0 g1 g 10 g 02 [
g 0 g -1 ˙ = Í g 0 ˙ g1 g 02 g -21 ]
Íg1 g 2 1 2
g -1 g 0 1 2 ˙
g -1 g -1 Í g 1 ˙
Î -1 1 ˚ Î -1 ˚
Lissage
È1˘
1 1Í ˙
Moyenne normalisée [1 1 1] 1˙
3 3 Í
ÍÎ1˙˚
È1 ˘
Moyenne pyramide 1 1Í ˙
[1 2 1] 2˙
4 4 Í
ÍÎ1 ˙˚
Mise en série de filtres
Sans effet de bord
È1 1 1˘ È1 1 1˘ È4 6 4˘
Í1 1 1˙ * Í1 1 1˙ = Í6 9 6˙
Í ˙ Í ˙ Í ˙
ÍÎ1 1 1˙˚ ÍÎ1 1 1˙˚ ÍÎ4 6 4˙˚
Sans effet de bord È1 2 3 1˘2
1 1 1 1 1 1 Í2 4 6 2˙˙
4
È ˘ È ˘ Í
Í1 1 1˙ * Í1 1 1˙ = Í
Í ˙ Í ˙ Í3 6 9 3˙6
˙
ÍÎ1 1 1˙˚ ÍÎ1 1 1˙˚ Í2 4 6 2˙4
Í1 2 3 2 1 ˙˚
Î
Dérivation
f ( x + h) - f ( x )
Différences finies f ' ( x) = lim h Æ0
h
En numérique on pose h=1
f ' (n) = f (n + 1) - f (n)
D ’où le masque [0 - 1 1]
Dérivation symétrique
Développement limité f (n + 1) = f (n - 1) + 2 f ' (n)
1
f ' (n) = [f (n + 1) - f (n - 1)]
2
D ’où le masque [- 1 0 1]
Dérivée seconde
1
f (n + 1) = f (n) + f ' (n) + f ' ' (n)
2
1
f ' (n) = [f (n + 1) - f (n - 1)]
2
1
f ' (n) = [f (n + 1) - f (n - 1)]
2
f ' ' (n) = f (n + 1) - 2 f (n) + f (n - 1)
[1 - 2 1]
Laplacien
È0 1 0 ˘
Í1 - 4 1˙
Í ˙
ÍÎ0 1 0˙˚
Dérivateur directionnel
È 0 0 0˘ È - 1 0 0˘ È0 - 1 0 ˘ È0 0 - 1˘
Í- 1 0 1˙ Í 0 0 0˙ Í0 0 0 ˙ Í0 0 0 ˙
Í ˙ Í ˙ Í ˙ Í ˙
ÍÎ 0 0 0˙˚ ÍÎ 0 0 1˙˚ ÍÎ0 1 0˙˚ ÍÎ1 0 0 ˙˚
È0 0 0 ˘ È1 0 0 ˘ È0 1 0 ˘ È 0 0 1˘
Í1 0 - 1˙ Í0 0 0 ˙ Í0 0 0 ˙ Í 0 0 0˙
Í ˙ Í ˙ Í ˙ Í ˙
ÍÎ0 0 0 ˙˚ ÍÎ0 0 -1˙˚ ÍÎ0 - 1 0˙˚ ÍÎ- 1 0 0˙˚
Lissage et dérivation
e s
Lissage L Dérivation D
S=D*(L*e)= (D*L)*e
Donc l ’opération est équivalente à la convolution de l ’entrée
par la dérivée du filtre de lissage
Prewitt
È1 1 1˘ È 1 1 1 ˘
Í ˙ Í
[- 1 0 1]Í1 1 1˙ = Í 0 0 0 ˙ ˙
ÍÎ1 1 1˙˚ ÍÎ- 1 - 1 - 1˙˚
Sobel
Dérivation du lissage pyramide
È1 2 1 ˘ È 1 2 1˘
Í ˙ Í
[- 1 0 1]Í2 4 2˙ = Í 0 0 0 ˙ ˙
ÍÎ1 2 1 ˙˚ ÍÎ- 1 - 2 - 1˙˚
Transformée en Z bilatère
• -1 •
X ( z ) = Â xn z - n = Â xn z - n + Â xn z - n = X - ( z ) + X + ( z )
-• -• 0
• •
X ( z ) = Â x- n z n + Â xn z - n
n =1 0
Convergence : condition de Cauchy
•
m 1/ m
Âx -n z n
Converge ssi lim mƕ x- m z <1
n =0
1/ m 1
lim mƕ x- m z <1 z< 1/ m
= Rc -
lim mƕ x- m
Signal pair
• •
X + ( z ) = Â xn z - n X + ( z -1 ) = Â xn z n
0 0
Or
• • • •
X ( z ) = Â x- n z n + Â xn z - n = Â xn z n + Â xn z - n
n =1 0 n =1 0
On en déduit
X - ( z ) = X + ( z -1 )
Exemple h(t ) = e
-a t
•
1 -1 1
H + ( z) = Â e - anT
z -n
= H - ( z) = H + ( z ) =
0 1 - e - aT z -1 1 - e - aT z
1 z -1 2 z -1 - e - aT - e - aT z -2
H ( z) = - aT -1
+ -1 - aT = -1 - aT
1- e z z -e z - e - e - aT z - 2 + e - 2 aT z -1
z -2 - 2e aT z -1 + 1
H ( z ) = -2
(
z - e aT + e aT z -1 + 1 )
Equation du filtre récursif
( )
yn = xn - 2e aT xn -1 + xn - 2 + e aT + e aT y n -1- yn - 2
Transformée en Z 2D
• •
-n -m
X ( z1 z 2 ) = Â Â nm 1 z2
x z
n = -• m = -•
Exemple xnm = 1 pour n ≥1
m ≥1
• •
-n -m -n
•
-m 1 1
X ( z1 z 2 ) = ÂÂ z z 1 2 =Â z 1 Âz 2 =
n =0 m =0 m =0 1 - z1-1 1 - z 2-1
1
X ( z1 z 2 ) =
1 - z 2-1 - z1-1 + z1-1 z 2-1
- an -bm
Exemple f (n, m) = e
• •
- an -bm - n - m - an - n -bm - m
X ( z1 z 2 ) = Â Â e z1 z 2 = Â 1 Â z2
e z e
n = -• m = -•
• •
- an -bm - n - m - an - n -bm - m
X ( z1 z 2 ) = Â Â e z1 z 2 = Â 1 Â z2
e z e
n = -• m = -•
1 1
1-e-a z1-1 1-e-b z2-1