Upload
henri-renaud
View
105
Download
1
Embed Size (px)
Citation preview
page page 11Cours S.S.I.I., 2009-10, séance 7 : Filtrer le signal audio numériqueCours S.S.I.I., 2009-10, séance 7 : Filtrer le signal audio numérique
Filtrer le signal audio numériqueJean-Paul Stromboni, Polytech Nice Sophia, Dépt S.I, 3ème année séance n°6, novembre 2009, durée : une heure, vidéoprojecteur
Contenu de la séance :
filtre, filtre numérique, filtre linéaire invariant dans le temps équation aux différences pour implémenter le filtre effet d'un filtre sur le spectre méthode pour construire les filtres désirés conception des filtres avec Matlab
Le filtre ci-dessous est il causal? Donner la fonction de transfert de
Que réalise le filtre ci-dessous ? Réponse impulsionnelle du filtre
Ce filtre est RIF ou RII ? Quelle est la réponse harmonique du filtre ?
2/)( 11 nnn xxy
212 mmmm aaal
)(5.0 21 nnnn sses
nnn ess 1
1 nnn ffd
Questions pour tester la compréhension du cours
Travaux dirigés : des filtres avec Goldwave et MATLAB
1 nnn ffd
page page 22Cours S.S.I.I., 2009-10, séance 7 : Filtrer le signal audio numériqueCours S.S.I.I., 2009-10, séance 7 : Filtrer le signal audio numérique
• Filtrer un signal audio, c'est agir sur l'information transportée par ce signal
• Pourquoi filtrer dans le cours S.S.I.I. ? Parce que pour compresser un signal audio, on sera amené à découper son spectre en bandes de fréquences, par filtrage
• Pour filtrer un signal audio numérique, l'ordinateur met en œuvre un filtre numérique programmé.
• Exemple de filtre numérique :
• x est le signal à filtrer (ou entrée du filtre)• yn=xn-xn-1 est l'équation aux différences du filtre• y est le signal filtré (sortie du filtre)
• ce filtre est Linéaire et Invariant dans le Temps (LIT, LTI en anglais) car sa relation d'entrée sortie (xn yn)
• ne dépend pas de l'indice n (ou temps nTe) • ne dépend pas des amplitudes des yn et xn.
• calculer y si x est appliqué à yn=yn-1 + xn-1 et que y0=0 :
y = [0, 1, 2, 2, 2, 3, 3.5, 4.5]
Les notions de filtre, de filtre numérique, de filtre linéaire et invariant dans le temps
105050101010
10
8150100110
10
1
N,n,.,.,,,,,,y
N,n,xxy
N,,.,,,,,,x
N,n,xx
nnn
n
n
page page 33Cours S.S.I.I., 2009-10, séance 7 : Filtrer le signal audio numériqueCours S.S.I.I., 2009-10, séance 7 : Filtrer le signal audio numérique
Pour mettre en œuvre un filtre numérique, il faut programmer son équation aux différences (EaD)
Forme générale de l'EaD d'un filtre L.I.T.
où les coefficients bk et aj sont indépendants :
des valeurs de yn-k et xn-j (linéarité, le L. de L.I.T.)
des indices n (invariance dans le temps, le I.T.)
N est l’ordre du filtre (M+N est la longueur) Un filtre est à réponse impulsionnelle finie, ou
non récursif, si les coefficients bk sont nuls, et à réponse impulsionnelle infinie (récursif) sinon
Un filtre est dit causal quand yn ne dépend pas d'échantillons ultérieurs à l'instant nTe (si M > 1). Sinon, le filtre est anticausal.
par exemple
1
01
M
j jnj
N
k knkn xayby
1 nnn xxy
11 nnn xyy
nnn ynxy 9.01
12
1 9.0 nnn xxy
nnn yxy 9.01.0 21
est récursif , et linéaire invariant dans le temps
est LIT, mais récursif
non invariant dans le temps, linéaire, récursif (RII)
non linéaire, RIF
LIT, récursif, anticausal
page page 44Cours S.S.I.I., 2009-10, séance 7 : Filtrer le signal audio numériqueCours S.S.I.I., 2009-10, séance 7 : Filtrer le signal audio numérique
Filtrer un signal audio, c'est multiplier son spectre par la réponse harmonique du filtre
)()()( fXfHfY
Quel est l'effet du filtre H2(f) sur X2(f) ?
f
G
2ef
2ef
)(2 fH
4ef
4ef
n
ffinnn
eehhTFDfH /2][)(
H(f) est la réponse harmonique du filtre.
hn est la réponse impulsionnelle du filtre
f
2ef
2ef
)(2 fY
f
1
2ef
2ef
)(2 fX
f
][)( nxTFDfX
2ef
2ef 2
ef
f
][)( nyTFDfY
2ef
EaD Nnxn ,0, Nnyn ,0,
)]f(H[TFDh
eh]h[TFD)f(H
n
n
f/finnn
e
1
2
Effet du filtre:
4ef
4ef
4ef
4ef
G/2
2ef
nhTFD)f(H
f
2ef
1
cfcf
page page 55Cours S.S.I.I., 2009-10, séance 7 : Filtrer le signal audio numériqueCours S.S.I.I., 2009-10, séance 7 : Filtrer le signal audio numérique
Une méthode pour construire les filtres FIR à partir de la réponse harmonique désirée :
Calculer la réponse impulsionnelle de
partant de n=0, yn=hn= [1, -1, 0, 0, 0, 0, …]
Calculer le produit de convolution yn=[xn*hn] :
]*[ nni inini
filtreinin hxhxyxx
1 nnn xxy
nfiltre
n h Réponse impulsionnelle :
Impulsion : 00,01 nsinsi nn
L'invariance dans le temps implique que :
infiltre
in h
La linéarité et l'invariance dans le temps impliquent que la sortie du filtre yn est le produit de convolution de l'entrée xn par la réponse impulsionnelle hn :
D'où la méthode de conception des filtres à partir de la réponse harmonique désirée :
• 1ère étape : définir H(f) désiré• 2ème étape : déduire hn=TFD-1[H(f)]• 3ème étape : calculer yn=[xn*hn]
1
1
0 nni i iiniini inin xxhxhxhxy
nni inii ininnn x*hhxhxh*xy
Produit de convolution :
page page 66Cours S.S.I.I., 2009-10, séance 7 : Filtrer le signal audio numériqueCours S.S.I.I., 2009-10, séance 7 : Filtrer le signal audio numérique
Il est équivalent d'utiliser la fonction de transfert en z d'un filtre ou son EaD :
nnn yxy 9.01.01
On calcule la fonction de transfert en z d'un filtre à partir de la réponse fréquentielle avec le changement de variable
ze efif /2
Voici un exemple :
)(
)()(
)(
2)2(2
22
/2
2
fXazzxazzax
zyeyfYyTFD
EaDaxy
n
nnn
nn
n
nnn
ffinnn
nn
e
Tz
nnn xyy 11 )(~)(~)(~ 11 zxzzyzzy
)(~
1
1
1)(~)(~
1
1
zhzz
z
zx
zy
Quelle est la fonction de transfert de ?
d'où la fonction de transfert en z :
)(~
)(~)(~
)(
)( 2 zhzx
zyaz
fX
fY
Un second exemple :
)(~9.0)(~1.0)(~ zyzxzyz 9.0
1.0
)(~)(~
zzx
zy
page page 77Cours S.S.I.I., 2009-10, séance 7 : Filtrer le signal audio numériqueCours S.S.I.I., 2009-10, séance 7 : Filtrer le signal audio numérique
Mise en œuvre avec Goldwave du filtre
Noter l'effet du filtre sur les tracés ci-dessus.
kHzfnTynTxTny eeee 2),(9.0)(1.0))1((
Pour mettre ce filtre en œuvre, il faudra saisir l'expression suivante dans Expression Evaluator
wave1(n-1)*0.9+0.1*wave2(n-1)
chronogramme
atténué
spectrogrammediminué à partir
de 200Hz
fréquence d'échantillonnage
2kHz
page page 88Cours S.S.I.I., 2009-10, séance 7 : Filtrer le signal audio numériqueCours S.S.I.I., 2009-10, séance 7 : Filtrer le signal audio numérique
Quelques fonctions Matlab pour créer, évaluer, et appliquer les filtres, tel que :
kHzfyxy ennn 8,9.01.0 11
On crée ce filtre avec la fonction tf de Matlab: ftz= tf(0.1,[1,–0.9],1/8000); ftz % donne 0.1/(z-0.9), Ts = 1/8000 s
On calcule sa réponse impulsionnelle :[hn,t]=impulse(ftz); % puis plot(t,hn) % pour le tracé, ou bienimpulse(ftz)
sa réponse indicielle (à une entrée échelon) : [ind,t]=step(ftz); % ou bien step(ftz) % pour tracer
sa réponse harmonique (ou fréquentielle): bode(ftz) % attention ! rad/s, pas Hz [m,p,w]=bode(ftz);% voir aussi la fonction freqz() % en Hz
on filtre le signal xn avec la fonction filter(): yn= filter(0.1,[1,-0.9],xn);
on calcule le spectrogramme de yn, par exemple : spectrogram(yn,1024,0,1024,fe,'yaxis');
nnn xyy 1.09.01 Créer avec Matlab le filtre ci-contre, à appliquer au signal tiré de SheepBaa.wav, puis tracer la réponse harmonique du filtre
[xn,fe] = wavread('SheepBaa.wav');ftz = tf(0.1,[1,0.9],1/fe);yn = filter(0.1,[1,0.9],xn); bode(ftz)
page page 99Cours S.S.I.I., 2009-10, séance 7 : Filtrer le signal audio numériqueCours S.S.I.I., 2009-10, séance 7 : Filtrer le signal audio numérique
On lit sur la réponse harmonique d'un filtre l'effet multiplicatif sur le spectre du signal Voici par exemple la réponse harmonique tracée
par MATLAB pour le filtre :
nnn yxy 9.01.01 msTe 5.0
Lire l’effet du filtre sur la fréquence 500 Hz :• donner le facteur d’atténuation ou gain :• donner le déphasage :
Lire le gain du filtre à fréquence nulle (ou gain statique) :À quelle fréquence le filtre divise t’il par 2 ?À quelle fréquence retarde t’il de 45° ?Quel est le gain minimum du filtre ?Relever la fréquence maximum du tracé :
page page 1010Cours S.S.I.I., 2009-10, séance 7 : Filtrer le signal audio numériqueCours S.S.I.I., 2009-10, séance 7 : Filtrer le signal audio numérique
Comparer les deux filtres dont Matlab a superposé les réponses ci-dessous :
Qu’est que ces deux filtres ont en commun ?
Qu’est ce qui les différencie ?
fe=2000;fc=200;a=exp(-2*pi*fc/fe),b=1-a;F1z=tf([b],[1,-a],1/fe);b=exp(-sqrt(2)*pi*fc/fe)% b=0.6413a=b*cos(sqrt(2)*pi*fc/fe)% a=0.5790F2z=tf([1-2*a+b^2,0],[1,-2*a,b^2],1/fe)bode(F1z,F2z)
page page 1111Cours S.S.I.I., 2009-10, séance 7 : Filtrer le signal audio numériqueCours S.S.I.I., 2009-10, séance 7 : Filtrer le signal audio numérique
Annexe : stabilité et gain statique d'un filtre
un filtre est stable au sens E.B.S.B si toute entrée bornée (finie en amplitude) donne une sortie bornée (E.B.S.B. signifie Entrée Bornée Sortie Bornée).
un filtre est stable au sens EBSB, si et seule-ment si tous les pôles de sa fonction de transfert sont de module inférieur à un.
• Stabilité et gain statique du filtre intégrateur ?
• Mêmes questions pour le filtre dérivateur ?
Le gain statique d'un filtre est le rapport sortie sur entrée en régime permanent.
On calcule le gain statique de deux manières:
Dans EaD, faire disparaître les indices n : xn+1 = xn =… = X, yn = yn-1 = …=Y Dans FTz, faire tendre la variable z vers 1 )(lim
)(
)(lim 11 zFT
zX
zY
X
YGS zz
Stabilité EBSB :
Gain statique :
page page 1212Cours S.S.I.I., 2009-10, séance 7 : Filtrer le signal audio numériqueCours S.S.I.I., 2009-10, séance 7 : Filtrer le signal audio numérique
Trouver les filtres récursifs passe bas d'ordre 1 et 2 selon le gain statique et la fréquence de coupure*
Pour le filtre F1(z) du premier ordre, on obtient la fréquence de coupure à -3dB notée fc et le gain sta-tique G en calculant les coefficients comme suit :
Pour le filtre F2(z) du second ordre, c'est :
* ces résultats non démontrés découlent de la relation entre la variable de Laplace p et la variable z
az
b
zE
zSzF
)(
)()(1
ec ffea /2)1( aGb
22
2
2 2
)21(
)(
)()(
bazz
bag
zE
zSzF
Gg
ffba
eb
ec
ff ec
),/2cos(
,/2
pTeez