Traitement du Signal James L. Crowley Deuxième Année ENSIMAG première Bimestre 007/008 Séance 4 : 9 février 008 Le Filtrage Numérique Formule(s) du Jour : Le Convolution Numérique... Le Filtrage Numérique...3 Filtrage Non-Recursif...3 Filtrage Récursif...4 Filtrage par Produit de Transformée de Fourier Discrète...5 Convolution par TFD...6 Caractérisation de Filtres:...7 Transformée de Fourier d'un signal numérique...8 La Fonction de Transfert...8 Quelques Exemples des Filtres... 0 Calcul de la dérivée d'un signal numérique...0 Intuition : Symétrie et Anti-symmetrie... Une pense Bête pour les relations trigonométriques...3 Lissage d'un signal numérique : Les Filtres Binomiaux...3 Méthode de synthèse de la série de Fourier... 6 Effets de la limitation de la durée de hs(n):...8 La Sinus Cardinale pour une function discrèt...9 Utilité :...0 Filtre passe bas... filtre passe bande... Gabarit d un Filtre...3
Formule(s) du Jour : Le Convolution Numérique ) Le Convolution Numérique. Considère les deux séquences numériques apériodiques potentiellement non-nul sur les intervalles de duration N x et N f. Soit x(n) de non-nul pour n [0, N x -] et f(n) de non-nul pour n [0, N f -]. x(n) 0 n N x -, f(n) 0 n N f - Les séquences apériodique sont supposé d'exister avec valeurs nuls hors de leur intervalle de définition. La convolution apériodique de x(n) et f(n) est une produit scalaire pour chaque m y(m) = f * x(m) = n=- x(n).f(m n) = x(m n).f(n) n= Ce produit est potentiellement non-nul sur des N x + N f échantillons. dans l'intervalle [0, N x +N h - ] La convolution est l opération de traitement de signale la plus fondamentale. ) Conception d'un filtre numérique h s (n) = π π H s (ω) e jωn dω π méthode de synthèse de filtre : On spécifie les caractéristiques souhaité en fréquence H(ω) pour l intervalle π < ω < π. H s (ω) est périodique avec période π pour h(n) échantilloné. Les coefficients du filtre sont ensuite donnée par la transformée de Fourier inverse 4-
Le Filtrage Numérique Un filtre numérique est une combinaison linéaire d échantillons. Il existe trois techniques de filtrage numérique Filtrage non-recursif Filtrage Récursif, Filtrage par produit de TFD. Quelques domaines d application du filtrage (liste non-exhaustive): Communications : téléphone, radio, télevisision, etc. Musique Radar Reconnaissance de Parole Traitement d image (ex : satellite, médicale, inspection industrielle) Vision par ordinateur Filtrage Non-Recursif Une opération de filtrage définie par une convolution avec une séquence de durée finie f(n). Les filtres non-recursif ont une réponse impulsionnelle finie. Ils sont parfois connus sous le nom: FIR (Finite Impulse Response) ou Réponse Impulsionnelle Finie Considère les deux séquences numériques apériodiques potentiellement non-nul sur les intervalles de duration N x et N h. Soit x(n) de non-nul pour n [0, N x -] et f(n) de non-nul pour n [0, N h -]. x(n) 0 n N x -, f(n) 0 n N f - La convolution apériodique de x(n) et f(n) est une produit scalaire pour chaque m y(m) = f * x(m) = n=- x(n).f(m n) = x(m n).f(n) n= Ce produit est potentiellement non-nul sur un intervalle [0, N x +N h - ] La duré du résultat potentiellement non-nul est de N x + N h échantillons. 4-3
Intérêts : ) Le délai de réponse le même pour toute fréquence. φ(f) = k f = τ (La phase d'un filtre non-recursif est linéaire avec le fréquence). Conséquence : Un signal n'est pas dispersé par le filtrage. Ceci est important pour les images, mais moins important pour le son. ) Les filtres non-recursif sont stables. Leur réponse et finie. si x(n) < alors f * x(n) < 3) Il existe des méthodes de conception de filtre RIF simple à mettre en œuvre. Inconvénients: ) Cher en réalisation. ) Le retard entre l'entrer et le sorti et de taille N f échantillons. (peut être relativement long). Cette rétard s'appel la phase. Filtrage Récursif Les filtres récursifs sont définis par une équation de récurrence. Le résultat à la position "n" dépend de la résultat à la position n-. Le filtre est spécifié par deux jeux de coefficients a(n), n<n et b(n), 0 n<n : N- N- y(m) = b(n) x(m-n) a(n) y(m-n) n=0 n= Sauf quelques exceptions, les filtres récursifs ont une Réponse Impulsion Infinie (RII ou IIR ). Il est possible de réaliser certain filtre RIF par un calcul récursif, mais ceci est rare et plutôt difficile. L intérêt des filtres récursifs est ) leur faible coût en calcul. ) leur faible retard (Tres outil pour les communications) Les inconvénients des filtres récursifs sont ) leur non-linéairité en phase et ) leur instabilité numérique. Les filtres RII peuvent être conçu par des méthodes semblables à ceux utilisés pour les filtres analogiques. Ceci n'est pas vraie pour les filtres RIF. 4-4
Filtrage par Produit de Transformée de Fourier Discrète. Un des intérêt principale de la TFD est qu'il permet de faire les convolutions de deux signaux de taille N échantillons avec un coût de calcul de l'ordre de N Log(N) en lieu de N. Mais le TFD réalise une convolution périodique. Ceci peut poser un piège. Soit x(n) de durée n [0, N x -] et f(n) de durée n [0, N f -]. TFD{f(n)}. TFD {x(n)} f x(n) est convolution circulaire y p (n) = f x(n) = f p * x p(n) ou f p (n) est un signal périodique : f p (n) = f(n + k Nf ) k= et et x p (n) est un signal périodique : x p (n) = x(n + k Nx ) k= y p (n) est un signal périodique : y p (n) = y(n + k Ny ) k= y p (n) = ITFD { TFD{f(n)}. TFD {x(n)} } Il est possible de calculer une convolution apériodique, f * x(n), par une produit de TFD. Mais pour ce faire, il faut incruster f(n) et x(n) dans des séquences périodiques en ajoutant les zéros. 4-5
Convolution par TFD Convolution Circulaire par TFD. TFD{x p (n) y p (n)} = TFD{x p (n)}. TFD {yp (n)} = X p (k). Y p (k). et par dualité TFD( x p (n). y p (n) } = TFD{x p (n)} TFD {y p (n)} = X p (k) Y p (k) Un des intérêt principale de la TFD est qu'il permet de faire les convolutions de deux signaux de taille N échantillons avec un coût de calcul de l'ordre de N Log(N) in lieu de N. Mais le TFD réalise un convolution périodique. Ceci peut poser une piège. Soit x(n) de durée n [0, N x -] et y(n) de durée n [0, N y -]. Il est possible de calculer un convolution aperiodique, x(n) * y(n), par une produit de TFD. Mais pour ce faire, il faut incruster x(n) et y(n) dans des séquence périodique x p (n) et y p (n) de taille N = N x + N y. Les échantillons de x p (n) entre N x et N x + N y sont zéro. Les échantillons de y p (n) entre N y et N x + N y sont zéro. X p (k) = TFD {x p (n)} coût O(N ln N) Y p (k) = TFD {y p (n)} coût O(N ln N) Z p (k) = X p (k). Y p (k) coût O(N) z p (n) = TFDI{ Z p (k)} coût O(N ln N) Cout total 3 O(N ln N) + O(N) = O(N ln N). Comparé à O(N x N y ) pour x(n) y(n) On est gagnant si (N x + N y ) ln (N x + N y ) < N x N y 4-6
Caractérisation de Filtres: Un filtre est caractérisé par ) sa réponse, f(n), à l impulse numérique δ(n), ou également par ) sa fonction de transfert F(ω) ou F(z) calculé par sa TFTD ou transformée en z. Les filtres sont généralement spécifiés dans le domaine Fourier ou dans le domaine z. Pour un filtre RIF, la réponse à l impulse numérique est précisément son jeu de coefficients f(n). f(n) = f(n) * δ(n) Pour un filtre récursif, f(n) est de durée infini. Il faut sa fonction de transfert F(ω). L'intérêt dudomaine Fourier (ou Z) provient de le fait que convolution en temps est équivalente d'un produit en domaine Fourier. et y(t) = x(t) * f(t) Y(ω) = X(ω) F(ω) y(t) = x(t) f(t) Y(ω) = X(ω) * F(ω) Ceci est valable pour les séquences numériques périodiques. et y p (n) = x(n) * f(n) Y(ω) = X(ω) F(ω) y(n) = x(n) f(n) Y(ω) = X(ω) * F(ω) Il est plus facile de concevoir et d'analyses les opérations de convolutions en domaine Fourier que domaine t ou n. En conséquence, la description d un filtre est plus simple en Fourier 4-7
Transformée de Fourier d'un signal numérique La Transformée de Fourier de Temps Discrète (TFTD) ou "DTFT" en Anglais. d'un signal numérique est défini par : F(ω) = f(n) e jωn n= F(ω) décrit l'effet sur chaque fréquence d un filtre f(n). La Fonction de Transfert. X(ω) F(ω) Y(ω) = X(ω) F(ω) La fonction de transfert est le ratio de la sortie sur l'entrée d'un système. Y/X. Pour un système linéaire, ceci est trivial en domaine Fourier. Y(ω) X(ω) = X(ω) F(ω) X(ω) = F(ω) F(ω) = F(ω) e jϑ(ω) = F(ω) cos(ϑ(ω)) + j F(ω) sin (ϑ(ω)) On peut interpréter ceci comme une expression dufait que le système impose un décalage en temps) et une attention en amplitude F(ω) pour chaque fréquence. Pour toute fonction linéaire (convolution, corrélation) les fonctions caractéristiques sont les exponentiels complexes: E(ω) = e ±jωt = Cos(ω t) ± j Sin(ω t) C.-à-d. Une fonction linéaire h(n) modifiera chaque exponentielle, ωo par une attentuation (ou amplification), et d un retard en temps (phase). L'atténuation et le retard sont exprimés par une fonction complexe H(). Ceci est unique et indépendant pour chaque valeur de. La fonction de transfert d'un système f(t) est une fonction complexe F(e jω ) qui donne le changement d'amplitude et phase unique à chaque e jω 0t. 4-8
Dérivation de la fonction de transfert. La convolution par f(n) avec une exponentielle donne le même exponentielle mais retardé en temps et multiplié en amplitude par F(e jω ). F(e jω 0) e jω 0n = F(e jω 0) e jω 0n f(n) * e jω 0n = f(m) e jω 0(n m) m= F(e jω ) e jωn = m= f(m) ejω0n e jω 0m F(e jω 0) e jω 0n = e jω 0n f(m) e jω 0m m= F(e jω 0) = F(ω 0 ) = f(m) e jω 0m m= et pour tout ω : F(ω) = f(m) e jωm m= 4-9
Quelques Exemples des Filtres Calcul de la dérivée d'un signal numérique. La dérivée d'une fonction s(t) est définie par s(t) t s(t) s(t t) Lim { t 0 t } pour un signal numérique, s(n), la limite n'existe pas. n = : s(n) n n = : s(n) n n = 0 : s(n) n = = s(n) s(n-) s(n) s(n-) = 0 0!!! Conclusion : On ne peut pas calculer une dérivée pour un signal discret. Mais on peut calculer une première différence : s(n) n ou bien n s(n) La différence d'un signal est une convolution avec un filtre! n = : s(n) n = s(n) s(n-) = s(n) * [ ] mais aussi n = : s(n) n = s(n) s(n-) = s(n) * [ 0 ] Comment les comparer les deux filtres? Par leur fonction de transferts. La Transformé de Fourier d'une dérivée a une fonction est { s(t) t } = πj ω {f(t)} 4-0
et donc s(t) t = { πj ω f(t)} = { πj ω } * {f(t)} Donc, une dérivée est un FILTRE avec une fonction de transfert πj ω f(t) t = t * s(t) = { πj ω} * s(t) Les filtres linéaires sont associatifs, distributifs et commutative. { πj ω} a une durée infinie. Mais on peut faire une approximation de durée finie par d (n) = [ ] ou encore d (n) = [, 0, ] Lequel est mieux? Im{ H( ω) } j ω j sin( ω / ) -π j sin( ω) ω 0 π ) Pour d (n) = [, 0, ] D (ω) = d(n) e jωn n= ) Pour d(n) = [ ] = e jω + e jω = j sin(ω) = d( ) e jω( ) + d() e jω(+) Astuce: pour calculer la fonction de transfert, rendre la fonction symétrique par un retard d'une demi-echantillon j= i+/. Donc les coefficients sont localisés à -/ et /. 4-
La fonction de transfert est D (ω) = d(n) e jωn = d( n= ) e jω( ) + d( ) e jω(+) = e jω + e jω = j sin( ω ) La dérivée première amplifie" les hautes fréquences. Mais le numériseur embrouille les hautes fréquences. Nota : la transformé de Fourier en Temps Discrète est un suite de Cosinus et j Sinus. Intuition : Symétrie et Anti-symmetrie Chaque paire de coefficient Anti-symmetric contribue une jsin() 0 j sin(ω) 0 0 0 j sin(ω) 0 0 0 0 0 j sin(3ω)... du même 0 cos(ω) 0 0 0 cos(ω) 0 0 0 0 0 jcos(3ω) Note : [ 0 ] * [ 0 ] j sin(ω) j sin(ω) [ 0 0 ] -4 sin(ω) mais { [ 0 0 ] } = + cos (ω) donc 4 sin(ω) = cos (ω) Une pense Bête pour les relations trigonométriques 4-
On peut utiliser les petits filtres comme rappellent des relations trigonometrique.!! exemples : a) 4 cos(ω) = + cos (ω) { [ 0 ] * [ 0 ] } = { [ 0 0 ] } b) 4j cos(ω) sin(ω) = j sin (ω) { [ 0 ] * [ 0 ] } = { [ 0 0 0 ] } Lissage d'un signal numérique : Les Filtres Binomiaux (coefficients binomiaux) sont les coefficients dupolynôme : (x + y) n n/ = bm,n x n m y m m= n/ b m,n = n m = n! (n-m)! m! = b n (m) Les coefficients du séries binomiaux sont générés par le triangle de Pascal : 3 3 4 6 4 5 0 0 5 6 5 0 5 6 7 35 35 7 8 9 56 70 56 9 8 Level (n) 0 3 4 5 6 7 8 Sum 4 8 6 3 64 8 56 Variance ( σ ) n 0 / 4 / 3/4 5/4 6/4 7/4 Std. 0 / / 3/ 5/ 6/ 7/ Ses coefficients forme des filtres avec des propriétés remarquables. Ils sont les coefficients de la meilleure approximation du filtre Gaussien sujet aux contraintes d être discret et fini. 4-3
Filtres Binomiaux : bn (m) = bo(m) *n = [, ] *n = n convolution de [ ] Gain : bn = n Variance : Var{bn) = n * Var{bo} = Fonction de Transfert : Bn(ω) = [ cos( ω ) ] n n 4 Pour n paire : Var{bn(m)} = Bn(ω) = [ + Cos(ω)]n/ n/ n b n(m) m m= n/ exemple: Var [, 4, 6, 4, ] = = 6 { () + 4 () + 6 (0) + 4 () + () } 6 { 4 + 4 + 4 + 4} = Var[, ] = { ( ( ) + ( ) } = ( 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 : 4-4
Exemples b (m) = [ ] B (ω) = e jω(-/) + e jω(/) = cos(ω/) -π π 0 b(m) = [ ] (Deuxième filtre Binomial) B(ω) = e jω( ) + e jω(0) + e jω() = + e jω + e jω B(ω) = + Cos(ω) = [cos(ω/)] 4 -π π 0 b 4 (m) = [ ] *4 = [ 4 6 4 ] B 4 (ω) = 6 + 8 cos(ω) + cos(ω) = [cos(ω/)] 4 ω 6 -π π 0 ω 4-5
Méthode de synthèse de la série de Fourier La méthode décrite ci-après est dite méthode de la fenêtre ou méthode de la série de Fourier. ) On spécifie les caractéristiques souhaité en fréquence H s (ω) pour l intervalle π < ω < π. (H s (ω) est périodique avec période π pour h s (n) échantilloné.) ) Les coefficients du filtre idéal sont donnée par la transformée de Fourier inverse h s (n) = π π H s (ω) e jωn dω π 3) On determine la durée du filtre, N. h(n) = h s (n). w N (n) 4) On vérifie que H(ω) H s (ω) est acceptable. H(ω) = H s (ω) * W N (ω) 4-6
Exemple : H s (ω) H s (ω) = π/ ω π/ 0 ailleurs π π π π h s (0) = = π π H s (ω) e jωn dω = π π π/ e jω0 dω = π/ π/ π ω π/ = π π ( π ) π = π π/ dω π/ h s (n) = h s (n) = π π π H s (ω) e jωn dω = π π/ π e jωn dω π/ π/ jn e jωn π/ = πjn [ejπn/ e jπn/ ] = sin(πn/) πn Filtre passe-bas idéel avec fréquence limite ω c : h s (n) = h(n) sin(nω c ) nπ Coefficients en n n On ne peut garder qu un nombre N (fini) de coefficients h(n). h(n) = sin(πn/) πn/. w N (n) 4-7
Effets de la limitation de la durée de h s (n): Ne garder que N coefficients est équivalent à multiplier la suite infinie des h(n) par un fonction porte w(n). w(n) 0 n < N 0 ailleurs La réponse impulsionnelle est : h(n) = h s (n). w(n) pour 0 n < N Sa fonction de transfert est : H(ω) = H s (ω) * W(ω) = rect(ω/π) * sin(nω/) sin(ω/). e jω(n )/4 Cette fonction de porte est la fenêtre rectangulaire. Elle caractérise une troncature temporelle qui introduit des ondulations sur la réponse en fréquence du filtre. 4-8
La Sinus Cardinale pour une function discrèt w N (n) est une fenêtre rectangulaire ou fonction de porte (parfois appellé rect N (n)) 0 n < N w N (n) 0 n < 0 et n N W N (ω) = N wn (n) e jωn = n=0 N e jωn n=0 N = (e jω ) n n=0 afin de simplifier l'agebre, on substitu : z = e jω il nous faut identité : N z n n=0 = z N z donc pour z = e jω = e jπf W N (f) = e jπf(n-)/ (e jπnfn/ e jπnfn/ ) (e jπnf/ e jπnf/ ) = e jπ f(n )/ sin(πfn) sin(πf) ou bien ω = πf => πf = ω/ W N (ω) = e jω(n )/4 sin(nω/) sin(ω/) Il s agit de l équivalent discrète à sinc(πf) avec un retard de (N ) Si on avez définit w(n) avec un nombre impaire de coefficients, centré sur zéro : w N (n) N/ n < N/ 0 ailleur puis : 4-9
W N (f) = (e jπnfn/ e jπnfn/ ) (e jπnf/ e jπnf/ ) = sin(πfn) sin(πf) 0 Utilité : Pour tout filtre de duré N (N fini) (donc, pour toutes les filtres RIF) x(n) = x(n). w N (n) et en domaine Fourier : { x(n). w N (n)} = X(ω) * W N (ω). La spectre X(ω) de tout filtre de duré fini, x(n), est convoluée par W N (ω). 4-0
Filtre passe bas H s (ω) π π π π * W(ω) ω π π = H(ω) ω π π π π ω H(ω) = H s (ω) * W(ω) = rect(ω/π) * sin(nω/) sin(ω/). e jω(n )/4 4-
filtre passe bande H*(ω) ω π ω ω ω ω π * W(ω) π π = H(ω) ω ω π π H(ω) = H s (ω) * W(ω) = [rect(ω) - rect(ω)] * sin(nω/) sin(ω/). e jω(n )/4 Filtre pass bande par modulation Un autre approche de la conception d'un filtre passe bande : -π -ω o ω o π -π -ω o ω o π H s (ω) = δ(±ω o ) Pour taille N : h(n) = cos(ωn). wn (n) donc H(ω) = δ(±ω o) * sin(ωn/) sin(ω/) 4-
Gabarit d un Filtre Le gabarit d'un filtre numérique peut être caractèrisé par : Les fréquences caractéristiques définies par rapport aux bandes passants et attenuées: par exemple : dernière fréquence passante et première fréquence atténuée pour un filtre passe bas. Les erreurs tolérées par rapport à la réponse en amplitude idéale. Elles sont désignées par ondulations et définies pour chacune des bandes de fréquences. On spécifie les caractéristique d un filtre avec un gabarit en donnant des paramètres: δ p : L ondulation en bande passant ω p Dernière fréquence passante ω a : première fréquence atténuée δ a : L ondulation en bande atténuée. H(ω) + δ p δ p δ a ω p ω c ω a + δ π a Ici H(ω) est montré en amplitude, mais il est généralement exprimée en db. La difference ω a ω p s'appelle bande de transition, et le rapport ω a + ω p ω a ω p représente la raideur du filtre. ω 4-3