// clear // // définition des constante Te=1e-3; w0=.01*2*%pi/Te; A=1; // // variable temps t=Te*(0:128); // // réponse impulsionnelle h=w0*exp(-w0*t); // // description du filtre par la transformée en z, numérateur puis dénominateur H1n=A*w0*poly([0 1],'z','c');H1d= poly([-exp(-w0*Te) 1],'z','c'); // // description d’un second filtre en ajustant le gain basse fréquence A=(1-exp(-Te*w0))/w0; // H2n=A*w0*poly([0 1],'z','c');H2d= poly([-exp(-w0*Te) 1],'z','c'); // // // // calcul de la réponse fréquentielle des deux filtres précédents f=(0:.001:.05); hdf1=freq(H1n,H1d,exp(2*%pi*%i*f)); hdf2=freq(H2n,H2d,exp(2*%pi*%i*f)); // // affichage xbasc(); xset("font size",4); xsetech([0,0,1,.3]);plot2d(t,h, style=-9);plot2d3(t,h);xtitle("réponse impulsionnelle"); xsetech([0,1/3,1,.3]);plot2d(f,hdf1);xtitle("réponse fréquentielle pour A=1"); xsetech([0,2/3,1,.3]);plot2d(f,hdf2);xtitle("réponse fréquentielle corrigée");