1 / 10

Construire et utiliser un banc de filtres pour analyser le spectre d’un signal

Construire et utiliser un banc de filtres pour analyser le spectre d’un signal. Jean-Paul Stromboni, Polytech'Nice Sophia, S.I. 3 ème année séance 7, novembre 2012, durée : 50mn, vidéoprojecteur. Les objectifs de ce cours :. Définir le concept de banc de filtre et d’analyse du signal

clara
Download Presentation

Construire et utiliser un banc de filtres pour analyser le spectre d’un signal

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. Construire et utiliser un banc de filtres pour analyser le spectre d’un signal Jean-Paul Stromboni, Polytech'Nice Sophia, S.I. 3ème année séance 7, novembre 2012, durée : 50mn, vidéoprojecteur Les objectifs de ce cours : • Définir le concept de banc de filtre et d’analyse du signal • Expliquer la fonction et l’utilisation d’un banc de filtre • Calculer l’énergie associée à un signal • Construire itérativement un banc de filtres avec un seul filtre • Créer et utiliser un banc de filtres en Scilab: un exemple. • TD n°7 : création et utilisation d’un banc de filtres en Scilab Qu’appelle t’on banc de filtres et analyse ? • Banc de filtres :il s’agit d’un ensemble de M filtres de même taille R opérant à la même fréquence d’échantillonnage fe, et conçus pour analyser automatiquement la composition fréquentielle d’un signal audio présenté à l’entrée du banc de filtre. • Analyse du signal :consiste à découper le spectre du signal en M bandes de fréquences, ou encore à décomposer le signal analysé en M signaux différents à la sortie des filtres du banc. • Synthèse : c’est l’opération inverse de l’analyse, l’addition des signaux de sortie du filtre du banc permet de reconstituer le signal.

  2. Banc de filtre : définition, notation, exemple. Notation : on désigne un filtre de taille R par le vecteur de ses coefficients h=(hn, n=0..R-1) ou par H=(Hk, k=0..R-1), sa réponse fréquentielle, avec On a donc : H=fft(h,-1) Et aussi : h= fftshift(real(ifft(H))) Le banc de M filtres sera donc constitué de filtres désignés par hi ou Hi, i = 1 .. M avec Hi= fft(hi) Avec la contrainte qui définit un banc de filtre Exemple M=4 (H1, H2, H3, H4 entre –fe/2 et fe/2)

  3. Comment utiliser un banc de filtres On désigne parle vecteur x = (xn=x(nTe), n=0..N-1) le signal à analyser (N échantillons du signal) et par le vecteur X=fft (x(1:R)) le spectre de x calculé par TFD sur une fenêtre rectangulaire de taille R : Le signal x est filtré par les M filtres du banc, il en résul-te M signaux filtrés que l’on note x1, x2, x3, … xM avec D’où : X1+X2+ … +XM= (H1+H2+..HM)*X= X Et donc : x1+x2+ … +xM = x Exemple M=4: filtre1 filtre2 filtre3 filtre4

  4. R R/2 R/4 R/8 f 0 fe f f f f B2 B2 B3 B3 B4 Exercice : appliquer manuellement un banc de 4 filtres au signal x dont le spectre X est donné compléter Découper X en quatre bandes égales, B1, B2, B3 et B4 B1 B1

  5. Pour comparer les signaux x1, x2, … xM issus du banc de filtre, on peut leur associer une énergie Définition de l’énergie associée à un signal à partir des échantillons de ce signal : Calcul de l’énergie à partir du spectre (théorème de Parseval) : Appliquer à l’exemple de la page précédente : calculer l’énergie de x, x1, x2, x3 et x4 Quelle est l’erreur faite si on approxime x par x3 ? On perd 10% de l’énergie du signal x, mais on peut com-presser x3 avec un taux de compression C=4 comme suit:

  6. Comment créer un banc de M filtres itérativement à partir d’un filtre unique par décalage et addition : Soit le filtre de vecteur de coefficients h, et de réponse fréquentielle H, donc H=fft(h), length(h)= length(H)= R et Pour décaler de la réponse fréquentielle du filtre H, il suffit de multiplier le coefficient hn paroù k0 entier vaut Application : que vaut k0 ? Que vaut f0? Tracer le filtre h

  7. Exercice : créer les quatre filtres H1, H2, H3, et H4 engendrés de cette manière par H0 pour R=32 H0 f0= k0= fe= H1 f0=500Hz k0=2 H2 f0= k0= H3 f0=2500Hz k0= H4 f0= k0= Comment vérifier que ces quatre filtres constituent bien un banc ?

  8. Création d’un banc de filtres et analyse par le banc du signal audio tiré d’un fichier wave Lit le signal audio dans e et fe Crée filtre générateur h function [s, E, Esignal, fe]=bancfiltres(M, R, fichier, play) //fichier ‘bancfiltres.sce’ //utilisation [s,e,es,fe]=bancfiltres(8,128,'piano.wav',0); [e,fe]=wavread(fichier); N= R/(4*M); H=[ones(1,N-1),0.9,0.5,0.1,zeros(1,R-2*N-3),... 0.1,0.5,0.9,ones(1,N-2)]; h=fftshift(real(ifft(H))); n=0:R-1; for j=0:M-1 bande(j+1,:)=2*cos((2*j+1)*n*%pi/(2*M)).*h; end for j=0:M-1 sfiltre=convol(e,bande(j+1,:)); s(j+1,:)=sfiltre(1:length(e)); wavwrite(s(j+1,:),fe,['s'+string(j+1)+'.wav']); end Esignal= e*e'/2; E=diag(s*s')/2; disp(['sum(E):',string(sum(E))]) bar([0:M-1]*fe/(2*M),100*E/Esignal) xtitle(['Analyse de ',fichier],'frequence (Hz)'... ,'energie (% energie totale)') xgrid(); if play then sound(sum(s,1),fe); end endfunction Crée banc de M filtres De taille R partir du filtre h Filtre e dans sfiltre Ramène longueur sfiltre à celle de y et sauve dans des fichiers wave Calcule et affiche un diagramme barre des énergies en % de l’énergie de e Joue sum(s,1) si play!=0

  9. Analyse du script bancfiltres.sce : • Préciser les dimensions des matrices bande et s • Que trouve t’on dans bande(1,:) ? • Que trouve t’on dans s(1,:) ? • Comment calcule t’on Esignal ? • Que trouve t’on dans E(1) ? • Utilité de la ligne s(j+1,:)=sfiltre(1:length(e)); ? • Que contient le fichier s2.wav ? • Quel est le pourcentage de l’énergie du signal filtré selon les bandes de fréquence conservées ci-dessous ? matrice s matrice bande

  10. R R/2 R/4 R/8 f R R R R 0 fe R/2 R/2 R/2 R/2 R/4 R/4 R/4 R/4 R/8 R/8 R/8 R/8 f f f f fe fe fe fe Application : compression du signal x réduit à x3 dans un taux C=4 avec une perte de 10% d’énergie En perdant 10% de l’énergie du signal x, on obtient C=4

More Related