Académique Documents
Professionnel Documents
Culture Documents
Synthèse de Filtres Numériques RII
Synthèse de Filtres Numériques RII
Synthèse de filtres
numériques RII
Le 14/02/2022
I. But :
Ce TP est consacré à la réalisation des filtres à réponse impulsionnelle
infinie.
Dans ce qui suit nous allons utiliser le gabarit d’un filtre analogique,
lui-même construit d’un gabarit d’un filtre numérique.
Il est nommé ainsi parce que dans la majorité des cas la réponse
impulsionnelle de ce type de filtre est de durée théoriquement infinie.
Il est aussi désigné par l'appellation de filtre récursif. Ce filtre est l'un
des deux types de filtre numérique linéaire. L'autre type possible est
le filtre à réponse impulsionnelle finie (filtre RIF). Contrairement au
filtre RII la réponse du filtre RIF ne dépend que des valeurs du signal
d'entrée. Par conséquent, la réponse impulsionnelle d'un filtre RIF est
toujours de durée finie.
Cette catégorie de filtre est caractérisée par le fait que leur fonction de
transfert en z contient des pôles et leur équation aux différences
récursive ; autrement dit le sortie y(n) dépend à la fois des entrées et
des sorties précédentes :
Au gabarit analogique
Approximation de H(p)
Transformation p=f(z)
1. Filtre Butterworth :
2.Filtre elliptique :
Ce sont des filtres dont la réponse est caractérisée par une ondulation
tant en bande passante qu'en bande atténuée. Qu’ils soient optimaux
en ce sens qu'aucun filtre, à ordre donné, ne présente une coupure plus
raide que les filtres elliptiques.
3.Filtres de Tchebyshev :
[bz,az]=impinvar(a,b,fe)
4.traçage du gabarit :
[h,f]=freqz(bz,az,512,fe);
gab1=[d1*ones(fs,1);d2*ones((fe/2-fs),1)];
gab2=[-d1*ones(fp,1);-120*ones((fe/2),1)];
amp=abs(h);
figure(1);
hold on
plot(f,20*log10(amp)),grid
title('diagramme de bode en amplitude et phase
');
ylabel('amplitude en db');
plot(gab1)
plot(gab2)
hold off
te=1/fe;
fpa=(1/(pi*te)*(tan(pi*fp*te)));
fsa=(1/(pi*te)*(tan(pi*fs*te)));
wp=2*pi*fpa;
ws=2*pi*fsa;
[n,wn]=buttord(wp,ws,d1,d2,'s');
[a,b]=butter(2,wn,'s');
[bd,ad]=bilinear(a,b,fe)
[h,f]=freqz(bd,ad,512,fe);
gab1=[d1*ones(fs,1);d2*ones((fe/2-fs),1)];
gab2=[-d1*ones(fp,1);-120*ones((fe/2),1)];
amp=abs(h);
figure(1);
hold on
plot(f,20*log10(amp)),grid
title('diagramme de bode en amplitude et phase
');
ylabel('amplitude en db');
plot(gab1)
plot(gab2)
hold off
pole= roots(ad)
zero=roots(bd)
figure (2)
zplane (zero,pole)
figure(3)
impz(bd,ad);
figure(4)
impz(a,b);
❖ Butterworth :
fs2=12000;
fp=[fp1 fp2]/(fe/2);
fs=[fs1 fs2]/(fe/2);
[n1,fn1]=buttord(fp,fs,d1,d2)
❖ Tchebychev type 1 :
[n1,fn1]=cheb1ord(fp,fs,d1,d2)
❖ Tchebychev type 2 :
[n1,fn1]=cheb2ord(fp,fs,d1,d2)
❖ Elliptique :
[n2,fn2]=ellipord(fp,fs,d1,d2)
[b1,a1]=butter(n1,fn1)
[b2,a2]=cheby1(n2,d1,fn2)
[b3,a3]=cheby2(n3,d2,fn3)
[b4,a4]=ellip(n4,d1,d1,fn4)
fe=40000;
te=1/fe;
d1=1;
d2=35;
fs1=5000;
fp1=6000;
fp2=10000;
fs2=12000;
fp=[fp1 fp2]/(fe/2);
fs=[fs1 fs2]/(fe/2);
[n,fn]=buttord(fp,fs,d1,d2)
[n1,fn1]=cheb1ord(fp,fs,d1,d2);
[n2,fn2]=cheb2ord(fp,fs,d1,d2);
[n3,fn3]=ellipord(fp,fs,d1,d2);
[b1,a1]=cheby1(n1,d1,fn1);
[b2,a2]=cheby2(n2,d1,fn2);
[b3,a3]=ellip(n3,d1,d2,fn3);
[b4,a4]=butter(n,fn);
figure(1)
subplot(2,2,1)
impz(b1,a1,100,fe)
subplot(2,2,1)
impz(b1,a1,100,fe)
subplot(2,2,2)
impz(b2,a2,100,fe)
subplot(2,2,3)
impz(b3,a3,100,fe)
subplot(2,2,4)
impz(b4,a4,100,fe)
[b3,a3]=ellip(n3,d1,d2,fn3);
[b4,a4]=butter(n,fn);
figure(1)
subplot(2,2,1)
impz(b1,a1,100,fe)
subplot(2,2,1)
impz(b1,a1,100,fe)
subplot(2,2,2)
impz(b2,a2,100,fe)
subplot(2,2,3)
impz(b3,a3,100,fe)
subplot(2,2,4)
impz(b4,a4,100,fe)
figure(2)
subplot(2,2,1)
zplane(b1,a1)
subplot(2,2,2)
zplane(b2,a2)
subplot(2,2,3)
zplane(b3,a3)
subplot(2,2,4)
zplane(b4,a4)
4/On trace après sur le même système d’axes les quatre réponses
fréquentielles avec le gabarit :
clear all; close all;clc;
fe=40000;
te=1/fe;
d1=1;
d2=35;
fs1=5000;
fp1=6000;
fp2=10000;
fs2=12000;
fp=[fp1 fp2]/(fe/2);
fs=[fs1 fs2]/(fe/2);
[n,fn]=buttord(fp,fs,d1,d2)
[n1,fn1]=cheb1ord(fp,fs,d1,d2);
[n2,fn2]=cheb2ord(fp,fs,d1,d2);
[n3,fn3]=ellipord(fp,fs,d1,d2);
[b1,a1]=cheby1(n1,d1,fn1);
[b2,a2]=cheby2(n2,d1,fn2);
[b3,a3]=ellip(n3,d1,d2,fn3);
[b4,a4]=butter(n,fn);
[H1 f1]=freqz(b1,a1,512,fe)
amp1=abs(H1);
phase1=angle(H1);
[H2 f2]=freqz(b2,a2,512,fe)
amp2=abs(H2);
phase2=angle(H2);
[H3 f3]=freqz(b3,a3,512,fe)
amp3=abs(H3);
phase3=angle(H3);
[H4 f4]=freqz(b4,a4,512,fe)
amp4=abs(H4);
phase4=angle(H4);
T1=0 :0.1 :fs;
gab1=[400*ones(1,6000) d1*ones(1,10000-6000)
400*ones(1, (fe/2)-10000 ) ];
gab2=[d2*ones(1,5000) zeros*ones(1,12000-5000)
d2*ones(1,(fe/2)-12000) ];
figure(9)
hold on
plot(f1,-20*log10(amp1),'r'),grid
plot(f2,-20*log10(amp2),'v'),grid
plot(f3,-20*log10(amp3),'b'),grid
plot(f4,-20*log10(amp4),'g'),grid
title('diagramme de bode' )
ylabel('amplitude en dB')
plot(gab1)
plot(gab2)
legend('buttord','cheby1','cheby2','ellipord')
hold off
figure(10)
subplot(2,2,1)
grpdelay(b1,da1,512,fe)
title('butter')
subplot(2,2,2)
grpdelay(b2,a2,512,fe)
title('cheb1')
subplot(2,2,3)
grpdelay(b3,a3,512,fe)
title('cheb2')
subplot(2,2,4)
grpdelay(b4,a4,512,fe)
title('elli')
[H1 f1]=freqz(b1,a1,512,fe)
amp1=abs(H1);
phase1=angle(H1);
[H2 f2]=freqz(b2,a2,512,fe)
amp2=abs(H2);
phase2=angle(H2);
[H3 f3]=freqz(b3,a3,512,fe)
amp3=abs(H3);
phase3=angle(H3);
[H4 f4]=freqz(b4,a4,512,fe)
amp4=abs(H4);
phase4=angle(H4);
T1=0 :0.1 :fs;
gab1=[400*ones(1,6000) d1*ones(1,10000-6000)
400*ones(1, (fe/2)-10000 ) ];
gab2=[d2*ones(1,5000) zeros*ones(1,12000-5000)
d2*ones(1,(fe/2)-12000) ];
figure(9)
hold on
plot(f1,-20*log10(amp1),'r'),grid
plot(f2,-20*log10(amp2),'v'),grid
plot(f3,-20*log10(amp3),'b'),grid
plot(f4,-20*log10(amp4),'g'),grid
title('diagramme de bode' )
ylabel('amplitude en dB')
plot(gab1)
plot(gab2)
legend('buttord','cheby1','cheby2','ellipord')
hold off
figure(10)
subplot(2,2,1)
grpdelay(b1,a1,512,fe)
title('butter')
subplot(2,2,2)
grpdelay(b2,a2,512,fe)
title('cheb1')
subplot(2,2,3)
grpdelay(b3,a3,512,fe)
title('cheb2')
subplot(2,2,4)
grpdelay(b4,a4,512,fe)
title('elli')
6/ donne les différentes différences entre les quatre types des filtres
étudiés précédemment :
Le filtre elliptique est le plus simple coté facilité de conception
Le filtre de butterworth possède la pente la plus raide par contre il est
le plus complexe coté facilité de conception et son ordre est toujours
très élevé en le comparant avec les autres
Pour les filtres de Tchebychev ils possèdent le même ordre sauf que le
type 1 s’annule avant le type 2
IV. Conclusion :
Lors de ce TP nous avons étudié le comportement des filtre RII en
utilisant différents approximations (Butterworth, Tchebychev1,
Tchebychev 2 et elliptique).
Nous avons pu aussi voir l’effet de ces approximations sur les
performances des filtres :
facilité de conception, linéarité de phase, régularité temps de
propagation, raideur de pente, ...