francois:traitement_numerique_du_signal_avec_scilab
Ceci est une ancienne révision du document !
introduction au traitement du signal avec scilab
Transformation bilinéaire
clear
//
// définition des constantes
Te=1e-3; Fcd=200;
//
// filtre analogique équivalent
Ga=analpf(6,'cheb1',[.1,0],2*%pi*Fcd);
//
// filtre analogique pour le calcul
teta=Fcd*(2*Te)*%pi;
Fcad=(2/Te*tan(teta/2))/(2*%pi);
Gad=analpf(6,'cheb1',[.1,0],2*%pi*Fcad);
//
// définition de la variable z
z=poly(0,'z');
//
// transformation bilinéaire
Gd=horner(Gad,2/Te*(z-1)/(z+1));
//
// calcul des points du filtre analogique équivalent
fa=(100:10:300);
Gain_a=freq(Ga(2),Ga(3),%i*2*%pi*fa);
//
// calcul des points du filtre numérique
fd=(.1:.01:.3);
Gain_d=freq(Gd(2),Gd(3),exp(%i*2*%pi*fd));
//
// affichage
xbasc(); xset("font size",4);
//
xsetech([0,0,1,.5]);plot2d(fa,20*log10(abs(Gain_a)), rect=[100, -60 300, 10]);
xtitle("réponse fréquentielle du filtre analogique équivalent","fréquence", "gain en dB");
//
xsetech([0,1/2,1,.5]);plot2d(fd,20*log10(abs(Gain_d)) ,rect=[0.1, -60 0.3, 10]);
xtitle("réponse fréquentielle du filtre numérique","f normalisée","gain en dB");
francois/traitement_numerique_du_signal_avec_scilab.1365283113.txt.gz · Dernière modification : (modification externe)
