Cours:Elen4 TNS TP FxTransfertStabilité : Différence entre versions

De troyesGEII
Aller à : navigation, rechercher
 
(12 révisions intermédiaires par le même utilisateur non affichées)
Ligne 1 : Ligne 1 :
 
[[Cours:Elen4_TNS|{{Rouge|'''Retour à la page du cours'''}}]]
 
[[Cours:Elen4_TNS|{{Rouge|'''Retour à la page du cours'''}}]]
  
= TP2 : Fonction de transfert et Stabilité des filtres =
+
<center>
 +
'''<big>TP2 : Fonction de transfert et stabilité des filtres</big>'''
 +
</center>
 +
 
 +
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'''.
  
 
== Fonctions de transfert ==
 
== Fonctions de transfert ==
 
[[Media:TNS-TP2a.FxTransfert.pdf|Fonctions de transfert (texte en pdf) ]]
 
  
 
===== Exercice 1 =====
 
===== Exercice 1 =====
  
 
À l’aide de la fonction <code>impz()</code>, obtenir les premiers termes de la réponse impulsionnelle ''h(n)'' du SLIT causal dont la fonction de transfert est
 
À l’aide de la fonction <code>impz()</code>, obtenir les premiers termes de la réponse impulsionnelle ''h(n)'' du SLIT causal dont la fonction de transfert est
{{Eqn|H(z)|
+
{{FxT |H(z)|
 
1+2z<sup>-1</sup>+z<sup>-2</sup>
 
1+2z<sup>-1</sup>+z<sup>-2</sup>
 
|
 
|
Ligne 19 : Ligne 21 :
  
 
a) Calculer et afficher le module et le déphasage de la fonction transfert suivante :
 
a) Calculer et afficher le module et le déphasage de la fonction transfert suivante :
{{Eqn|H(z)|
+
{{FxT |H(z)|
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,0043z−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,0019<sup>z</sup>+0,7389}}
+
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>).
Ligne 30 : Ligne 32 :
  
 
Soit un filtre exprimé sous la forme de facteurs composé de polynômes du premier degré, dont la fonction de transfert est
 
Soit un filtre exprimé sous la forme de facteurs composé de polynômes du premier degré, dont la fonction de transfert est
{{Eqn|H(z)|
+
{{FxT |H(z)|
 
z+1
 
z+1
 
|
 
|
Ligne 38 : Ligne 40 :
  
 
b) Occasionnellement, il peut être intéressant de connaitre le temps de propagation de groupe τ(ω) défini par :
 
b) Occasionnellement, il peut être intéressant de connaitre le temps de propagation de groupe τ(ω) défini par :
{{Eqn|τ(ω)|
+
{{FxT |τ(ω)|
 
dφ | dω }}
 
dφ | dω }}
  
Ligne 48 : Ligne 50 :
  
 
Voici une collection de fonctions de transfert ''H<sub>i</sub>(z)'' du second ordre :
 
Voici une collection de fonctions de transfert ''H<sub>i</sub>(z)'' du second ordre :
{{Eqn|H<sub>i</sub>(z)|
+
{{FxT |H<sub>i</sub>(z)|
 
N<sub>i</sub>(z)
 
N<sub>i</sub>(z)
 
|
 
|
Ligne 66 : Ligne 68 :
 
e) N<sub>5</sub>(z) = (0,25z<sup>2</sup> + 0,5z + 1)
 
e) N<sub>5</sub>(z) = (0,25z<sup>2</sup> + 0,5z + 1)
  
Qualifier chacun de ces filtres.
+
Identifier chacun de ces filtres.
  
 
== Stabilité de filtres ==
 
== Stabilité de filtres ==
  
[[Media:TNS-TP2b.Stabilite.pdf|Stabilité de filtres (texte en pdf)]]
+
===== Exercice 1 =====
 +
 
 +
Soit le polynôme D(z) = z<sup>7</sup> + 0,5z<sup>6</sup> + 0,4z<sup>5</sup> + 2z<sup>4</sup> + 0,75z<sup>3</sup> + 0,8z<sup>2</sup> + 0,6z + 0,55
 +
 
 +
a) Saisir et exécuter le script suivant
 +
<source lang=matlab>
 +
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]);
 +
</source>
 +
 
 +
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 <code>zplane()</code> permet de placer les pôles et les zé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) :
 +
<center>
 +
D(z) = 2z<sup>4</sup> + 3z<sup>3</sup> + 4z<sup>2</sup> + z + 1
 +
</center>
 +
 
 +
===== Exercice 3 =====
 +
 
 +
Déterminer si le SLIT causal suivant est stable (cf. TD pour comparer) :
 +
{{FxT | H(z) |
 +
1
 +
|
 +
5z<sup>4</sup> + 3z<sup>3</sup> + 6z<sup>2</sup> + 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 :
 +
{{FxT | H<sub>a</sub>(z) |
 +
z+1
 +
|
 +
z<sup>2</sup> + 0,2z + 0,4}}
 +
{{FxT | H<sub>b</sub>(z) |
 +
1+0,4z+0,3z<sup>2</sup>
 +
|
 +
z<sup>2</sup> + 0,4z + 1}}
 +
{{FxT | H<sub>c</sub>(z) |
 +
z<sup>2</sup>(z+3)
 +
|
 +
z<sup>2</sup> + 0,8z + 0,5}}
 +
{{FxT | H<sub>d</sub>(z) |
 +
z<sup>-1</sup>+1
 +
|
 +
0,25z<sup>-2</sup> + 0,4z<sup>-1</sup> + 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
 +
<center>
 +
D(z) = 2z<sup>3</sup> + z<sup>2</sup> + c z + 1
 +
</center>
 +
Le script suivant met en place un ''slider'' permettant de régler les valeurs de ''c'' et d'afficher les pôles :
 +
<source lang=matlab>
 +
clear all
 +
D = [2 1 0 1];
 +
R = roots(D);
 +
zplane(R);
 +
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);
 +
</source>
 +
avec la fonction <code>sliderCallback()</code> appelée à chaque déplacement du ''slider'' :
 +
<source lang=matlab>
 +
function sliderCallback(h,e)
 +
  c = get(h,’Value’);
 +
  zplane(roots([2 1 c 1]));
 +
  legend([’c=’ num2str(c)])
 +
end
 +
</source>

Version actuelle datée du 20 mars 2024 à 16:36

Retour à la page du cours

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.

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 tableau W).

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 :

τ(ω) =


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 zé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
D = [2 1 0 1];
R = roots(D);
zplane(R);
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