Comment tailler les filtres sur mesure - PowerPoint PPT Presentation

1 / 9
About This Presentation
Title:

Comment tailler les filtres sur mesure

Description:

Title: Comment on filtre un signal audio Created Date: 3/15/2004 4:03:21 PM Document presentation format: Affichage l' cran Company: ESSI Other titles – PowerPoint PPT presentation

Number of Views:29
Avg rating:3.0/5.0
Slides: 10
Provided by: usersPoly4
Category:

less

Transcript and Presenter's Notes

Title: Comment tailler les filtres sur mesure


1
Comment tailler les filtres sur mesure
Séance 8, nouvelle application des filtres, 1
heure Version samedi 10 avril 2004 Auteur
Jean-Paul Stromboni
Contenu de la séance
  • on montre comment on peut déterminer un filtre
    FIR à partir de la réponse impulsionnelle
    souhaitée
  • on crée un filtre passe-bas de réponse harmonique
    imposée
  • on crée un filtre passe-bande en décalant le
    filtre passe bas
  • On montre comment appliquer un tel filtre avec
    Matlab et lévaluer avec Goldwave
  • On utilise cette technique pour définir un banc
    de 4 filtres

Savez vous répondre aux questions suivantes ?
Comment calculer N pour définir un filtre passe-bas fc 2200Hz si fe44100Hz et R128 Si h est la réponse impulsion-nelle du filtre ci-contre, que dire du filtre de réponse g
Un filtre a pour réponse impulsionnelle pour et 0 sinon. Donner son EaD et sa fonction de transfert en z ? Que réalisent les instructions suivantes ? fr 0R-1fe/R specabs(fft(h)) plot(fr,spec)
passe dans un banc de M2 filtres, quels sont les signaux des canaux si ? Représenter le découpage en fréquence réalisé par un banc de 3 filtres sachant que
2
Pour découper avec précision le spectre dun
signal, il faut créer le filtre adéquat
  • Quand lobjectif est de découper précisément le
    spectre dun signal audio, par exemple dans un
    banc de filtres, on utilise un filtre linéaire et
    stationnaire, soit dans le domaine fréquentiel
  • est la transformée de Fourier du
    signal audio à modifier, soit
  • est celle du signal filtré
  • est la réponse
    harmonique du filtre, cest aussi la transformée
    de Fourier de la réponse impulsionnelle
  • Découper le spectre dun signal revient donc à
    créer un filtre de réponse harmonique adéquate
  • Or, les filtres récursifs dordre un et deux
    permettent au mieux de fixer 2 ou 3 paramètres,
    mais par la forme de la réponse harmonique dans
    son entier
  • On leur préfère donc les filtres non récursifs et
    la technique étudiée ci-dessous

3
On sait synthétiser un filtre à partir dune
réponse impulsionnelle de durée finie
  • Soit la réponse
    impulsionnelle à synthétiser, de durée
    finie et de longueur R.
  • Écrivons la relation dentrée sortie du filtre
    sous la forme dun produit de convolution
  • Pour un filtre dont la réponse impulsionnelle est
  • , on en déduit
  • La longueur du filtre est R4
  • La durée de la réponse impulsionnelle est
  • lEaD
  • Et la fonction de transfert

Appliquer à
4
Imposer la réponse harmonique dun filtre, cest
imposer sa réponse impulsionnelle.
Soit la réponse harmonique imposée définie à
partir de R points de fréquence. Cest la
transformée de Fourier rapide de la réponse
impulsionnelle recherchée où ifft est la fft
inverse. Même si Hk est réelle, hn peut être
dotée dune partie imaginaire pure, ce qui est à
exclure pour une équation aux différences à
coefficients réels Pour assurer hn réelle, on
démontre en utilisant la définition de ifft quil
faut imposer Hk paire
Concevoir Hk pour un filtre passe bas de longueur
16 avec fc1000Hz et fe8000Hz
5
Matlab peut calculer les coefficients du filtre
si on spécifie la réponse harmonique
définir et tracer RH R32 fe8000 fc1000 N
fix(fcR/fe) n0R-1 fr nfe/R-fe/2 Hones
(1,N1), ... zeros(1,R-2N-1),...
ones(1,N) stem(fr,fftshift(H))
calcul et tracé de hn hfftshift(real(ifft(H)))
stem((n-R/2)/fe,h)
calcul et tracé de RH specabs(fft(h,R)) stem(f
r,fftshift(spec)) xlabel('frequence
(Hz)') ylabel('Réponse harmonique') grid on
Décrire le filtre réalisé
6
Le filtre précedent nest pas rectangulaire !
Ici, Matlab calcule plus de points (courbe rouge)
sur la réponse harmonique du filtre précédent
hold on fr20R2-1fe/R2-fe/2 spec2
abs(fft(h,5R)) plot(fr2,fftshift(spec2),'r')
Voici ce qui advient si on arrondit la forme de
la réponse harmonique
Hones(1,N-1),0.9,0.5,0.1,zeros(1,R-2N-3),
0.1,0.5,0.9,ones(1,N-2)
Conclure
7
Pour obtenir des filtres passe-bande, on décale
le filtre passe bas précédent
La relation ci-dessus, tirée de la définition de
ifft, détermine à partir de hn la réponse
impulsionnelle dun filtre passe bande. On
vérifie avec Matlab
Quel est le type de ce filtre, son gain statique,
quel est le filtre passe bas que lon a décalé ?
8
Appliqué à un signal audio, un tel filtre en
découpe le spectre avec précision
  • lecture du son à filtrer
  • e,fe,bwavread ('piano.wav')
  • définition du filtre
  • R256 longueur du filtre
  • fc500 bande passante
  • f01500 fréquence centrale
  • N fix(fcR/fe)
  • Hones(1,N-1),0.9,0.5,0.1,...
  • zeros(1,R-2N-3),0.1,0.5,...
  • 0.9,ones(1,N-2)
  • réponse impulsionnelle
  • hfftshift(real(ifft(H)))
  • filtre 2cos(2pi0R-1f0/fe).h
  • filtrage du signal audio
  • yfilter( filtre,1,e)
  • wavwrite(y,fe,b,'pianofiltre.wav')
  • calcul de lénergie du signal
  • E(yy)/2

Ce script Matlab applique un filtre passe bande
dont la forme est donnée par H au son piano.wav
Voici les spectrogrammes de piano.wav suivi de
pianofiltre.wav calculés et tracés par Goldwave
9
Énumerer les particularités du groupe de quatre
filtres créés ci-dessous par Matlab
comment créer un banc de quatre filtres avec
Matlab e,fe,bwavread ('BBC.wav') R 128 M
4 N R/(4M) n0R-1 Hones(1,N-1),0.9,0.5,0.
1, zeros(1,R-2N-3),0.1,0.5,0.9,
ones(1,N-2) hfftshift(real(ifft(H))) for
j0M-1 réponses impulsionnelles des filtres
bande(j1,)2cos((2j1)npi/(2M)).h end
frnfe/R-fe/2 coul'r','b','g','k','y','m','c'
,'rp' hold on for j0M-1 calcul et tracé des
réponses harmoniques stem(fr,abs(fftshift(f
ft(bande(j1,)))),coul(j1)) end xlabel('fréquenc
e (Hz)') ylabel('Réponse harmonique') grid on
Write a Comment
User Comments (0)
About PowerShow.com