Vous êtes sur la page 1sur 15

Traitement du Signal

James L. Crowley Deuxime Anne ENSIMAG Sance 6 : premire Bimestre 2001/2002 26 octobre 2001

Le Filtrage Numrique
Formule du Jour ................................................ 2 Le Convolution Numrique................................... 2
Rappel : Convolution Analogique :............................................2 Le Convolution Numrique ......................................................3

Le Filtrage Numrique......................................... 4
Filtrage Non-Recursif..............................................................4 Filtrage Rcursif .....................................................................5 Filtrage par Produit de Transforme de Fourier Discrte............6 Caractrisation de Filtres:.........................................................7 La Fonction de Transfert..........................................................8 Transforme de Fourier d'un signal numrique..........................9

Quelques Exemples des Filtres..............................10


Calcul de la drive d'un signal numrique.................................10 Intuition : Symtrie et Anti-symmetrie.......................................12 Une pense Bte pour les relations trigonomtriques.....................13 Lissage d'un signal numrique : Les Filtres Binomiaux................13

Le Filtrage Numrique

Sance 6

Formule du Jour Le Convolution Numrique


Rappel : Convolution Analogique :
(t)
g(t)

Transmission

Un systme linaire est modlis par sa rponse une impulse, (t). (t) Reponse Impulsionnelle :

* f(t)
f(t) = f[(t)].

f(t)

La rponse d'un systme linaire a une entre x(t) est une superpostion (une somme) de rponses impulsionnelle amplifies par les valeurs instantanes de x(t). Cette opration est appel le "Convolution" de x par f. x(t)

* f(t)

y(t) =x * f(t)

Lquation gnrale de la convolution est une somme de rponse impulsionnelle pour les rponses. La convolution est commutative. y(t) = x * f(t) = x(t) f() d = f * x(t) x ( ) f(t)d La convolution est lopration de traitement de signale la plus fondamentale. Elle indique que la valeur du signal de sortie linstant t est obtenue par la sommation (intgrale) pondre des valeurs passes du signal d'excitation x(t). La fonction de pondration est prcisment la rponse impulsionnelle f(t).

6-2

Le Filtrage Numrique Le Convolution Numrique

Sance 6

Les squences apriodique sont suppos d'exister avec valeurs nuls hors de leur intervalle de dfinition. Exemple : Considre les deux squences numriques apriodiques potentiellement non-nul sur les intervalles de duration Nx et N h. Soit x(n) de non-nul pour n [0, Nx-1] et f(n) de non-nul pour n [0, N h-1]. x(n) 0 n N x-1, f(n) 0 n N f-1 La convolution apriodique de x(n) et f(n) est une produit scalaire pour chaque m

y(m) = f * x(m) =

n=-

x(n) . f(mn)

x(mn) . f(n) n=

Ce produit est potentiellement non-nul sur un intervalle [0, Nx+Nh-2 ] La dur du rsultat potentiellement non-nul est de Nx + N h 1 chantillons. Dmonstration. Le premier valeur non nul est cr pour n=0: x(m) non-nul pour 0 m N x-1, f(n-m) non-nul pour -Nf+1 m 0

Le dernier valeur non nul est cr pour n = N x + N h 1 : x(n) non-nul pour 0 n N x-1, f(n-m) non-nul pour Nx 1 m N x + N f 1 ie. ( n-Nf-1 < m < n)

6-3

Le Filtrage Numrique

Sance 6

Le Filtrage Numrique
Un filtre numrique est une combinaison linaire dchantillons. Le filtrage et lanalyse spectrale sont des techniques de base dans le traitement numrique du signal. Quelques domaines dapplication du filtrage (liste non-exhaustive): Communications : tlphone, radio, tlevisision, etc. Musique Radar Reconnaissance de Parole Traitement dimage (ex : satellite, mdicale, inspection industrielle) Vision par ordinateur Il existe trois techniques: Filtrage non-recursif Filtrage Rcursif, Filtrage par produit de TFD. Filtrage Non-Recursif Une opration de filtrage dfinie par une convolution avec une squence de dure finie f(n). Les filtres non-recursif ont une rponse impulsionnelle finie. Ils sont parfois connus sous le nom: FIR (Finite Impulse Response) ou Rponse Impulsionnelle Finie Considre les deux squences numriques apriodiques potentiellement non-nul sur les intervalles de duration Nx et N h. Soit x(n) de non-nul pour n [0, Nx-1] et f(n) de non-nul pour n [0, N h-1]. x(n) 0 n N x-1, f(n) 0 n N f-1 La convolution apriodique de x(n) et f(n) est une produit scalaire pour chaque m

6-4

Le Filtrage Numrique

Sance 6

y(m) = f * x(m) =

n=-

x(n) . f(mn)

x(mn) . f(n) n=

Ce produit est potentiellement non-nul sur un intervalle [0, Nx+Nh-2 ] La dur du rsultat potentiellement non-nul est de Nx + N h 1 chantillons. Avantages: 1) La phase d'un filtre non-recursif est linaire, qui voudrait dire dlai de rponse le mme pour toute frquence. Un signal n'est pas dispers. Ceci est important pour les images, mais moins important pour le son. 2) Les filtres non-recursif sont stables. Leur rponse et finie. 3) Il existe des mthodes de conception de filtre RIF simple mettre en uvre. Inconvnients: 1) Cher en ralisation. 2) Le retard entre l'entrer et le sorti (la phase) peut tre relativement long. Filtrage Rcursif Les filtres rcursifs sont dfinis par une quation de rcurrence. Le filtre est spcifi par deux jeux de coefficients a(n), 1 n<N et b(n), 0 n<M : N-1 M-1 b(m) x(n-m) a(m) y(n-m-1) m=0 m=1

y(n) =

Sauf quelques exceptions, les filtres rcursifs ont une Rponse Impulsion Infinie (RII ou IIR). Il est possible de raliser certain filtre RIF par un calcul rcursif, mais ceci est rare et plutt difficile. Lintrt des filtres rcursifs est 1) leur faible cot en calcul. 2) leur faible retard (Tres outil pour les communications) Les inconvnients des filtres rcursifs sont 1) leur non-linairit en phase et 2) leur instabilit numrique. 6-5

Le Filtrage Numrique

Sance 6

Les filtres RII peuvent tre conu par des mthodes semblables ceux utiliss pour les filtres analogiques. Ceci n'est pas vraie pour les filtres RIF. Filtrage par Produit de Transforme de Fourier Discrte. Un des intrt principale de la TFD est qu'il permet de faire les convolutions de deux signaux de taille N chantillons avec un cot de calcul de l'ordre de 2N Log(N) en lieu de N2. Mais le TFD ralise une convolution priodique. Ceci peut poser un pige. Soit x(n) de dure n [0, Nx-1] et f(n) de dure n [0, N f-1]. TFD{f(n)} . TFD {x(n)}

f x(n)

est convolution circulaire yp(n) = f

x(n) = fp * x p(n)

ou et et

fp(n) est un signal priodique : fp(n) = xp(n) est un signal priodique : xp(n) = yp(n) est un signal priodique : yp(n) =

k= k= k= yp(n) = ITFD { TFD{f(n)} . TFD {x(n)} } Il est possible de calculer une convolution apriodique, f * x(n), par une produit de TFD. Mais pour ce faire, il faut incruster f(n) et x(n) dans des squences priodiques en ajoutant les zros.

f ( n + k N f) x ( n + k N x) y ( n + k N y)

6-6

Le Filtrage Numrique Caractrisation de Filtres: Un filtre est caractris par

Sance 6

1) sa rponse, f(n), limpulse numrique (n), ou galement par 2) sa fonction de transfert F() ou F(z) calcul par sa TFTD ou transforme en z. Les filtres sont gnralement spcifis dans le domaine Fourier ou dans le domaine z. Pour un filtre RIF, la rponse limpulse numrique est prcisment son jeu de coefficients f(n). f(n) = f(n) * (n) Pour un filtre rcursif, f(n) est de dure infini. Il faut sa fonction de transfert F(). L'intrt dudomaine Fourier (ou Z) provient de le fait que convolution en temps est quivalente d'un produit en domaine Fourier. y(t) = x(t) * f(t) et y(t) = x(t) f(t)

Y() = X() F()

Y() = X()

F()

Ceci est valable pour les squences numriques priodiques. yp(n) = x(n) * f(n) et y(n) = x(n) f(n) Y() = X() F()

Y() = X()

* F()

Il est plus facile de concevoir et d'analyses les oprations de convolutions en domaine Fourier que domaine t ou n. En consquence, la description dun filtre est plus simple en Fourier

6-7

Le Filtrage Numrique La Fonction de Transfert. X() F() Y() = X() F()

Sance 6

La fonction de transfert est le ratio de la sortie sur l'entre d'un systme. Y/X. Pour un systme linaire, ceci est trivial en domaine Fourier. Y() X() F() = = F() X() X() F() = | F() |

e j()

= | F() | cos(()) + j | F() | sin (())

On peut interprter ceci comme une expression dufait que le systme impose un dcalage en temps) et une attention en amplitude | F() | pour chaque frquence. Pour toute fonction linaire (convolution, corrlation) les fonctions caractristiques sont les exponentiels complexes: E() = ejt = Cos( t) j Sin( t) C.--d. Une fonction linaire h(n) modifiera chaque exponentielle, o par une attentuation (ou amplification), et dun retard en temps (phase). L'attnuation et le retard sont exprims par une fonction complexe H(). Ceci est unique et indpendant pour chaque valeur de. La fonction de transfert d'un systme f(t) est une fonction complexe F(ej ) qui donne le changement d'amplitude et phase unique chaque ej 0t.

6-8

Le Filtrage Numrique Transforme de Fourier d'un signal numrique

Sance 6

La Transforme de Fourier de Temps Discrte (TFTD) ou "DTFT" en Anglais. est dfini par :

F() =

m=

f(m) ejm

F() dcrit l'effet sur chaque frquence dun filtre f(n). Drivation : La convolution par f(t) avec une exponentielle donne le mme exponentielle mais retard en temps et multipli en amplitude par F(ej ) .

F( ej 0)

ej 0n

f(n) * ej 0n

F(ej 0) ej 0n

m=

f(m) ej 0(nm)
ej 0n ej 0m

F( ej ) ejn

m=

f(m)
ej 0n

F( ej 0) ej 0n

m=

f(m) ej 0m

F( ej 0) = F( 0) =

m=

f(m) ej 0m f(m) ejm

et pour tout :

F() =

m=

6-9

Le Filtrage Numrique

Sance 6

Quelques Exemples des Filtres


Calcul de la drive d'un signal numrique. La drive d'une fonction s(t) est dfinie par s(t) t Lim { t0 s(t) s(tt) t

pour un signal numrique, s(n), la limite n'existe pas. s(n) s(n) s(n-2) = n 2 s(n) s(n) s(n-1) n = 1 : n = 1 s(n) 0 n = 0 : n = 0 !!! n = 2 : Conclusion : On ne peut pas calculer une drive pour un signal discret. Mais on peut calculer une premire diffrence : s(n) n ou bien ns(n)

La diffrence d'un signal est une convolution avec un filtre ! n = 1 : mais aussi n = 2 : s(n) s(n) s(n-2) = n 2 = s(n) * s(n) n = s(n) s(n-1) = s(n) * [1 1]

[1 2

1 2

Comment les comparer les deux filtres? Par leur fonction de transferts. La Transform de Fourier d'une drive a une fonction est s(t) { t } = 2j {f(t)}

6-10

Le Filtrage Numrique et donc s(t) t =


1{2j f(t)} = 1{2j } * 1{f(t)}

Sance 6

Donc, une drive est un FILTRE avec une fonction de transfert 2j f(t) = t * s(t) = t
1{2j } * s(t)

Les filtres linaires sont associatifs, distributifs et commutative.


1{2j } a une dure infinie. Mais on peut faire une

approximation de dure finie par d1(n) = [1 1] ou encore 1 d2(n) = 2 [1, 0, 1 ] Lequel est mieux? Im{ H( ) }
2j 2j sin( / 2 ) - 2j sin( )

1) Pour d2(n) = [1, 0, 1 ]

D2()

m= = ej + 2) Pour d(n) = [1 1]

d(m) ejm
ej

= d(1) ej(1) + d(1) ej(+1)

= 2j sin()

Astuce: pour calculer la fonction de transfert, rendre la fonction symtrique par un retard d'une demi-echantillon j= i+1/2. Donc les coefficients sont localiss -1/2 et 1/2. 6-11

Le Filtrage Numrique

Sance 6

La fonction de transfert est 1 1 D1() = d(m) ejm = d(2 ) ej(1) + d(2 ) m= = ej + ej = 2j sin( 2 )

ej(+1)

La drive premire amplifie" les hautes frquences. Mais le numriseur embrouille les hautes frquences. Nota : la transform de Fourier en Temps Discrte est un suite de Cosinus et j Sinus. Intuition : Symtrie et Anti-symmetrie Chaque paire de coefficient Anti-symmetric contribue une jsin()

2 j sin() 1 0 0 0 1 2 j sin(2) 1 0 0 0 0 0 1 2 j sin(3)


1 0 1

... du mme 101

2 cos() 10001 2 cos(2) 100 0001 2 jcos(3)


[ 1 0 1 ] * [ 1 0 1 ]

Note :

[1 0 2 0 1 ] mais

2 j sin() 2 j sin()

-4 sin()2

{ [1 0 2 0 1 ] } = 2 + 2cos (2) donc 4 sin()2 = 2 2 cos (2) 6-12

Le Filtrage Numrique Une pense Bte pour les relations trigonomtriques

Sance 6

On peut utiliser les petits filtres comme rappellent des relations trigonometrique. !! exemples : a) 4 cos()2 = 2 + 2cos (2) { [1 0 1] * [1 0 1] } = { [1 0 2 0 1 ] }

b)

4j cos() sin()

= 2j sin (2) { [1 0 0 0 1 ] }

{ [1 0 1] * [1 0 1] } =

Lissage d'un signal numrique : Les Filtres Binomiaux (coefficients binomiaux) sont les coefficients dupolynme : n/2 (x + y)n = m=n/2 n n! bm,n = m = (n-m)! m! = bn(m)

b m,n x nm y m

Les coefficients du sries binomiaux sont gnrs par le triangle de Pascal : Level (n) 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 1 7 21 35 35 21 7 1 1 8 29 56 70 56 29 8 1 0 1 2 3 4 5 6 7 8 Sum 1 2 4 8 16 32 64 128 256 Variance ( 2 ) n 0 1/4 1/2 3/4 1 5/4 6/4 7/4 2 Std. 0 1/2 2/2 3/2 1 5/2 6/2 7/2 2

Ses coefficients forme des filtres avec des proprits remarquables. Ils sont les coefficients de la meilleure approximation du filtre Gaussien 6-13

Le Filtrage Numrique sujet aux contraintes dtre discret et fini. Filtres Binomiaux : bn (m) = Gain : Variance :

Sance 6

bo(m) *n = [ 1, 1] *n = n convolution de [1 1]

bn = 2 n

n Var{bn) = n * Var{bo} = 4 Fonction de Transfert : Bn() = [2 cos( 2 ) ] n Pour n paire : 1 Var{bn(m)} = 2n exemple: 1 Var [1, 4, 6, 4, 1] = 16 { 1 (2)2 + 4 (1)2 + 6 (0)2 + 4 (1)2 + 1 (2)2 } 1 = 16 { 4 + 4 + 4 + 4} = 1 1 1 1 1 1 1 1 Var[1, 1] = 2 { (1 ( 2 ) 2 + 1 ( 2 ) 2} = 2 ( 4 + 4) = 4 Les Filtres Binomiaux donnent des filtres Gaussiens "finis et discrets" La fonction de transfert des binomiaux peut tre calcul facilement la main : Exemples b1(m) = [1 1] B1() = 1 ej(-1/2) + 1 ej(1/2) = 2 cos(/2)
2

Bn() = [2 + 2 Cos()]n/2 b n(m) m 2 m=n/2 n/2

b2(m) = [ 1 2 1 ]

(Deuxime filtre Binomial) 6-14

Le Filtrage Numrique B2() B2() =1 ej(1) + 2 ej(0) + 1 ej(1) = 2 + ej + ej = 2 + 2 Cos() = [2cos(/2)]2


4

Sance 6

- 0

b4(m) = [1 1] *4 = [1 4 6 4 1] B4() = 6 + 8 cos() + 2 cos(2) = [2cos(/2)]4

16

- 0

6-15