0% ont trouvé ce document utile (0 vote)
422 vues25 pages

TP2 Filtrage Numerique

Ce TP porte sur la mise en place d'opérations de filtrage numérique par structures transverses (RIF) et récursives (RII) en utilisant MATLAB. Le but est de se familiariser avec des outils de traitement numérique du signal. Le document décrit les éléments d'une chaîne de traitement numérique du signal et les concepts d'échantillonnage, de repliement spectral et de filtrage.

Transféré par

G POWER
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
422 vues25 pages

TP2 Filtrage Numerique

Ce TP porte sur la mise en place d'opérations de filtrage numérique par structures transverses (RIF) et récursives (RII) en utilisant MATLAB. Le but est de se familiariser avec des outils de traitement numérique du signal. Le document décrit les éléments d'une chaîne de traitement numérique du signal et les concepts d'échantillonnage, de repliement spectral et de filtrage.

Transféré par

G POWER
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
Vous êtes sur la page 1/ 25

ELE109, HTO & FOD Filtrage numérique

TP2 : Filtrage numérique RIF et RII : mise en œuvre de


quelques applications en utilisant le logiciel MATLAB

Ce TP se déroulera en trois séances. Le but des deux premières séances est de vous
familiariser avec quelques outils de traitement numérique du signal en utilisant le logiciel
MATLAB. La troisième séance sera dédiée à l’implémentation de quelques exemples de
filtres numériques sur une plateforme matérielle. Ce TP porte plus particulièrement sur la
mise en place d’opérations de filtrage numérique par structures transverses (RIF) et
récursives (RII). Pour chaque structure de filtrage et après rappels de quelques notions utiles,
nous étudierons des applications sur des exemples concrets et sur des signaux audio.

I Chaîne de traitement de signal numérique

1 2017 - 2018
ELE109, HTO & FOD Filtrage numérique

Le traitement numérique des signaux est une technique dont la théorie et les avantages
sont en fait connus depuis longtemps, mais qui n’est devenue vraiment exploitable que depuis
peu grâce aux progrès des composants électroniques en puissance de calcul (ordinateurs,
processeurs de signaux ……). De nombreux filtres ou traitements (en particulier les filtres à
phase linéaire) ne peuvent s’effectuer qu’en numérique (ou du moins qu’au moyen
d’échantillons du signal).

I1 Eléments constitutifs

La figure 1, schématise le synoptique d’une chaîne de traitement du signal.

Echantillons numériques sur n bits:


xn yn
Echantillonneur bloqueur

Lissage
Anti-repliement
CN A F2
Entrée analogique
x(t) F1 CA N

Calculateur Sortie analogique


Echantillons analogiques: y(t)
x’n

Acquisition Traitement Restitution

Figure 1 : Chaîne de traitement numérique du signal

• L'échantillonneur-bloqueur "discrètise" le signal en prélevant des échantillons à une


cadence d’échantillonnage Fech = 1/Tech et les envoie au CAN (signal x’n)
• Le CAN permet la numérisation de chaque échantillon et fournit les xn.
• Le « Calculateur » (microcontroleur, ordinateur, processeur de signal, ou circuit
câblé …) permet de faire des traitements sur des données numériques.
• Un signal se sortie numérique peut être fourni sous formes d’échantillons yn, à la
même cadence Fech de préférence.
• Ces échantillons peuvent restituer un signal de sortie analogique par passage par un
CNA et un filtre F2 dit de lissage (jouant le rôle d’interpolateur).

Le rôle de F1 (filtre anti-repliement) est expliqué plus loin.

Dans le cadre de ce TP, nous nous plaçons au niveau de l’étage de traitement situé entre
les deux convertisseurs. Dans un dernier TP nous toucherons plus l’aspect expérimental
en implémentant quelques traitements sur un processeur de signal numérique ou DSP
(pour Digital Signal Processor).

2 2017 - 2018
ELE109, HTO & FOD Filtrage numérique

I2 Echantillonnage et reconstitution

I2a Rôle de l'échantillonneur bloqueur


Soit un signal x(t) sinusoïdal à échantillonner, de fréquence F. Et soit Fech la cadence
de prise en compte des échantillons.

signal d'entrée sinusoidal avec F < Fech/2


Echantillonnage sans maintient

Tech = 1/Fech
Ve

V'e

T=1/F

Echantillonnage avec maintient

Ve

V'e

Tech = 1/Fech

Figure 2 : Principe de l’échantillonneur-bloqueur

Le maintient entre deux échantillons permet:


-En acquisition pour avoir le temps de convertir en binaire les valeurs
-En restitution pour avoir un signal d'énergie suffisante

I2b Spectre du signal échantillonné, reconstitution


Soit un signal Ve sinusoïdal, de fréquence F, on montrerait qu'il fournit après
échantillonnage toute une série de fréquences supplémentaires Fech-F Fech+F 2.Fech-F
2Fech+F 3.Fech-F 3.Fech+F ......
Fech
Pour deux fréquences F1 et F2 < , on aura donc:
2

3 2017 - 2018
ELE109, HTO & FOD Filtrage numérique

F2 idéal
Non réalisable
filtre réel F2 de lissage

F2 Fech-F2 Fech+F2 2.Fech-F2 2.Fech+F2


F1 Fech-F1 Fech+F1 2.Fech-F1 2.Fech+F1

etc ...
F
Fech/2 Fech 2.Fech

Figure 3 : Traitement de deux raies sans repliement spectral


Tant que les raies Fech _Fi sont au delà de Fech/2, on voit donc que par suppression des
fréquences élevées au delà de Fech/2, on peut reconstituer le signal de départ. Le filtre à
utiliser est un passe bas dit de "lissage".

Cas limite F = Fech/2:

1/Fech

F = Fech/2 Limite théorique de Shannon

Il faut donc toujours avoir F < Fech/2 (sauf cas très particulier de "sous échantillonnage").
C'est le théorème de Shannon.

➢ Le filtre de lissage :
Un filtre idéal laisserait tout passer à Fech /2 et rien
au delà, ce n’est évidemment pas possible.

La reconstitution est en fait très facile pour F1, et un


peu moins pour F2 qui est plus proche de Fech/2 . mauvais lissage bon lissage

Pour reconstituer proprement (avec très peu de distorsions) le signal de départ jusqu’à des
fréquences proches de Fech/2, le filtre de lissage réel devra donc être performant :
- Le plus plat possible ou très peu oscillant jusqu’à presque Fech/2
- Atténuer déjà à Fech/2 de 40 à 50dB.

On choisit des filtres classiques analogiques de Butterwoth ou Tchebycheff, souvent d’ordre


assez élevé (6 ou 7 pour avoir une coupure raide du signal).

I2c Repliement de spectre

➢ Cas d’un signal sinusoïdal

Pour une sinusoïde de fréquence F2 à l'entrée et si F2 > Fech /2 :

4 2017 - 2018
ELE109, HTO & FOD Filtrage numérique

filtre analogique F2 de lissage


réel

Fech-F2 F2 2.Fech-F2 Fech+F2 2.Fech+F2

etc ...
F
Fech/2 Fech 2.Fech

Figure 4 : effet du repliement spectral sur la reconstruction d’un signal sinusoïdal


Le filtrage récupère la fréquence Fech-F2 et non F2 !!

Etude qualitative autour de Fech:

V'e Battement Très Basse Fréquence

Ve

F Fech
Figure 5 : filtrage d’une raie avec repliement spectral

Pour F  Fech, la fréquence de V'e est Fech - F  0 !!!. C'est un "battement" à très basse
fréquence ou à fréquence nulle (si F = Fech ), que l'on voit sur la figure ci-dessus. Ce
phénomène se retrouverait autour de 2.Fech de 3.Fech ... de k.Fech !

Application du repliement de spectre: Ce phénomène de battement en basse fréquence est


mis à profit par les oscilloscopes à échantillonnage (permettant de visualiser des signaux de
50Mhz à plusieurs dizaines de GHz). On l'utilise maintenant également dans certaines
techniques de démodulation AM FM en radiocommunication.
On peut citer aussi l'effet stroboscopique qui est en fait un échantillonnage par éclairs
lumineux.

5 2017 - 2018
ELE109, HTO & FOD Filtrage numérique

➢ Cas d'un signal de largeur de bande F:


Filtre de lissage parfait
Le filtre de lissage (F2 du schéma
général), limitant la bande à Fech/2, ne Pas de repliement:
permet de reconstituer le signal Reconstitution possible
analogique de départ que dans le cas
ou Fmax < Fech/2. F
-F +F -F +F etc ...
F
Fech/2 Fech 2.Fech
Le rôle du filtre F1 optionnel (du
Fmax
schéma général) est de limiter la bande
à Fech/2 avant échantillonnage, afin Repliement de spectre
Reconstitution impossible
d'éviter l'apparition de fréquences
parasites, on le nomme filtre "anti
-F -F +F
repliement". Il sert aussi, dans le cas F
+F

d'un passe bande, à supprimer la Fech/2


composante continue qui doit souvent Fmax
être nulle en traitement de signal.
Figure 6 : filtrage d’un signal large bande

Le signal de la figure du haut à un spectre avec Fmax < Fech/2 donc F1 n’est pas utile.
Le signal de la figure de bas à un spectre dépassant Fech/2, si on l’échantillonne sans filtrage
initial, des battements parasites surviendront et ceux ci ne pourront plus être éliminés par la
suite, reconstitution impossible !
Ce filtre anti repliement est ainsi indispensable dans de nombreuses applications, comme par
exemple avant échantillonnage du signal audio en vue d'enregistrement sur compact disque.

I2d Traitements temps réel


➢ Traitement "en ligne" ou "au fil de l’eau"
Soit Tech la période d'échantillonnage du signal X à traiter. Ce traitement consiste en trois
phases: acquisition d’un échantillon Xn, traitement (à partir de Xn, et d’un certain nombre
d’échantillons précédents pouvant provenir de différentes sources), sortie d’un échantillon Yn
du signal de sortie Y.
On doit toujours conserver la même cadence d'échantillonnage pour le signal de sortie traité Y
(Fech entrée = Fech sortie), l’échantillon Yn devra être fourni avant l’acquisition du nouvel
échantillon Xn+1. Il faudra donc que :
Tacquisition + Tcalcul + Tsortie < Tech
Filtre sur N = 3 échantillons

Ve
FechVe = 1/Te=Fech

Echantillons de Vs
FechVs = FechVe = Fech
si Tc < Te ! temps réel Te

Vs
Filtre de lissage à Fech/2
Fmax = Fech/2 Tc
Tc = Temps acquisition d’un échantillon
+durée calculs + temps sortie

Figure 7 :principe du traitement temps réel au fil de l’eau

6 2017 - 2018
ELE109, HTO & FOD Filtrage numérique

➢ Traitement par bloc

On fait l'acquisition de N valeurs du signal X. Le traitement s'effectue ensuite. On travaille


parfois ainsi. Fech de sortie est inférieure à Fech d’entrée.
N = 4 échantillons Te

Ve
FechVe = 1/Te
Tc
Echantillons de Vs
FechVs  FechVe/N
FechVs  FechVe/N si Tc < Te
Tc = Temps acquisition du dernier échantillon
+ Temps calculs + Temps sortie

Vs
Filtre de lissage à FechVe/2 !

Vs
Nouveau Filtre de lissage à FechVs/2
Mais Fmax entrée limitée à FechVs/2 !

Figure 8 :principe du traitement temps réel par bloc

7 2017 - 2018
ELE109, HTO & FOD Filtrage numérique

II La convolution
II 1 a Système linéaire

x Système linéaire
y

Te
instants d'échantillonnage identiques pour tous les signaux: t = nTe = n/Fe

Figure 9 :système linéaire invariant dans le temps

Linéarité: si x = x1+k.x2 alors y = y1 + k.y2


Invariant dans le temps: x(t-) donne y(t-)
Certains systèmes varient dans le temps, mais si cette variation est lente, on peut les classer
dans cette catégorie. On ne s'intéresse désormais qu’aux valeurs aux instants
d'échantillonnage nTe.

II 1 b Réponse impulsionnelle (d'un système linéaire)


Si l'entrée x est une seule impulsion valant 1 pour t = 0, la réponse du système se nomme la
réponse impulsionnelle H .
Elle peut être de durée finie ou infinie :
On distingue en effet deux types de filtres :
- FIR / RIF : Finite Impulse Response / Réponse Impulsionnelle finie
- IIR / RII : Infinite Impulse Response / Réponse Impulsionnelle Infinie

II 1 c Construction de la réponse yn à une suite d’échantillons xn : la convolution


Chaque échantillon xk, d'amplitude xk, donne une réponse égale à xk.H
Toutes ces réponses sont à sommer avec le décalage approprié.
On peut représenter cela très facilement au moyen de l’exemple 1 suivant qui est un filtre à
réponse impulsionnelle finie de N = 3 échantillons:
Une réponse de trois échantillons (les suivants éventuellement négligeables ou nuls)

entrée x Sortie y = réponse impulsionnelle H


x0 =1
h0
h1
h2
t=0 t = 0 Te 2Te
Ce filtre est évidemment « à réponse impulsionnelle finie » ou « FIR »

8 2017 - 2018
ELE109, HTO & FOD Filtrage numérique

Signal xn:
h0
h1
h2
x0 x1 x2 x3 x4 x5 .... Il faut sommer: x0 
..... xn h0
h1
h2
+ x1 
Réponse yn: h0
h1
h2
+ x2 
etc ... h0
h1
h2
+ x3 
h0
h1
+ x4  h2
etc
On a y0 = x0.h0
y1 = x1.h0 + x0.h1
y2 = x2.h0 + x1.h1 + x0.h2
y3 = x3.h0 + x2.h1 + x1.h2
y4 = x4.h0 + x3.h1 + x2. h2
etc ...
yn = xn.h0 + xn-1.h1 + xn-2.h2 terme général

Soit N la taille du filtre. Pour un filtre à réponse impulsionnelle finie, l’expression finale sera
identique avec N tendant vers l’infini.
A partir de y3 (indice = taille N de la réponse impulsionnelle H), on obtient y en sommant
toujours N=3 termes.
On voit que la sortie se calcule en permanence à partir de xn et des N-1 = 2 échantillons
précédents, par l’expression:
Cette expression se nomme la Convolution de x avec h. On écrit parfois y = x * h
(produit de convolution).
N 1
yn   xn k .hk
k 0

Conclusion :
A l’arrivée d’un signal xn, un régime transitoire dure donc exactement NTe soit la durée de
la réponse impulsionnelle.
A tout instant, la sortie est fonction de la nouvelle entrée xn et de N-1 valeurs de l’entrée
précédente. Donc prédictive exactement.

Pour un filtre IIR, N est infini, le régime transitoire est ‘théoriquement’ infini, mais
heureusement pas en pratique ! c’est un peu comme une exponentielle en analogique qui bien
que théoriquement infinie, ne varie pratiquement plus au bout de 4 à 5 constantes de temps

9 2017 - 2018
ELE109, HTO & FOD Filtrage numérique

II 1 d Etude d’un exemple

On désire effectuer la convolution entre :


Les échantillons xn 0 1 2 3 4 5 5 5 5 5 0 0 0 0
La réponse impulsionnelle H 0,6 0,3 0,1 (trois échantillons h0 h1 h2)

L’entrée s’établit à t = 0 en rampe (de pente 1), puis est constante (à 5) et enfin est
constante (à 0). Le signal d’entrée se modifie donc 3 fois, on devra donc observer 3 régimes
transitoires et trois régimes permanents

➢ Etude théorique à la main

1) Compléter le tableau en annexe (détacher celui fourni en dernière page …), en s’inspirant
de l’explication physique toute simple de la convolution, somme de réponse
impulsionnelle, donc ligne par ligne, on ajoutera ensuite verticalement.

2) Tracer sur un même chronogramme (également sur la feuille en dernière page) les valeurs
des Xn et des Yn (marquer bien les différents points et les relier par une ligne pointillée
pour mieux observer l’allure générale du signal.
Bien indiquer sur ce chronogramme les régimes permanents et les régimes transitoires.
Remarque : les transitoires durent théoriquement NTe = 3Te mêmes si certains paraissent plus
courts…
3) Que vaut la valeur maximale de Yn, est-ce normal et pourquoi ?

➢ Vérification avec MATLAB

1) Ecrire le programme suivant (Vous n’êtes pas obligé d’écrire les commentaires…)

x = [ 0 1 2 3 4 5 5 5 5 5 0 0 0 0 ]; % Tableau des xn
h = [0.6 0.3 0.1]; % Réponse impulsionnelle de trois coefficients
y = conv(x,h); % Convolution de x et de h

plot(x,'k*-'); % Tracé des xn, en noir, étoiles, reliés par trait


grid on; % Quadrillage
hold on; % Pour tracer une seconde courbe sur la même figure
plot(y,'r*:'); % Tracé des yn, en rouge, étoiles, reliés par pointillés
hold off;

2) Exécuter le programme. Est ce Ok rapport à construction manuelle précédente ?


3) Taper y et vérifier les valeurs obtenues manuellement.
4) Indiquer sur la figure obtenue les régimes permanents, et vérifier bien la durée des
transitoires
5) Si M et N sont respectivement la taille du tableau des Xn, et la taille de la réponse
impulsionnelle. Quelle est la taille de la convolution Y ?

10 2017 - 2018
ELE109, HTO & FOD Filtrage numérique

III Réponse en fréquence et fonction de transfert


III 1 Etude générale avec X sinusoïdal, et filtrage de réponse impulsionnelle H
X = A.cos(2ft)
xn = A.cos(2nf/Fe) ou xn = A.cos(2n.fTe)

On pose x = fréquence normalisée: x = f/Fe = fTe sans dimension. 0  x  0.5


xn = Acos(2nx) 0  f  Fech/2

Comme en analogique, pour calculer une fonction de transfert G qui apportera atténuation et
déphasage en fonction de f, on introduit la notation complexe:
Soit Xn = Ae2inx avec xn = Reel(Xn)

Yn
Alors : G( x )   G( x ) .ei. ( x )
Xn
G(x) est la fonction de transfert complexe du système
Le module du gain |G(x)| peut s'exprimer en dB: GdB=20.log(|G(x)|)
Le déphasage est  (x )
N 1
Pour une réponse impulsionnelle H, on obtient la sortie par la convolution : Yn   X n k .hk
k 0
2inx -2ikx
Or : Xn-k = Ae .e
Donc Xn-k signifie donc déphasage de –2kx = -2kfTe
Rappel : Si une sinusoïde sin2ft est retardée de , elle s’écrit : sin2f(t-) = sin(2ft – 2f)
= sin(2ft-)
Un retard  provoque donc un déphasage de –2f.
Donc Xn-k signifie un retard de k.Te
Il vient
N 1 N 1 N 1
Yn   X n k .hk   Ae 2inxe 2ikx .hk  Xn  e 2ikx .hk
k 0 k 0 k 0
D’où
Yn N 1 2ikx
 e
G( x )  .hk
Xn k 0
On pose souvent (pour une étude plus générale dite transformée en z) : z  e2ix
Yn N 1 k
Et alors : G( z )    z .hk avec z  e2ix
Xn k 0

III 2 Gain statique (pour f = 0)


Valable donc seulement pour un passe bas !
N 1
On fait f = 0, donc x = 0 ou z = 1, il vient immédiatement : G0   hk
k 0
Pour avoir donc un gain continu ou très basse fréquences, de 1, il faut que la somme des
coefficients soit égale à 1

III 3 Valeur max du Gain pour tout filtre


N 1
G0   hk Pratique pour étudier tout débordement
k 0

11 2017 - 2018
ELE109, HTO & FOD Filtrage numérique

IV Les filtres RIF


IV 1 Description
La structure (qui peut être câblée ou programmée) réalisant ce filtrage se nomme filtre
"transversal" comme le suggère la figure suivante. Il est évident que si on présente à l'entrée
un seul échantillon à 1, on récupère en sortie la réponse impulsionnelle du filtre.

retards d'un échantillon à chaque fois


entrée des échantillons
xn xn-1 xn-(N-1)
HN-1
HN-2
yn

H1
H0

Figure 1 : synoptique d’un filtre FIR

En adoptant les même notations que celles utilisées dans le TP1, nous pouvons écrire
l’équation de récurrence reliant la sortie yn aux entrées xn-k (k=0..N-1) par :
N 1
yn   hk xn k
k 0
La sortie du filtre à un instant nTe est une combinaison linéaire de l’entrée au même instant
(nTe) et des N-1 entrées précédentes.

IV 2 Calcul de la fonction de transfert en régime sinusoïdal


Soit X = A.cos(2ft) le signal analogique en entrée du filtre
Le signal échantillonné s’écrit :

xn = A.cos(2nf/Fe) = A.cos(2nfTe)

On pose x : la fréquence normalisée (grandeur adimensionnelle):

x=f/Fe=fTe

Comme en analogique, pour calculer une fonction de transfert G qui apportera amplification,
atténuation et déphasage en fonction de f (ou de x), on introduit la notation complexe :

Xn  Ae 2inx
avec xn = Reel(Xn)
On définis la fonction de transfert complexe du filtre par :

Yn
G( x )   G( x ) .ei. ( x )
Xn

G(x) est la fonction de transfert complexe du système


Le module du gain |G(x)| peut s'exprimer en dB: GdB=20.log(|G(x)|)
Le déphasage est  (x )

12 2017 - 2018
ELE109, HTO & FOD Filtrage numérique

En utilisant les notations complexe, la convolution se réécrit :

N 1
Yn   X n k .hk
k 0

Or : Xn-k = Ae2inx.e-2ikx = Xn.e-2ikx

Xn-k est une version déphasée de –2kx = -2kfTe, de Xn

Rappel : Si une sinusoïde sin2ft est retardée de , elle s’écrit : sin2f(t-) = sin(2ft – 2f)
= sin(2ft-)
Un retard  provoque donc un déphasage de –2f.

Xn-k est une version retardée de k.Te par rapport à Xn

Il vient :
N 1 N 1 N 1
Yn   X n k hk   Ae 2inxe 2ikx hk  Xn  e 2ikx hk
k 0 k 0 k 0
D’où :
Yn N 1 2ikx
G( x )   e hk
Xn k 0

On pose souvent (pour une étude plus générale) la transformée en z en utilisant le changement
de variable z  e2ix , on obtient :
Yn N 1 k
G( z )    z .hk
Xn k 0

IV 3 Gain statique (pour f = 0)


Ce gain correspond à f = 0, donc x = 0 ou z = 1, soit :

N 1
G0   hk
k 0

Pour avoir donc un gain continu ou très basse fréquences, de 1, il faut que la somme des
coefficients de la réponse impulsionnelle soit égale à 1

IV 4 Valeur max du Gain pour tout filtre

Afin d’éviter tout débordement induit par une opération de convolution (filtrage), on calcul le
gain max de celui-ci donné par :

N 1
G0   hk
k 0

13 2017 - 2018
ELE109, HTO & FOD Filtrage numérique

IV 5 Linéarité de la phase
On veut toujours réaliser des filtres ne déformant pas le signal dans la bande utile. Or
on sait qu’un filtre (comme une ligne de transmission) provoque des distorsions non désirées
si la phase n’est pas linéaire, les différentes fréquences constituant le signal ne se propageant
alors pas à la même vitesses (dispersion). Tous les filtres analogiques sont par nature
dispersifs.
La condition pour limiter cela est de s’approcher le plus possible d’un déphasage
proportionnel à la fréquence dans toute la bande utile.

➢ Réponse impulsionnelle de taille impaire (l’étude est h2


plus aisée) et Symétrique :
Ici taille N = 5 h1 h3
N 1 h0
G( x)   e 2ikx .hk =h0+h1.e-2ix+h2e-4ix+ h3e-6ix+ h4e-8ix h4
0

En mettant e-4ix en facteur et en regroupant deux à deux les hi


symétriques, il vient :
Te(N-1)/2 = 2Te
4ix h0  h4 h1  h3
G ( x)  e ( cos 4x  cos 2x  h2)
2 2
Le premier terme est un déphasage de 4x = 4fTe, et donc un retard pur de 2Te
Le second est réel.

Un filtre à réponse impulsionnelle finie et symétrique permet donc de réaliser des filtres
parfaitement à phase linéaire (et donc sans distorsion due à des temps de propagation
différent selon la fréquence), comprenant :
- Un gain réel
- Un retard pur (obligatoirement mais ce qui n’est nullement un inconvénient …) égal à la
N 1
moitié de la durée de la réponse impulsionnelle, soit   Te
2
C’est le grand intérêt des filtres numériques à réponse impulsionnelle finie !
Un tel filtre n’as pas d’équivalent en analogique !

➢ Réponse impulsionnelle Anti-symétrique :


h2
Ici taille N = 5
h3
On retrouverait la même propriété mais un déphase
h4
supplémentaire de /2 (termes en sinus) qui peut servir dans h0 h1
certaines applications (modulation de phase en quadrature
QAM).

IV 6 Exemple : le filtre RIF à moyenne mobile


C’est un filtre classique dont les applications sont, nous le verrons multiples selon ses
paramètres.

14 2017 - 2018
ELE109, HTO & FOD Filtrage numérique

➢ Réponse impulsionnelle

Pour un filtre de taille N, tous les hk = 1/N


1/N

h0 hN-1
N 1
1 N 1
La convolution yn   xn k .hk donne alors yn   xnk qui est évidemment la moyenne
k 0 N k 0
des N valeurs de xn-(N-1) à xn d’où le nom de filtre moyenneur.
 Différence avec une simple moyenne :
Sans parler de convolution, on sait ce qu’est évidemment une simple moyenne ! on peut
en effet acquérir N valeurs d’un signal et calculer ensuite la moyenne. La différence réside
ici dans le fait que l’on dispose en permanence de la moyenne de l’échantillon présent et
des N-1 précédents, d’ou le nom de « moyenne mobile ».

➢ Calcul de la fonction de transfert

Par application de la formule de la somme des N premiers termes d’une progression


1  qN
géométrique un = aq : k 0 aq  a
n N 1 k
on obtient :
1 q
N 1
1 1  e 2iNx 1 eix eiNx  e iNx 1 eix sin Nx
G( x )   e 2ikx .hk    .
k 0 N 1  e 2ix N eiNx eix  e ix N eiNx sin x

On ne s'intéresse au module de G (qui représente un gain ou un affaiblissement)


1 sin Nx
G( x)  .
N sin x
Traçons pour différentes valeurs de N, le module de la fonction de transfert due à ce filtre.

Remarque très importante : au delà de Fech/2, on observe mathématiquement une sorte de


fonction de transfert « miroir ». Il faut se souvenir que l’on ne peut parler de Fonction de
transfert que si la fréquence d’entrée est identique à celle de sortie (Système linéaire), donc
seulement pour F  Fech/2. Au delà de Fech/2, Shannon n’est plus respecté, il y a repliement
de spectre. La sortie n’est plus de fréquence F, mais Fech-F, puis 2Fech-F ….

f ech
Les zéros de |G| correspondent à Nx  k donc à x = k/N ou f zeros  k . k0
N
N=2 N=3
1 1

0.833
0.75
0.666

0.5 0.5

0.333
0.25
0.166

0 0
0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 1

15 2017 - 2018
ELE109, HTO & FOD Filtrage numérique

N=9 N=100
1
1 0.9

0,888 0.8

0.7
0.666 0.6

0.5
0,444 0.4

0.3
0.222 0.2

0.1
0 0
0 0.2 0.4 0.6 0.8 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1

Figure 11 : réponse en fréquence d’un filtre moyenneur FIR en fonction de N

Les maximums correspondent 1


presque au numérateur sinNx = 1. 0.9
D’ou l’équation approchée de la 0.8
courbe des maximums : 0.7
1 1
Max( x) 
0.6
. N = 21
N sin x 0.5
0.4
La fonction de transfert est très 0.3
Enveloppe d’un
proche d’un |sinx/x| classique, 0.2 classique Sinx/x
surtout au début. 0.1
Exemple pour un filtre à N = 21 0
coefficients : 0 0.05 0.1 0.1 0.2 0.2 0.3 0.3 0.4 0.4 0.5
5 5 5 5
La phase du filtre, correspond à l’argument de G et est donné par :

N 1
 ( x )  ( N  1)x  
Te2f
2
C’est la réponse en phase du filtre. On a donc une phase linéaire (évolution affine en
fonction de f).

Le retard induit par ce filtre est égal à :

N 1
 Te
2

Utilisation :
C’est donc un filtre passe bas, qui atténue les fréquences élevées et provoque donc un lissage
plus ou moins prononcé du signal.
Il permet de calculer une valeur moyenne, une valeur efficace (si on l’applique sur les carrés
des échantillons).
On s’en sert aussi couramment dans d’autres domaines, par exemple pour lisser les courses de
bourse (avec des moyennes mobiles sur 1 semaine, 1 mois ou plus, et trouver certaines
tendances des marchés).

16 2017 - 2018
ELE109, HTO & FOD Filtrage numérique

➢ Application
Soit à t = 0 un signal sinusoïdal de 500Hz, échantillonné à 10000 Hz, il est envoyé vers un
filtre de réponse impulsionnelle h formé par 7 coefficient égaux à 1/7.
Dans ce qui suit le listing du programme à reprendre pour la suite des traitements.

fe=10000; % Fréquence d’échantillonnage 10000 Hz


duree = 50 ; % Durée en nombre de points
t = 0:1/fe:duree/fe; % duree points espacés de Te = 1/fe
f = 500; % Fréquence du Signal, 370 Hz
x = cos(2*pi*f*t); % Signal sinusoïdal
h=1/7*[ 1 1 1 1 1 1 1 ]; % Réponse impulsionnelle : 7 coefficients égaux à 1/7
y =conv(x,h); % Convolution
plot(x,'k*-'); % Tracé des xn
grid on;
hold on;
plot(y,'r*:'); % Tracé des yn sur même figure
hold off;

1) Observer les courbes obtenues.


Bien marquer sur les chronogrammes les deux régimes transitoires et le régime permanent.
Pour celui-ci, on observera simplement gain et déphasage.
2) Vérifier la durée des régimes transitoires ?
3) Retrouver les valeurs des gains statiques, des gains aux extremums
4) A partir de la courbe de phase retrouver la valeur du retard induit par ce filtrage.
5) Modifier le programme pour simuler un signal moyenné sur un nombre N d’échantillons
qui sera définis comme paramètre. Utiliser la fonction « ones » .
6) Réécrivez le programme pour le mettre sous forme d’une fonction « moyenne_FIR.m »
qui reçoit en entrées x et N et renvoie en sortie y. Cette fonction sera appelée par un
programme principal « main.m », dans lequel seront définis les paramètres d’entrée ainsi
que les éventuels commandes pour tracer des figures.

1ère partie : filtrage d’un signal sinusoïdal

Appliquer la fonction « moyenne_FIR.m » au signal en cosinus à f0=500Hz.

7) Pour une durée d’observation « duree » du signal, que doit vérifier le paramètre N pour
pouvoir calculer la valeur moyenne sur, au moins, une période du signal.
8) Expliquez (sans le programmer) ce qu’il faut modifier au niveau de la fonction
« moyenne_FIR.m » pour pouvoir calculer la valeur efficace du signal.
9) Tracez, on se basant sur le développement théorique précédent les réponses en fréquence
(amplitude et phase) de ce filtrage pour différentes valeurs de N.
10) Retrouver, pour une valeur de N=7, les valeurs des gains statiques et des gains aux
extremums ainsi que le nombre de ces derniers en fonction de N. Commentez le résultat
obtenu.
11) Pour la même valeur de N, retrouvez à partir de la réponse en phase du filtre, la valeur du
retard induit par ce filtrage.

2ème partie : filtrage d’un signal audio : lissage

On se propose dans cette partie d’étudier le filtrage d’un enregistrement audio.


Copier dans votre répertoire de travail les fichiers « stereo1.wav » ou « stereo2.wav ».

17 2017 - 2018
ELE109, HTO & FOD Filtrage numérique

12) Lire le fichier « stereo1.wav » ou « stereo2.wav » en utilisant la commande « wavread ».


Vous pouvez extraire les caractéristiques de ce fichier (taille, fréquence d’échantillonnage
et nombre de bits de quantification). Pour écouter l’enregistrement sur le casque, vous
pouvez utiliser la commande « sound ».
13) Appliquez la fonction précédente « moyenne_FIR.m » aux signaux donnés par waveraed
(valeur de N=101). Pour chaque canal (droite ou gauche), comparer les signaux en entrée
(x) et en sortie (y). Vous avez le choix entre appliquer le traitement à un ou aux deux
canaux. A ce niveau vous pouvez également appliquer des gains différents aux deux
canaux droite et gauche. Attention de ne pas mettre des gains très importants. (entre 0
(mute), 2 (amplification de 6dB), ½ (atténuation de 6dB)).
14) Générer à partir du signal filtré un nouveau fichier « stereo1_traite.wav ». Pour cela
utilisez la command « wavwrite ».
15) Faite une écoute comparative ; signal original vs signal traité. Quelle différence
constatez-vous ? Expliquez ?

3ème partie : filtrage d’un signal sinusoïdal : retard

Les applications les filtres FIR en traitement du signal sont diverses et variées. Dans ce
paragraphe, nous allons essayer d’implémenter une simple ligne à retard à partir de
convolution du signal par un retard pure

16) Modifiez la fonction « moyenne_FIR.m » pour qu’elle provoque un retard de (N-1)Te au


niveau du signal original. Nommez « retard_FIR.m » la nouvelle fonction.
17) Appliquez cette fonction sur une des voies du fichier « enregistrement.wav ». Ajuster une
la valeur de retard (N) pour que le retard corresponde à 100ms. Régénérer le fichier .wav
traité et l’écouter avec votre casque. Que constatez-vous ?

V Les filtres RII


V1 Description

Ce sont des filtres récursifs dont la sortie à l’instant nTe est fonction des échantillons en
entrée (présents et passés) ainsi que des sorties précédentes. L’équation de récurrence
correspondante est donnée par :

N 1 M 1
yn   xn k .bk   yn k .ak
k 0 k 1

La synoptique de ce filtre est donnée par la figure 2.

xn yn
an, bn

Figure 2 : synoptique d’un filtre RII

18 2017 - 2018
ELE109, HTO & FOD Filtrage numérique

La boucle de rétroaction des sorties sur les entrées, fait que ces filtres peuvent être instables.

➢ Fonction de transfert et réponse en fréquence

f
Pour z  e2ix et x  , la fonction de transfert s’écrit :
Fe
N 1

Yn  z k .bk
G( z )   k 0
M 1
1   z k .ak
Xn
k 1

➢ Gain pour f = 0 : x = 0 ou z = 1, il vient :

N 1

 bk
G ( f  0)  k 0
M 1
1   .ak
k 1

V2 Quelques avantages / inconvénients des filtres RII par rapport aux filtre RIF

Avantage : filtres à pentes raides possibles avec peu de coefficients, du fait de la


rétroaction, la durée de la réponse impulsionnelle peut être longue mais avec très peu de
coefficients. Ce filtre est toujours stable.

Inconvénient : Par construction, un filtre RII ne peut pas être à phase linéaire (la réponse
impulsionnelle est forcément dissymétrique). Ce filtre peut être instable.

V3 Exemple 1 : filtre passe bas de premier ordre

V3a Fonction de transfert

Pour un filtre de premier ordre l’équation de récurrence s’écrit :

1 1
yn   xn k .bk   yn  k .ak
k 0 k 1

Ainsi, n’interviennent dans cette équation que les termes des entrées et sorties d’ordre 1.

Soit l’exemple suivant :

yn = (1+a)xn - a yn-1

La fonction de transfert du filtre est donnée par :

Yn 1 a
G( z )  
Xn 1  a. z 1

Afin de garantir la stabilité du filtre nous supposons que -1< a < 0

19 2017 - 2018
ELE109, HTO & FOD Filtrage numérique

La réponse en amplitude de ce filtre récursif est donnée par :

1 a
G( x) 
1  2a. cos(2x )  a 2

V3b Gain statique

Nous constatons que ce filtre passe les signaux continus et que pour f=0 ou z = 1, il vient :

G( f  0)  1

V3c Approximation pour x (ou f petit)

Par développement du terme en cosinus, on obtient :


(2x ) 2
cos(2x )  1 
2
Il vient donc :
1
G( x) 
x2
1
(1  a )2 ( 4a 2 )
1
C’est le module d’une fonction de transfert du premier ordre de la forme
x
1 j
xc
1 a
Le fréquence de coupure à 3dB f c est donnée par f c  Fe  xc  Fe
2  a

V3d Application : simulation sur MATLAB

20 2017 - 2018
ELE109, HTO & FOD Filtrage numérique

clc; close all; clear all;

a=-0.5;
resfreq=2048;
Fs=48000;
N=100;
b0 = 1+a
b1 = 0
a0 = 1
a1 = a
b=[b0 b1];
a=[a0 a1];

% réponse en fréquence du filtre


[H,f] = freqz(b,a,resfreq,Fs);
% synthèse d'une impulsion
delta=zeros(1,N);
delta(1)=1;
rep_impuls=filter(b,a,delta);
% synthèse d'un échelon
echelon=ones(1,N);
rep_echelon=filter(b,a,echelon);

figure (1)
semilogx(f,20*log10(abs(H)),'b');
xlabel('Fréquence(Hz)');ylabel('Amplitude(dB)');
grid on
title('Réponse en amplitude du filtre de premier ordre')

figure (2)
plot(rep_impuls(1:N),'k*-');
grid on; hold on;
plot(rep_echelon(1:N),'r*:');
xlabel('Temps en échantillons'); ylabel('Amplitude');
legend('Réponse à une impulsion','Réponse à un échelon')
title('Filtre de premier ordre')

1) Tracez la réponse en amplitude de ce filtre pour différentes valeurs de a (par


exemple a = [-0.5 -0.9 -0.99]). Pour cela vous pouvez utiliser directement la
fonction freqz.
2) Que se passe-t-il lorsque « a » n’est plus dans l’intervalle [-1 0] ? Discutez la
stabilité de ce filtre en fonction de la valeur de « a ». Vous pouvez visualiser la
position du pôle. Le programme ci-dessous vous permet de visualiser la position
du pôle par rapport au cercle unité.

21 2017 - 2018
ELE109, HTO & FOD Filtrage numérique

theta=0:0.01:2*pi
P=roots(a);
x=cos(theta);
y=sin(theta);
z=x.^2+y.^2;

figure(3)
polar(theta,z,'r');
hold on
polar(angle(P),abs(P),'*')
title('zeros de H(z)');
xlabel('partie réelle');
ylabel('partie imaginaire');
axis([-1.5 1.5 -1.5 1.5]);
grid;

3) Tracez les réponses impulsionnelle et indicielle (réponse à un échelon) de ce filtre


et discutez les résultats obtenus.

V4 Exemple 2 : filtre de second ordre

Pour ce filtre l’équation de récurrence fait intervenir les termes de second ordre des entrées et
des sorties.
Soit l’exemple suivant :
yn  (1  a1  a2 ) xn  a1 yn1  a2 yn2

V4a Fonction de transfert

La fonction de transfert est donnée par :

Yn 1  a1  a2
G( z )  
Xn 1  a1 z 1  a2 z 2

Dans la pratique a1 < 0 et a2 > 0.

La réponse en amplitude du filtres est la suivante :

1  a1  a2
G( x ) 
1  a12  a22  2a1 (1  a2 ). cos 2x  2a2 . cos 4x

V4b Gain pour f = 0

On fait z = 1, il vient directement :

G( f  0)  1

22 2017 - 2018
ELE109, HTO & FOD Filtrage numérique

V4c Etude des extremums

On obtient les extremums en dérivant l’expression précédente par rapport à x. On obtient donc
pour :

2a1 (1  a2 ).2 . sin 2x  2a2 .4 . sin 4x = 0

On utilise la formule trigonométrique : sin(2x) = 2sin(x)cos(x), pour réécrire l’égalité


suivante comme suit :

sin(2x).a1 (1  a2 )  4a2 cos 2x  0

Donc soit:
sin(2x)  0 ou x  k / 2 , donc x = 0,5 (max utile avant repliement de spectre)
ou a1 (1  a2 )  4a2 cos 2x  0 donc :

 a1 (1  a2 )
cos 2x 
4 a2
Nous avons donc deux régimes possibles selon que cette dernière équation peut se résoudre
ou non.

V4d Application : simulation sur MATLAB

1) Reprenez le programme du paragraphe « II 3 d » et le modifier pour implémenter


un filtre RII de second ordre dont la fonction de transfert

Yn 1  a1  a2
G( z )  
Xn 1  a1 z 1  a2 z 2

2) Pour a1=-1.2. Discutez pour différentes valeurs de a2 le comportement du


système.
3) Que se passe-t-il lorsque a2 devient grand ? Discutez la stabilité de ce filtre en
fonction de la valeur de a2. Vous pouvez, également, visualiser la position des
pôles.

V5 Exemple 3 : filtre à encoche de second ordre : notch filter

C’est un filtre qui présente un intérêt pratique pour plusieurs applications, notamment en
audio. Dans ce domaine, ils sont plutôt connus sous le l’appellation « filtres paramétriques»
et utiliser pour corriger des défauts (pics) sélectifs au niveau de la réponse d’un système
acoustique (enceinte, salle …)

V5a Fonction de transfert

Ce filtre est une cellule de second d’ordre dont la fonction de transfert est donnée par:

b0 (G 0 , bw)  b1 (bw, f 0 ) z 1  b2 (G 0 , bw) z 2


G( z )  filtre(G 0 , f 0 , bw) 
1  a1 (G 0 , bw) z 1  a2 (G 0 , bw) z 2

23 2017 - 2018
ELE109, HTO & FOD Filtrage numérique

où :
f 0 : fréquence centrale
G 0 : gain du filtre à f 0
bw : ouverture du filtre à G 0  3dB
La réponse en amplitude de filtre à la forme d’une encoche. Appliqué à un signal donné, ce
filtre permet d’atténuer le niveau du signal autour d’une certaine fréquence et avec un certain
facteur de qualité. Un exemple de réponse en amplitude de ce filtre est donné par la figure 3.

Figure 3: Réponse en fréquence d’un filtre à encoche

V5b Application
Reprenez le programme ci-dessous permettant d’implémenter un filtre à encoche générique

clc;
close all;
clear all;
resfreq=4096;
Fs=48000;
G=-20; % central gain
f0=1000; % central frequency
fw=1000; % bandwidth (in Hz) at -3db from G
bw=2*pi*fw/Fs;w0=2*pi*f0/Fs;lambda=tan(w0/2);
M=10^(G/20);P=sqrt(1-2*M^2);
b=[P*(1+lambda^2)/M]*tan(bw/2); a=M*b;
C=1+lambda^2+b;
b0=(1+lambda^2+a)/C; b1=2*(1-lambda^2)/C; b2=(1+lambda^2-a)/C;
a1=b1; a2=(1+lambda^2-b)/C; a0=1;
B=[b0 -b1 b2];
A=[a0 -a1 a2];
[H,f]=freqz(B,A,resfreq,Fs);
figure
semilogx(f,20*log10(abs(H)),'b');
xlabel('Fréquence(Hz)');
ylabel('Amplitude(dB)');
grid on;

1) Appliquez le à l’un des enregistrements « stereoi.wav » (i=1,2) . Visualisez les


résultats avant et après traitement.
2) Comparez sur casque les signaux avant et après traitement. Que constatez-vous ?

24 2017 - 2018
ELE109, HTO & FOD Filtrage numérique

Annexe
Xn  Te 2Te 3Te 4Te 5Te 6Te 7Te 8Te 9Te 10Te 11Te 12Te
0 0 0 0
1 0,6 0,3 0,1
2 1,2 0,6 0,2
3
4
5
5
5
5
5
0
0
0
0
Yn 0 0,6 1,5

5.5

4.5

3.5

2.5

1.5

0.5
0
Te 2Te 3Te 4Te 5Te 6Te 7Te 8Te 9Te 10Te 11Te 12Te 13Te

25 2017 - 2018

Vous aimerez peut-être aussi