1 / 12

Filtrer le signal audio numérique

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

casta
Download Presentation

Filtrer le signal audio numérique

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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

  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 unfiltre 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 (outemps nTe) • ne dépend pas des amplitudes des yn et xn. • calculer y si x est appliqué à yn=yn-1 + xn-1et quey0=0 : • y = [0, 1, 2, 2, 2, 3, 3.5, 4.5]

  3. 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-ket 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. G/2 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) ?

  5. Une méthode pour construire les filtres FIR à partir de la réponse harmonique désirée : Impulsion : 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]: Réponse impulsionnelle : L'invariance dans le temps implique que : La linéarité et l'invariance dans le temps impliquent que la sortiedu 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]

  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 Evaluatorwave1(n-1)*0.9+0.1*wave2(n-1) chronogrammeatténué fréquence d'échantillonnage 2kHz spectrogrammediminué à 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 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'); 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 • un filtre est stable au sens E.B.S.Bsi 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é EBSB : 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

More Related