Cours:Elen4 TNS TP FxTransfertStabilité : Différence entre versions
(→Exercice 2) |
|||
Ligne 24 : | Ligne 24 : | ||
3z<sup>6</sup>−0,0047z<sup>5</sup>+1,1739z<sup>4</sup>+0,0005z<sup>3</sup>−1,7220z<sup>2</sup>+0,0043<sup>z</sup>−2,4518 | 3z<sup>6</sup>−0,0047z<sup>5</sup>+1,1739z<sup>4</sup>+0,0005z<sup>3</sup>−1,7220z<sup>2</sup>+0,0043<sup>z</sup>−2,4518 | ||
| | | | ||
− | z<sup>6</sup> −0,0024z<sup>5</sup> +1,4618z<sup>4</sup> −0,0042z<sup>3</sup> +1,3215z<sup>2</sup> −0, | + | z<sup>6</sup> −0,0024z<sup>5</sup> +1,4618z<sup>4</sup> −0,0042z<sup>3</sup> +1,3215z<sup>2</sup> −0,0019z+0,7389}} |
* Vous pourrez utiliser <code>freqz(B,A,W)</code> pour obtenir le tableau des valeurs de la réponse en fréquences directement à partir des coefficients du filtre (pour des pulsations définies dans le tableau <code>W</code>). | * Vous pourrez utiliser <code>freqz(B,A,W)</code> pour obtenir le tableau des valeurs de la réponse en fréquences directement à partir des coefficients du filtre (pour des pulsations définies dans le tableau <code>W</code>). |
Version du 10 mars 2023 à 10:17
TP2 : Fonction de transfert et stabilité des filtres
Cette séance est consacrée à l'affichage des réponses d'un filtre numérique et à l'étude de sa stabilité. Vous travaillerez avec matlab.
Sommaire
Fonctions de transfert
Exercice 1
À l’aide de la fonction impz()
, obtenir les premiers termes de la réponse impulsionnelle h(n) du SLIT causal dont la fonction de transfert est
H(z) = |
1+2z-1+z-2 |
| |
1+0,5z-1+0,25z-2 |
Lister les valeurs obtenues et les confronter à celles obtenues en TD. Tracer le graphe de h(n).
Exercice 2
a) Calculer et afficher le module et le déphasage de la fonction transfert suivante :
H(z) = |
3z6−0,0047z5+1,1739z4+0,0005z3−1,7220z2+0,0043z−2,4518 |
| |
z6 −0,0024z5 +1,4618z4 −0,0042z3 +1,3215z2 −0,0019z+0,7389 |
- Vous pourrez utiliser
freqz(B,A,W)
pour obtenir le tableau des valeurs de la réponse en fréquences directement à partir des coefficients du filtre (pour des pulsations définies dans le tableauW
).
b) Tracer le module en dB. Pour mémoire : |HdB| = 20log(|H|). Le log se codant par log10()
Exercice 3
Soit un filtre exprimé sous la forme de facteurs composé de polynômes du premier degré, dont la fonction de transfert est
H(z) = |
z+1 |
| |
(z + 0, 38)(z − 0, 46) |
a) Calculer et représenter graphiquement le module et le déphasage du filtre défini par cette fonction de transfert.
b) Occasionnellement, il peut être intéressant de connaitre le temps de propagation de groupe τ(ω) défini par :
τ(ω) = |
dφ |
| |
dω |
Le temps de propagation de groupe fait référence aux lignes de transmission, dans lesquelles les différentes fréquences d’un signal se propagent à des vitesses différentes, ce qui entraîne une dispersion dans le temps de l’énergie du signal.
De façon pratique et pour une période d’échantillonnage Ts, τ s’obtient par Ts*grpdelay(B,A,W)
. Calculer et tracer τ(ω) pour Ts = 0,0001.
Exercice 4
Voici une collection de fonctions de transfert Hi(z) du second ordre :
Hi(z) = |
Ni(z) |
| |
z2 + 0,5z + 0,25 |
Calculer et tracer le module de ces fonctions de transferts pour
a) N1(z) = (1+z)2
b) N2(z) = (1-z)2
c) N3(z) = (1-z2)
d) N4(z) = (z2 + 0,7z + 1)
e) N5(z) = (0,25z2 + 0,5z + 1)
Identifier chacun de ces filtres.
Stabilité de filtres
Exercice 1
Soit le polynôme D(z) = z7 + 0,5z6 + 0,4z5 + 2z4 + 0,75z3 + 0,8z2 + 0,6z + 0,55
a) Saisir et exécuter le script suivant
clear ;
D = [1 0.5 0.4 2 0.75 0.8 0.6 0.55];
R = roots(D);
RR = real(R);
IR = imag(R);
plot(RR,IR,’*’); axis equal;
hold on;
w = 0:0.01:pi;
plot(cos(2*w),sin(2*w));
hold off;
disp(’Module Angle en deg.’);
disp([abs(R) (angle(R))*180/pi]);
b) Indiquez les racines de D qui sont à l’intérieur du cercle unité et celles qui sont à l’extérieur.
c) De façon plus concise, la fonction zplane()
permet de placer les pôles et les séros par rapport au cercle unité. Utiliser cette fonction pour obtenir un graphe identique à la première question.
Exercice 2
Déterminer si les racines du polynôme suivant sont à l’intérieur du cercle unité ou non (cf. TD pour comparer) :
D(z) = 2z4 + 3z3 + 4z2 + z + 1
Exercice 3
Déterminer si le SLIT causal suivant est stable (cf. TD pour comparer) :
H(z) = |
1 |
| |
5z4 + 3z3 + 6z2 + z + 2 |
Tracer sa réponse impulsionnelle pour contrôler.
Exercice 4
Déterminer si les fonctions de transfert suivantes caractérisent un SLIT causal stable ou non :
Ha(z) = |
z+1 |
| |
z2 + 0,2z + 0,4 |
Hb(z) = |
1+0,4z+0,3z2 |
| |
z2 + 0,4z + 1 |
Hc(z) = |
z2(z+3) |
| |
z2 + 0,8z + 0,5 |
Hd(z) = |
z-1+1 |
| |
0,25z-2 + 0,4z-1 + 1 |
Tracer les réponses impulsionnelles pour contrôler.
Exercice 5
Lorsque des paramètres sont présents dans la fonction de transfert du système, il est possible de déterminer graphiquement les valeurs de ces paramètres qui entrainent un système stable. Par exemple pour un SLIT dont le dénominateur de la fonction de transfert est
D(z) = 2z3 + z2 + c z + 1
Le script suivant met en place un slider permettant de régler les valeurs de c et d'afficher les pôles :
clear all
R = roots(D);
zplane(R);
D = [2 1 0 1];
slmin=0; slmax=5;
hsl = uicontrol(’Style’,’slider’,...
’Min’,slmin,’Max’,slmax ,...
’SliderStep’,[1 1]./50,...
’Position’,[20 20 200 20]);
set(hsl,’Callback’, @sliderCallback);
avec la fonction sliderCallback()
appelée à chaque déplacement du slider :
function sliderCallback(h,e)
c = get(h,’Value’);
zplane(roots([2 1 c 1]));
legend([’c=’ num2str(c)])
end