francois:traitement_numerique_du_signal_avec_scilab
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| francois:traitement_numerique_du_signal_avec_scilab [2013/04/06 21:14] – francois | francois:traitement_numerique_du_signal_avec_scilab [2013/04/06 21:20] (Version actuelle) – francois | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| ====== introduction au traitement du signal avec scilab ====== | ====== introduction au traitement du signal avec scilab ====== | ||
| + | ====== Synthèse des filtres à réponse impulsionnelle infinie ====== | ||
| + | |||
| + | ===== Méthode de l’invariance impulsionnelle ===== | ||
| + | <file iir_invar.sce> | ||
| + | // | ||
| + | clear | ||
| + | // | ||
| + | // définition des constante | ||
| + | Te=1e-3; w0=.01*2*%pi/ | ||
| + | // | ||
| + | // variable temps | ||
| + | t=Te*(0: | ||
| + | // | ||
| + | // 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],' | ||
| + | // | ||
| + | // description d’un second filtre en ajustant le gain basse fréquence | ||
| + | A=(1-exp(-Te*w0))/ | ||
| + | // | ||
| + | H2n=A*w0*poly([0 1],' | ||
| + | // | ||
| + | // | ||
| + | // | ||
| + | // calcul de la réponse fréquentielle des deux filtres précédents | ||
| + | f=(0: | ||
| + | hdf1=freq(H1n, | ||
| + | hdf2=freq(H2n, | ||
| + | // | ||
| + | // affichage | ||
| + | xbasc(); xset(" | ||
| + | xsetech([0, | ||
| + | xsetech([0, | ||
| + | xsetech([0, | ||
| + | </ | ||
| + | |||
| + | ===== Transformation bilinéaire ===== | ||
| + | |||
| + | <file bilin.sce> | ||
| + | clear | ||
| + | // | ||
| + | // définition des constantes | ||
| + | Te=1e-3; Fcd=200; | ||
| + | // | ||
| + | // filtre analogique équivalent | ||
| + | Ga=analpf(6,' | ||
| + | // | ||
| + | // filtre analogique pour le calcul | ||
| + | teta=Fcd*(2*Te)*%pi; | ||
| + | Fcad=(2/ | ||
| + | Gad=analpf(6,' | ||
| + | // | ||
| + | // définition de la variable z | ||
| + | z=poly(0,' | ||
| + | // | ||
| + | // transformation bilinéaire | ||
| + | Gd=horner(Gad, | ||
| + | // | ||
| + | // calcul des points du filtre analogique équivalent | ||
| + | fa=(100: | ||
| + | Gain_a=freq(Ga(2), | ||
| + | // | ||
| + | // calcul des points du filtre numérique | ||
| + | fd=(.1: | ||
| + | Gain_d=freq(Gd(2), | ||
| + | // | ||
| + | // affichage | ||
| + | xbasc(); xset(" | ||
| + | // | ||
| + | xsetech([0, | ||
| + | xtitle(" | ||
| + | // | ||
| + | xsetech([0, | ||
| + | xtitle(" | ||
| + | </ | ||
francois/traitement_numerique_du_signal_avec_scilab.1365282860.txt.gz · Dernière modification : (modification externe)
