Title: Comment cr
1Comment créer des filtres dordre 1 et 2
Séance 7, 1 heure, application de la séance sur
les filtres Version mardi 26 avril 2005
Auteur Jean-Paul Stromboni
Contenu de la séance
- On étudie ici des filtres récursifs dordre un et
dordre deux - on pose le problème du filtrage passe bas pour
lequel on suggère deux solutions non démontrées
1/ premier ordre et 2/ second ordre - on vérifie avec MATLAB et Goldwave la solution
du premier ordre - on vérifie de même pour la solution du second
ordre et on compare - on propose un filtre passe-haut du premier
ordre - on précise comment on peut réaliser un filtre
résonateur
Savez vous répondre aux questions suivantes ?
Calculer Si et Stabilité et gain statique de
Même question pour Quelle est la réponse indicielle du filtre dérivateur ?
Quest ce qui différencie F1(z) et F2(z) ? Relation entre et
Stabilité et gain statique de Le filtre intégrateur est il passe haut ou passe bas ?
2On peut spécifier un filtre en donnant la réponse
fréquentielle souhaitée.
- Pour atténuer le spectre dun signal audio
au-delà dune fréquence fc (fréquence de coupure
à 3 dB), la fréquence déchantillonnage étant fe
gt fc, le gain de la réponse indicielle doit
suivre un gabarit - Une première solution simple (à vérifier)
consiste à utiliser le filtre F1 du premier ordre
- Voici une autre solution F2 du second ordre
-
3Pour concevoir un filtre discret, on peut
utiliser les fonctions suivantes de Matlab
Par exemple
- Créer un filtre avec la fonction de transfert
ftztf(0.1,1,0.9,1/8000) ftztf(num,den,Te)
- calculer la réponse impulsionnelle de ftz
hn,timpulse(ftz) puis plot(t,hn) pour le
tracé, ou impulse(ftz) - la réponse indicielle à un échelon de Heaviside
ind,tstep(ftz) ou simplement step(ftz)
pour le tracé - la réponse harmonique bode(ftz) qui la
trace, ou m,p,wbode(ftz) - Matlab calcule le produit de convolution
ynconv(hn, xn) - ou applique le filtre à partir de lEaD
ynfilter(0.1,1,-0.9,xn)
définir avec Matlab le filtre suivant et tracer
sa réponse harmonique
4On évaluera un filtre récursif avec Matlab, puis
Goldwave peut le mettre en œuvre
Voici lexemple dun filtre passe bas de
fréquence de coupure fc200Hz réalisé avec
fe2000Hz. Le script Matlab suivant calcule la
solution 1
fe2000 aexp(-2pi200/fe) on trouve
a0.5335 b1-a Matlab trouve b 0.4665 F1z
tf(b,0,1,-a,1/fe) bode(F1z)
Mesurer le gain statique, vérifier fe, fc, et
dire comment on programme F1 avec Goldwave
5Avec Matlab, on compare les solutions du premier
et du second ordre. Conclusion ?
La solution F2(z) du problème précédent est le
filtre de Butterworth dordre 2. Le script
Matlab suivant compare F1z et F2z
fe2000fc200 aexp(-2pifc/fe),b1-a F1ztf(
b,1,-a,1/fe) bexp(-sqrt(2)pifc/fe)
b06413 abcos(sqrt(2)pifc/fe)
a0.5790 F2ztf(1-2ab2,0,1,-2a,b2,1/fe) b
ode(F1z,F2z)
Quest ce qui différencie les deux solutions ?
Comment programmer F2 avec Goldwave ?
6Inverser la fonction de transfert inverse la
réponse harmonique (gain et déphasage)
Ci-dessus la réponse harmonique du filtre
Calculer la fonction de transfert H(z) du
filtre, Quel est le type de ce nouveau filtre ?
Retrouver la fréquence à 3dB avec H(z)
7On sait calculer le filtre récursif F2(z) du
second ordre pour créer des résonances
Pour amplifier une zone de fréquence du spectre
dun signal, on calcule ainsi a et b du filtre
F2(z)
x est lamortissement réduit, f0 la fréquence
propre, la résonance est dautant plus haute et
sa fréquence voisine de f0 que xgt0 est proche de
zéro.
Pour Matlab trouve a0.7615, b0.9391.
Mesurer la hauteur et la fréquence de la
réso-nance, le gain statique, quobtient-on si
x0 ?
8On peut même programmer un filtre qui oscillera à
la fréquence f0, avec
fe2000 f0200 b1 acos(2pif0/fe) Ft8tf(1
-2ab2,0,1,-2a,b2,1/fe) bode(Ft8) grid
Vérifier la fréquence doscillation quelles
sont la fréquence et la hauteur de la résonance?
9Un produit de fonctions de transfert aboutit à la
somme des réponses fréquentielles
Comment peut-on réaliser ce filtre (dit notch
filter) ? Quelle est laction sur le spectre ?