Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
1
Filtrer le signal audio numérique
Jean-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 Travaux dirigés : des filtres avec Goldwave et MATLAB Questions pour tester la compréhension du cours 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
Les notions de filtre, de filtre numérique, de filtre linéaire et invariant dans le temps
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]
3
est récursif , et linéaire invariant dans le temps
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 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
4
Filtrer un signal audio, c'est multiplier son spectre par la réponse harmonique du filtre
EaD Effet du filtre: H(f) est la réponse harmonique du filtre. hn est la réponse impulsionnelle du filtre Quel est l'effet du filtre H2(f) sur X2(f) ? G/2
5
Une méthode pour construire les filtres FIR à partir de la réponse harmonique désirée :
Impulsion : Réponse impulsionnelle : L'invariance dans le temps implique que : 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 : Produit de convolution : 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] 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] :
6
Il est équivalent d'utiliser la fonction de transfert en z d'un filtre ou son EaD :
On calcule la fonction de transfert en z d'un filtre à partir de la réponse fréquentielle avec le changement de variable Voici un exemple : d'où la fonction de transfert en z : Un second exemple : Quelle est la fonction de transfert de ?
7
Mise en œuvre avec Goldwave du filtre
Pour mettre ce filtre en œuvre, il faudra saisir l'expression suivante dans Expression Evaluator wave1(n-1)* *wave2(n-1) chronogramme atténué fréquence d'échantillonnage 2kHz spectrogramme diminué à partir de 200Hz Noter l'effet du filtre sur les tracés ci-dessus.
8
Quelques fonctions Matlab pour créer, évaluer, et appliquer les filtres, tel que :
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 bien impulse(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'); 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)
9
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 : 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é :
10
Comparer les deux filtres dont Matlab a superposé les réponses ci-dessous :
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.6413 a=b*cos(sqrt(2)*pi*fc/fe)% a=0.5790 F2z=tf([1-2*a+b^2,0],[1,-2*a,b^2],1/fe) bode(F1z,F2z) Qu’est que ces deux filtres ont en commun ? Qu’est ce qui les différencie ?
11
Annexe : stabilité et gain statique d'un filtre
Stabilité EBSB : 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. Gain statique : 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 Stabilité et gain statique du filtre intégrateur ? Mêmes questions pour le filtre dérivateur ?
12
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
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.