Vous êtes sur la page 1sur 31

Chapitre 4: La transformée en Z

Dans le chapitre3, nous avons étudié la transformée de Fourier en temps discret pour
représenter les signaux discrets en utilisant les séquences exponentielles complexes. Cette
représentation est clairement avantageux pour les systèmes LTI parce qu’il décrit ces
systèmes dans le domaine fréquentielle en utilisant la réponse fréquentielle de la fonction
H (e j ) . Le calcul de la réponse sinusoïdal en régime permanent est très facilitée par
l’utilisation of H (e j ) . Par ailleurs, la réponse à une séquence arbitraire absolument
sommable x(n) peut facilement être calculée dans le domaine fréquentiel en multipliant la
transformée X (e j ) et la réponse fréquentielle H (e j ) . Cependant, nous avons 2 lacunes avec
l’approche de la transformée de Fourier. Premièrement, il y a beaucoup de signaux utilisable
en pratique tels que u(n) et nu(n) pour lequel la transformée discrète de Fourier n’existe pas.
Deuxièmement, la réponse transitoire du système due aux conditions initiales ou aux
changements de points ne peut pas être calculée en utilisant la transformée de Fourier
temporelle et discrète. Cependant, nous considérons maintenant une extension de la
transformée de Fourier en temps discret pour résoudre ces deux problèmes. L’extension est
appelée la transformée en z. Sa version bilatérale (ou à deux cotés) fournit un autre domaine
dans lequel une large classe de séquences et de systèmes peuvent être analysés, et sa version
unilatéral (ou un côté) peut être utilisée pour obtenir les réponses du système avec les
conditions initiales ou les changements de points.

4.1. LA TRANSFORMEE BILATERALE EN Z

La transformée en z d’une séquence x(n) est donnée par :



X ( z) Z  x ( n)    x ( n) z n
(4.1)
n 

Où z est une variable complexe. L’ensemble des valeurs de z pour lesquelles X(z) existe est
appelée la région de convergence (ROC) et est donnée par

Rx  z  Rx (4.2)

Pour plusieurs nombres non négatifs Rx- et Rx+. La transformée inverse de Fourier est
donnée par

1
Z  X ( z)  2 j  X ( z) z
1 n 1
x ( n) dz (4.3)
C

où C est un contour dans le sens inverse des aiguilles d'une montre entourant l'origine et se
trouvant dans le ROC.

Commentaires
1. La variable complexe z est appelée la fréquence complexe donnée par z  z e j , où z est
le module et ω est la fréquence réelle
2. Puisque la ROC (4.2) est définie en termes du modèle z , la forme du ROC est un anneau
ouvert, comme le montre la Figure4.1. Notons que Rx- doit être égal à zéro et/ou Rx+
pouvait être ∞.
3. Si Rx+ <Rx−, alors la ROC est un espace nulle et le transformée en z n’existe pas.
4. La fonction |z| =1(ou z  e j ) est un cercle de rayon unitaire dans le plan z et est appelé le
cercle unitaire. Si la ROC contient le cercle unitaire, alors nous pouvons évaluer X(z) surle
cercle unitaire.

X ( z ) |z e j  X (e j )   n x(n)e j  F  x(n)


Cependant, la transformée de Fourier en temps discret doit être vu comme un cas spécial de
la transformée X(z) en z.

Figure4.1 : Région générale de convergence

Figure4.2 : La ROC dans l’exemple 4.1


EXAMPLE 4.1

Soit x(n)  a nu(n) , 0 < |a| < ∞. (Cette séquence est appelée la séquence temporelle positive)

 n
a 1 a
X1 ( z)   0 a z   
 n n
 1
; if 1
0 2 1  az z

z
 , z  a  ROC1: a  z  
za Rz 
Rz 

Notons que X1(z) dans l’exemple est une fonction rationnelle, qui est
B( z ) z
X 1( z ) 
A( z ) z  a

où B(z)= z est le polynôme du numérateur et A(z)= z-a est le polynôme du dénominateur. Les
racines de B(z) sont appelées les zéros de X(z), tandis que les racines de A(z) sont appelées
les pôles de X(z). Dans cet exemple, X1(z) a un zéro à l'origine z = 0 et un pôle à z = a. Par
conséquent, x1(n) peut également être représenté par un diagramme pôle-zéro dans le plan z
dans lequel les zéros sont indiqués par 0 et les pôles par comme indiqué à la Figure 4.2

EXAMPLE 4.2 Soit x2(n)  b u(n  1),0 . (Cette séquence s'appelle une
n
b
séquence de temps négatif.) Alors

1 n  n  n
1
b z z
X 2 ( z )   b  n z  n          1    
   z  1 b 0 b

1 z
 1  , ROC 2 : 0  z  b
1 z z b Rz 
b RZ 

Le ROC2 et le tracé pôle-zéro de x2(n) sont illustrés à la figure 4.3.

Figure4.3 : La ROC dans l’exemple 4.2


Note : Si b = a dans cet exemple, alors X 2  z   X1  z  sauf pour leurs ROC respectifs ;
c'est-à-dire, ROC1 = ROC2. Cela implique que le ROC est une caractéristique distinctive qui
garantit l'unicité de la transformée en z. Il joue donc un rôle très important dans l'analyse des
systèmes.

EXAMPLE 4.3 Soit x3  n   x1  n   x2  n   a nu  n   bnu  n  1 (Cette séquence s'appelle


une séquence à deux cotés) Puis en utilisant les deux exemples précédents,
 1
X 3 ( z)   a n z n   bn z n
n 0 

 z   z 
 , ROC1 : z  a    , ROC1 : z  b 
z a  z b 
z z
  ; ROC3 : ROC1  ROC2
z a z b
Si b  a , alors ROC3 est un espace nul, et X3(z) n'existe pas. Si a  b alors le ROC3 est
a  z  b et X3(z) existe dans cette région comme indiqué dans la Figure 4.4.

4.1.1 PROPRIETES DE LA ROC


A partir de l'observation des ROCs dans les trois exemples précédents, nous indiquons les
propriétés suivantes.

1. Le ROC est toujours délimité par un cercle puisque la condition de convergence est sur la
grandeur |z|.
2. La séquence x1 (n)  a nu(n) de l'exemple 4.1 est un cas particulier d'une séquence du côté
droit, défini comme une séquence x  n  qui est nulle pour un certain n  n0 . Dans
l'exemple 4.1, le ROC pour les séquences du côté droit est toujours en dehors d'un cercle
de rayon Rx-. Si n0  0 , alors la séquence du côté droit est aussi appelée une séquence
causale.
3. La séquence x2  n    bnu  n  1 dans l'exemple 4.2 est un cas particulier d'une
séquence du côté gauche, défini comme une séquence x  n  qui est nulle pour
certains n  n0 . Si n0  0 , la séquence résultante est appelée une séquence anti-
causale. A partir de l'exemple 4.2, le ROC pour les séquences du côté gauche est
toujours à l'intérieur d'un cercle de rayon Rx+.

Figure4.4 : La ROC dans l’exemple 4.3

4. La séquence x3  n  de l'exemple 4.3 est une séquence à deux côtés. Le ROC pour les
séquences des deux côtés est toujours un anneau ouvert Rx  z  Rx , s'il existe.
5. Les séquences qui sont nulles pour n<n1 et n>n2 sont appelées séquences de durée finie.
Le ROC pour de telles séquences est le plan Z entier. Si n1 < 0, alors z = ∞ n'est pas dans
le ROC. Si n2 > 0, alors z = 0 n'est pas dans le ROC.
6. Le ROC ne peut pas inclure un pôle puisque X(z) converge uniformément à l'intérieur de
celui-ci.
7. Il y a au moins un pôle à la limite d'un ROC d'un rationnel X(z).
8. La ROC est une région contiguë, c'est-à-dire qu'elle ne vient pas en morceaux.
Dans le traitement numérique du signal, les signaux sont supposés être causaux puisque
presque toutes les données numériques sont acquises en temps réel. Par conséquent, le seul
ROC qui nous intéresse est celui qui figure dans l'énoncé 2.

4.2. PROPRIETES IMPORTANTES DE LA TRANSFORMEE EN Z

Les propriétés de la transformée z sont des généralisations des propriétés de la transformée de


Fourier en temps discret que nous avons étudiées au chapitre 3. Nous déclarons les propriétés
importantes suivantes de la transformation z sans preuve.

1. Linéarité:
  a1 x1 (n)  a2 x2 (n)  a1 X1 ( z )  a2 X 2 ( z ); ROC : ROCx1  ROCx2 (4.4)
2. Décalage de l’échantillon:
z  x(n  n0 )  z  n0 X ( z ); ROC : ROCx (4.5)
3. Déplacement de la fréquence:
z
z  a n x(n)   X ( ); ROC : ROCx est mise à l’échelle a (4.6)
a
4. Pliage:
1
z  x(n)  X ( ); ROC :Inversé ROC x (4.7)
z
5. Complexe conjugué:
z  x *(n)  X *( z*); ROC : ROCx (4.8)
6. Différentiation dans le domaine z
dX ( z )
Z  nx(n)   z ; ROC : ROCx
dz (4.9)
Cette propriété est aussi appelée la propriété multiplication par une rampe.
7. Multiplication:
1
Z  x1 (n) x2 (n)   X1 ( )X 2 ( z /  )v 1d : ROC; ROCx1  Inverted ROCx2 (4.10)
2 j C

où C est un contour fermé qui renferme l'origine et se trouve dans le ROC commun.

15- Convolution:

Z  x1 (n)  x2 (n)  X1 ( z ) X 2 ( z ); ROC : ROCx1  ROCx2 ……..(4.11)

Cette dernière propriété transforme l'opération de convolution temps-domaine en une


multiplication entre deux fonctions. Il s'agit d'une propriété signifiante à bien des égards.
Premièrement, si X1  z  et X 2  z  sont deux polynômes, alors leur produit peut être
implémenté en utilisant la fonction conv dans MATLAB.

EXAMPLE 4.4 Soit X1 ( z)  2  3z 1  4 z 2 et X 2 ( z )  3  4 z 1  5z 2  6 z 3 . Déterminons


X 3 ( z )  X 2 ( z ) X1 ( z )
Solution A partir de la définition de la transformée en z, nous observons que

x1 (n)  2,3, 4 and x2 (n)  3, 4,5,6

Ensuite, la convolution de ces deux séquences donnera les coefficients du produit polynomial
requis.

MATLAB script:

>> x1 = [2,3,4]; x2 = [3,4,5,6]; x3 = conv(x1,x2)


x3 = 6 17 34 43 38 24
d’où

X 3 ( z)  z  2  3z1  34 z 2  43z 3  38z 4  24 z 5

En utilisant la fonction conv.m développée au chapitre 2, nous pouvons également multiplier


deux polynômes du domaine z correspondant à des séquences non causales.

EXAMPLE 4.5 Soit X1 ( z )  z  2  3z 1 et X 2 ( z)  2 z 2  4 z  3  5z 1 . Déterminons


X 3 ( z )  X 2 ( z ) X1 ( z )

Solution

Notons que

x1 (n)  1, 2,3 et x2 (n)  2, 4,3,5

En utilisant le script MATLAB,

>> x1 = [1,2,3]; n1 = [-1:1]; x2 = [2,4,3,5]; n2 = [-2:1];


>> [x3,n3] = conv_m(x1,n1,x2,n2)
x3 =
2 8 17 23 19 15
n3 =
-3 -2 -1 0 1 2
Nous avons X 3 ( z )  2 z 3  8z 2  17 z  23  19 z 1  15z 2

En passant, nous notons que pour diviser un polynôme par un autre, nous aurions besoin
d'une opération inverse appelée déconvolution. Dans MATLAB, p, r   deconv  b,a 
calcule le résultat de la division de b par a dans une partie polynomiale p et un reste r. Par
exemple, si nous divisons le polynôme X3(z) de l'exemple 4.4 par X1(z), comme suit,

>> x3 = [6,17,34,43,38,24]; x1 = [2,3,4]; [x2,r] = deconv(x3,x1)


x2 =
3456
r=
000000
On obtient alors les coefficients du polynôme X 2  z  comme prévu. Pour obtenir l'indice
d'échantillon, il faudra modifier la fonction deconv comme nous l'avons fait dans la fonction
conv_m. Cette question est abordée dans le problème P4.10. Cette opération est utile pour
obtenir une pièce rationnelle correcte à partir d'une fonction rationnelle incorrecte. La
deuxième utilisation importante de la propriété de la convolution est dans les calculs de sortie
du système comme nous le verrons dans une section ultérieure. Cette interprétation est
particulièrement utile pour vérifier l'expression de la transformée en z de X(z) d'une séquence
occasionnelle à l'aide de MATLAB. Notez que MATLAB étant un processeur numérique
(sauf si la boîte à outils Symbolique est utilisée). Il ne peut pas être utilisé pour les calculs de
transformation z symbolique. Nous allons maintenant développer ce point. Soit x(n) une
séquence avec une transformation rationnelle.

B( Z )
X (Z ) 
A( Z )

où B(z) et A(z) sont des polynômes dans z-1. Si nous utilisons le coefficients de B(z) et A(z)
comme tableaux b et ab dans la routine de filtrage et excitons ce filtre par la séquence
d'impulsions δ(n), alors de (4.11) et utilisant Z[δ(n)] =1, la sortie du filter sera x(n). (Il s'agit
d'une approche numérique du calcul de la transformée inverse en z; nous discuterons de
l'approche analytique dans la prochaine section.) Nous pouvons comparer cette sortie avec le
x(n) donné pour vérifier que X(z) est bien la transformation de x(n). Ceci est illustré dans
l'exemple 4.6. Une approche équivalente consiste à utiliser la fonction impz discutée au
chapitre 2.

4.2.1. Quelques transformées en z usuelles


En utilisant la définition de la transformée en z et ses propriétés, on peut déterminer des
transformées en z de séquences communes. Une liste de certaines de ces séquences figure au
Tableau 4.1.

Tableau1 : Quelques transformées en z usuelles


EXAMPLE 4.6 En utilisant les propriétés de la transformée en z et la table de la transformée
en z, déterminer la transformée en z de

 
x(n)  (n  2)(0.5) n2 cos  (n  2)  u(n  2)
3 

Solution En appliquant la propriété de décalage de l'échantillon

 n 
X ( z )  Z  x(n)  z 2 Z n(0.5)n cos( )u (n) 
 3 

avec aucun changement dans le ROC. En appliquant la multiplication par une propriété de
rampe,

   
 d  (0.5) cos( 3 n)u (n)  
n

X ( z )  z 2  z  

 dz 
 

Avec ausun chanchement dans le ROC. Maintenant la transformée en z de



(0.5)n cos( n)u(n) à partir de la Table4.1
3

1  (0.5cos ) z 1
   3
Z (0.5) cos( n)u (n)  
n
1 2
; z 0.5
 3  1  0.5 z  0.25 z
1  0.25 z1
 ; z 0.5
1  0.5 z 1  0.25 z 2

d’où

1d  1  0.25 z 1 
X ( z)   z  1 2 
, z 0.5
dz 1  0.5 z  0.25 z 
 0.25 z 2  0.5 z 3  0.0625 z 4 
  z 1  1 2 3 4 
, z 0.5
1  z  0.75 z  0.25 z  0.0625 z 
0.25 z 2  0.5 z 3  0.0625 z 4
 , z 0.5
1  z 1  0.75 z 2  0.25 z 3  0.0625 z 4

MATLAB verification : Pour vérifier que ce X(z) est bien l'expression correcte, calculons les
8 échantillons de la séquence x(n) correspondant à X(z), comme discuté précédemment.

Cette approche peut être utilisée pour vérifier les calculs de la transformée en z.

4.3. INVERSION DE LA TRANSFORMEE EN Z

A partir de l'équation (4.3), le calcul inverse de la transformée en z nécessite une évaluation


d'une intégrale de contour complexe qui, en général, est une procédure compliquée.
L'approche la plus pratique est d'utiliser la méthode d'expansion par fraction partielle. Il
utilise la Table4.1 de la transformée en z (ou des tables similaires disponibles dans de
nombreux manuels scolaires). La transformée en z doit cependant être une fonction
rationnelle. Cette exigence est généralement satisfaite dans le traitement numérique du signal.

Idée centrale
 Lorsque X(z) est une fonction rationnelle de z-1, il peut être exprimé comme une
somme de facteurs simples en utilisant l'expansion de la fraction partielle. Les
séquences individuelles correspondant à ces facteurs peuvent ensuite être notées à
l'aide de la table de la transformée en z.

La procédure inverse de transformée en z peut être résumée comme suit :

Méthode

 Étant donné
b0  b1 z 1  ...  bM z  M B( z )
X ( z)   (4.2)
1  a1 z 1  ...  aN z  N A( z )
 Exprimons ça comme
b0  b1 z 1  ...  bM z  M M N
X ( z)  X ( z) 
1  a1 z 1  ...  aN z  N
 C z
k 0
k
k

Pr operrationalpart polynomialpartifM  N

 où le premier terme sur le côté droit est la partie rationnelle appropriée, et le deuxième
terme est la partie polynomiale (longueur finie). Ceci peut être obtenu en effectuant la
division polynomiale si M ≥ N en utilisant la fonction deconv.
 Perform a partial fraction expansion on the proper rational part of X(z) to obtain
N M N
Rk
X ( z)   1
  Ck z  k (4.13)
k 1 1  pk z k 0
M N

où pk est le kième pôle de X(z) et Rk est le résidu à pk. On suppose que les pôles sont
distincts pour lesquels les résidus sont donnés par
b0  b1 z 1  ...  bM z  M 1
R k  1  a1z 1  ...  aN z  N (1  pk z ) |z  pk
 Pour les pôles répétés, l'expansion (4.13) a une forme plus générale. Si un pôle pk a
une multiplicité r, alors son expansion est donnée par
r Rk ,l z  (l 1)
Rk Rk 1 z 1 Rk  r 1 z  ( r 1)
  
1  pk z 1 1  p z 1 2
 ...  (4.14)
1  p z 1 
1 l
l 1 (1  pk z )
r
k k

où les résidus Rk,l sont calculés en utilisant une formule plus générale, qui est
disponible dans la référence[23].
 en supposant des pôles distincts comme en (4.13), écrire x(n) comme
N
 1  M N
 x(n)   Rk Z 1  1 
  Ck  (n  k )
k 1 1  pk z  k 0
M N

 • finalement, utilisons la relation du tableau 4.1.


 z   zk  Rx 
n
1  Pk u (n)
 z   n (4.15)
 z  pk  
 Pk u (n  1) zk  Rx 
Pour compléter x(n).
Une procédure est utilisée pour les pôles répétées.

z
EXAMPLE 4.7 Cherchons la transformée inverse en z de x( z ) 
3z  4 z  1
2

1 1
z
z 3
X ( z)  
4 1 4 1
3( z 2  z  ) 1  z 1  z 2
3 3 3 3
Solution: Ecrivons
1 1 1 1
z
 3  2 1  2
(1  z 1 )(1  z 1 ) 1  z
1 1
1  z 1
3 3

ou

 
1 1  1 1 
X ( z)     
2  1  z 1  2  1  1 z 1 
 3 

Maintenant, X(z) a deux pôles : z1 =1 et z2 = 1/3 ; et puisque la ROC n'est pas spécifiée, il y
a trois ROC possibles comme le montre la figure 4.5.

Figure4.5 : La ROC dans l’exemple 4.7

a- ROC1: 1  z   . Ici, les deux pôles se trouvent à l'intérieur du ROC1, c'est-à-dire


z1  Rx-=1 et z1  1 . Ainsi, à partir de (4.15)

n
1 11
x1 (n)  u (n)    u (n)
2 23

qui est la séquence du côté du côté droit

1
b- ROC2: 0  z  . Ici, les deux pôles se trouvent sur le côté extérieur du ROC2, c'est-à-
3
1 1
dire | z1  Rx+= et z2  . Ainsi, à partir de (4.15)
3 3
 n

    u (n  1) 
 1
1
x2 (n)  u (  n  1)  
2  3
 

n
11 1
   u (n  1)  u (n  1)
23 2

qui est la séquence du côté gauche

1
c- ROC3:  z  1 . Ici, le pôle z1 est sur le côté extérieur du ROC3, c'est-à-dire z1  Rx+=1
3
1
tandis que le pôle z2 est sur le côté intérieur, c'est-à-dire | z1  . Ainsi, à partir de (4.15)
3
n
1 11
x3 (n)   u (n  1)    u (n)
2 23

qui est la séquence des deux côtés

4.3.1. Implémentation sur Matlab


Une fonction MATLAB résiduez est disponible pour calculer la partie résiduelle et les termes
directs (ou polynomiaux) d'une fonction rationnelle dans z-1. Considérons

b0  b1 z 1  ...  bM z  M B( z )
X ( z)  
1  a1 z 1  ...  aN z  N A( z )

N M N
Rk
X ( z)   1
  Ck z  k
k 1 1  pk z k 0
M N

Soit une fonction rationnelle dans laquelle les polynômes du numérateur et du dénominateur
sont en puissances ascendantes de z-1. Puis [R,p,C]=residuez(b,a) calcule les résidus, les pôles
et les termes directs de X(z) dans lesquels deux polynômes B(z) et A(z) sont donnés dans
deux vecteurs b et a, respectivement. Le vecteur colonne R retourné contient les résidus, le
vecteur colonne p contient les emplacements des pôles et le vecteur de ligne C contient les
termes directs. Si p(k)=...=p(k+r-1) est un pôle de multiplicité r, alors l'expansion inclut le
terme de la forme

Rk Rk 1 Rk  r 1
  ...  (4.16)
1  p z  1  p z 1 
1
1  pk z 1 2 r
k k

Qui est une forme différénte (4.14).

De même,[b,a]= residuez (R,p,C), avec trois arguments d'entrée et deux arguments de sortie,
convertit l'expansion de fraction partielle en polynômes avec coefficients en vecteurs de ligne
b et a.

EXAMPLE 4.8 Pour vérifier nos calculs de résidus, considérons la fonction rationnelle
z
x( z ) 
3z  4 z  1
2

Donné dans l’Exemple 4.7.

Solution Premièrement, réorganisons X(z) de sorte qu'il s'agisse d'une fonction dont les
puissances sont ascendantes de z-1

z 1 0  z 1
X ( z)  
3  4 z 1  z 2 3  4 z 1  z 2

Mainteant, utilisons Matlab transcipt

>> b = [0,1]; a = [3,-4,1]; [R,p,C] = residuez(b,a)


R=
0.5000
-0.5000
p=
1.0000
0.3333
c=
[]

Nous obtenons

1 1
X ( z )  2 1  2
1 z 1
1  z 1
3

comme avant. De même, pour revenir à la forme de fonction rationnelle,

>> [b,a] = residuez(R,p,C)


b=
-0.0000 0.3333
a=
1.0000 -1.3333 0.3333
Pour que

1
0  z 1
3 z 1 z
. x( z )   
4 1 1 2 3  4 z 1  z 2 3z 2  4 z  1
1 z  z
3 3

comme avant

EXAMPLE 4.9 Calculons la transformée inverse en z de

1
X ( z)  , z  0.9
(1  0.9 z ) (1  0.9 z 1 )
1 2
Solution Nous évaluerons le polynôme du dénominateur ainsi que les résidus à l'aide du
MATLAB script:

b = 1; a = poly([0.9,0.9,-0.9])
a=
1.0000 -0.9000 -0.8100 0.7290
>> [R,p,C]=residuez(b,a)
R=
0.2500 + 0.0000i
0.5000 - 0.0000i
0.2500 + 0.0000i
p=
0.9000 + 0.0000i
0.9000 - 0.0000i
-0.9000 + 0.0000i
C=
[]
Notons que le polynôme du dénominateur est calculé à l'aide de la fonction polynomiale poly
de MATLAB, qui calcule le polynôme coefficient, étant donné ses racines. Nous aurions pu
utiliser la fonction conv, mais l'utilisation de la fonction poly est plus pratique à cette fin. A
partir des calculs de résidus et en utilisant l'ordre des résidus donné en (4.16), nous avons
0.25 0.5 0.25
X ( z)    , z  0.9
 
1 1
1  0.9 z 1  0.9 z 1 2
1  0.9 z


0.25

0.5
z
 0.9 z 1   0.25 , z  0.9
1  0.9 z 1 0.9 1  0.9 z 1 2 1  0.9 z 1

Ainsi, d'après le tableau 4.1 et en utilisant la propriété de la transformée en z du décalage


temporel

5
x(n)  0.25  0.9  u (n)   n  1 0.9  u(n  1)  0.25  0.9  u(n)
n n 1 n

qui, sur simplification, devient

x(n)  0.75  0.9  u(n)  0.5n  0.9  u(n)  0.25  0.9  u(n)
n n n

Vérification sur Matlab

>> [delta,n] = impseq(0,0,7); x = filter(b,a,delta) % check sequence


x=
Columns 1 through 4
1.00000000000000 0.90000000000000 1.62000000000000 1.45800000000000
Columns 5 through 8
1.96830000000000 1.77147000000000 2.12576400000000 1.91318760000000
>> x = (0.75)*(0.9).^n + (0.5)*n.*(0.9).^n + (0.25)*(-0.9).^n % answer sequence
x=
Columns 1 through 4
1.00000000000000 0.90000000000000 1.62000000000000 1.45800000000000
Columns 5 through 8
1.96830000000000 1.77147000000000 2.12576400000000 1.91318760000000

EXAMPLE 4.10 Déterminons la transformé inverse en z de

1  0.4 2 z 1
X ( z) 
1  0.8 2 z 1  0.64 z 2

de sorte que la séquence résultante soit causale et ne contienne pas de nombres complexes.

Solution Nous aurons à trouver les pôles de X(z) sous la forme polaire pour déterminer la
ROC de la séquence causale

MATLAB script:
>> b = [1,0.4*sqrt(2)]; a=[1,-0.8*sqrt(2),0.64];
>> [R,p,C] = residuez(b,a)
R=
0.5000 - 1.0000i
0.5000 + 1.0000i
p=
0.5657 + 0.5657i
0.5657 - 0.5657i
C=
[]
>> Mp=(abs(p))’ % pole magnitudes
Mp =
0.8000 0.8000
>> Ap=(angle(p))’/pi % pole angles in pi units
Ap =
0.2500 -0.2500
A partir de ces calculs

0.5  j 0.5  j
X ( z)  
 
, z 0.8
j j
1 1
1  0.8e 4
z 1  0.8e 4
z

et d'après le tableau 4.1, nous avons


 
j n j n
x(n)  (0.5  j )0.8n e 4
u (n)  (0.5  j )0.8n e 4
u ( n)
   j 4 n  j 4 n    j 4 n  j 4 n 
 0.5 0.5 e e   j e e   u ( n)
    
 n    n 
 0.8n cos    2sin    u ( n)
  4   4 

MATLAB vérification:
>> [delta, n] = impseq(0,0,6);
x = filter(b,a,delta) % check sequence
x=
Columns 1 through 4
1.00000000000000 1.69705627484771 1.28000000000000 0.36203867196751
Columns 5 through 8
-0.40960000000000 -0.69511425017762 -0.52428800000000 -0.14829104003789
>> x = ((0.8).^n).*(cos(pi*n/4)+2*sin(pi*n/4))
x=
Columns 1 through 4
1.00000000000000 1.69705627484771 1.28000000000000 0.36203867196751
Columns 5 through 8
-0.40960000000000 -0.69511425017762 -0.52428800000000 -0.14829104003789

4.4 Représentation de système dans le domaine z

Comme pour la fonction de réponse en fréquence H  e j  , nous pouvons définir la fonction


du domaine z , H  z  , appelée fonction système. Cependant, contrairement à H  e j  , H  z 
existe pour les systèmes qui peuvent ne pas être stables en BIBO.

Définition 1 [La fonction système]

La fonction système H(z) est donnée par



H ( z) Z  x ( n)    h( n) z n
; Rh  z  Rh (4.17)
n 

En utilisant la propriété de convolution (4.11) de la transformation z, la transformée de sortie


Y  z  est donnée par :

Y ( z)  H ( z) X ( z) : ROCy= ROCh  ROCx (4.18)

à condition que ROCx chevauche ROCh . Par conséquent, un système linéaire et invariant
dans le temps peut être représenté dans le domaine z par

4.4.1 Fonction système à partir de la représentation de l'équation de différence

Lorsque les systèmes LTI sont décrits par une équation différence
N M
y(n)   ak y (n  k )   bl x(n  l ) (4.19)
k 1 l 0

la fonction système H(z) peut être facilement calculée. Prendre la transformation z des deux
côtés, et utiliser les propriétés de la transformation z,
N M
Y ( z )   ak z  k Y ( z )   bl z l X ( z )
k 1 l 0

or
M

Y ( z) b z l
l
B( z )
H ( z)  l 0
N

1   ak z  k
X ( z) A( z )
k 1 (4.20)
 b 
b0 z  M  z M   M 
  b0 
N
z ( z   aN )
N

Après factorisation, on obtient


N

N M
 (z  z ) l
H ( z )  b0 z l 1
N
(4.21)
 (z  p )
k 1
k

where zls are the system zeros and pk’s are the system poles. Thus H(z) (and hence an LTI
system) can also be represented in the z-domain using a pole-zero plot. This fact is useful in
designing simple filters by proper placement of poles and zeros.

To determine zeros and poles of a rational H(z), we can use the MATLAB function roots on
both the numerator and the denominator polynomials. (Its inverse function poly determines
polynomial coefficients from its roots, as discussed in the previous section.) It is also possible
to use MATLAB to plot these roots for a visual display of a pole-zero plot. The function z
plane (b,a) plots poles and zeros, given the numerator row vector b and the denominator row
vector a. As before, the symbol o represents a zero and the symbol x represents a pole. The
plot includes the unit circle for reference. Similarly, z plane (z,p) plots the zeros in column
vector z and the poles in column vector p. Note very carefully the form of the input
arguments for the proper use of this function.

où zls sont les zéros du système et pk 's sont les pôles du système. Ainsi, H  z  (et donc un
système LTI) peut également être représenté dans le domaine z à l'aide d'une courbe pôle-
zéro. Ce fait est utile dans la conception filtres simples par le placement approprié des pôles
et des zéros.

Pour déterminer les zéros et les pôles d'un H  z  rationnel, nous pouvons utiliser les racines
de fonction MATLAB sur les polynômes numérateur et dénominateur. (Sa fonction inverse
poly détermine le polynôme coefficients à partir de ses racines, comme discuté dans la section
précédente.) Il est également possible d'utiliser MATLAB pour tracer ces racines pour une
représentation visuelle d'un tracé pôle-zéro. La fonction zplane (b,a) trace les pôles et les
zéros, étant donné le vecteur de ligne de numérateur b et le vecteur de ligne de dénominateur
a. Comme précédemment, le symbole o représente un zéro et le symbole x représente un pôle.
Le tracé comprend le cercle unitaire à titre de référence. De même, zplane (z,p) trace les zéros
dans le vecteur colonne z et les pôles dans le vecteur colonne p. Notez très soigneusement la
forme des arguments d'entrée pour l'utilisation correcte de cette fonction.

4.4.2 Représentation de la fonction de transfert

Si le ROC de H(z) comprend un cercle unitaire ( z  e j ), nous pouvons évaluer H(z) sur le
cercle unitaire, ce qui donne une fonction de réponse en fréquence ou de transfert H( e j ).
Puis à partir de (4.21)
M

j j ( N  M )
 (e   z )
j
l
H (e )  b0e N
1
(4.22)
 (e
1
j
 pk )

Le facteur (e j - zl ) peut être interprété comme un vecteur dans le plan z complexe de zéro
zl vers le cercle unitaire à z  e j , tandis que le facteur ( e j  pk ) peut être interprété comme
un vecteur du pôle pk vers le cercle unitaire à z  e j .

C'est ce que montre la figure 4.6. D'où la fonction de réponse d'amplitude

j
e j  zl ... e j  zM
H (e )  b0 (4.23)
e j  pl ... e j  pN

peut être interprété comme un produit de la longueur des vecteurs de zéros au cercle unitaire
divisé par la longueur des vecteurs des pôles au cercle unitaire et mis à l'échelle par b0 . De
même, la fonction de la réponse en phase.
M N
H (e j )   0 or    ( N - M )    (e j - zk ) -  (e j - zk ) (4.24)
1 1
Cons tan t Linear
Nonlinear

peut être interprétée comme la somme d'un facteur constant, d'un facteur de phase linéaire et
d'un facteur de phase non linéaire (angles des "vecteurs zéro" moins la somme des angles des
"vecteurs pôles").

4.4.3 Implémentation Matlab

Dans le chapitre 3, nous avons tracé les réponses de magnitude et de phase dans MATLAB
en implémentant directement leurs formes fonctionnelles. MATLAB fournit également
FIGURE 4.6 Vecteurs pôle et zéro

une fonction appelée freqz pour ce calcul, qui utilise l'interprétation précédente. Dans sa
forme la plus simple, cette fonction est appelée par :
[H,w] = freqz(b,a,N)

qui renvoie le vecteur de fréquence w à N points et le vecteur de réponse en fréquence


complexe H à N points du système, compte tenu de ses coefficients numérateur et
dénominateur dans les vecteurs b et a. La réponse en fréquence est évaluée à N points
également espacés autour de la moitié supérieure du cercle unitaire. Notez que les vecteurs b
et a sont les mêmes vecteurs que ceux que nous utilisons dans la fonction filtre ou dérivés de
la représentation par équation de différence (4.19).

La seconde forme
[H,w] = freqz(b,a,N,’whole’)

utilise N points autour du cercle entier pour le calcul. Sous une autre forme
H = freqz(b,a,w)

it returns the frequency response at frequencies designated in vector w, normally between 0


and π.It should be noted that the freq z function can also be used for numerical computation
of the DTFT of a finite-duration, causal sequence x(n). In this approach, b=x and a=1.

elle retourne la réponse en fréquence aux fréquences désignées dans le vecteur w,


normalement entre 0 et π. Il est à noter que la fonction freqz peut également être utilisée pour
le calcul numérique du DTFT d'une séquence causale x  n  de durée finie. Dans cette
approche, b=x et a=1.

Exemple 4.11 Etant donné un système causal

y(n)  0.9 y(n 1)  x(n)

a. Déterminer H(z) et esquisser sa courbe pôle-zéro.

b. Tracer |H(ejω)| et  H(ejω).

c. Déterminer la réponse impulsionnelle h(n).


Solution

L'équation de différence peut se mettre sous la forme suivante

y(n)  0.9 y(n 1)  x(n)

a. De (4.21)

1
H ( z)  ; z  
1  0.9 z 1

puisque le système est causal. Il y a un pôle à 0,9 et un zéro à l'origine.

Nous utiliserons MATLAB pour illustrer l'utilisation de la fonction du plan z.


>> b = [1, 0]; a = [1, -0.9]; zplane(b,a)

FIGURE 4.7: Diagramme pôle-zéro de l'exemple 4.11a

Notez que nous avons choisi b=[1,0] au lieu de b=1 car la fonction du plan z suppose que les
scalaires sont des zéros ou des pôles. La figure 4.7 illustre la courbe pôle-zéro qui en résulte.

b. En utilisant (4.23) et (4.24), nous pouvons déterminer l'amplitude et la phase de


H  e j  . Une fois de plus, nous allons utiliser MATLAB pour illustrer l'utilisation de
la fonction freqz. En utilisant sa première forme, nous prendrons 100 points le long de
la moitié supérieure du cercle unitaire.

MATLAB Script:

>> [H,w] = freqz(b,a,100); magH = abs(H); phaH = angle(H);


>> subplot(2,1,1);plot(w/pi,magH);grid
>> xlabel(’frequency in pi units’); ylabel(’Magnitude’);
>> title(’Magnitude Response’)
>> subplot(2,1,2);plot(w/pi,phaH/pi);grid
>> xlabel(’frequency in pi units’); ylabel(’Phase in pi units’);
>> title(’Phase Response’)

Les courbes de réponse sont illustrées à la figure 4.8. Si vous étudiez attentivement ces tracés,
vous constaterez qu'ils sont calculés entre 0 ≤ ω ≤ ≤ 0.99π et ne sont pas disponibles sur ω =
π. Ceci est dû au fait que dans MATLAB la moitié inférieure du cercle de l'unité commence à
ω = π.Pour surmonter ce problème, nous utiliserons la deuxième forme de la fonction freqz
comme suit.

FIGURE 4.8 Diagrammes de réponse en fréquence dans l'exemple 4.11

>> [H,w] = freqz(b,a,200,’whole’);


>> magH = abs(H(1:101)); phaH = angle(H(1:101));

Maintenant le 101ème élément du tableau H correspondra à ω = π. Un résultat similaire peut


être obtenu en utilisant la troisième forme de la fonction freqz.

>> w = [0:1:100]*pi/100; H = freqz(b,a,w);


>> magH = abs(H); phaH = angle(H);

À l'avenir, nous utiliserons l'un ou l'autre de ces formulaires, selon notre convenance. Notez
également que dans les graphiques, nous avons divisé les tableaux w et phaH par pi pour que
les axes des graphiques soient dans les unités de π et plus faciles à lire. Cette pratique est
fortement recommandée.

c. D'après la transformation z du tableau 4.1


 1 
H ( z )  Z1  , z  0.9   0.9  u (n)
n
1
1  0.9 z 

Exemple 4.12 Étant donné que

z 1
H  z 
z  0.9 z  0.81
2

est un système causal, trouver

a. sa représentation de la fonction de transfert,

b. sa représentation par équation de différence, et

c. sa représentation de la réponse impulsionnelle.

4.4.4 Les relations entre les représentations du système

Dans ce chapitre et les deux chapitres précédents, nous avons développé plusieurs
représentations du système. La figure 4.9 illustre les relations entre ces représentations
sous forme graphique.

FIGURE 4.9 Représentations du système sous forme d'images

4.4.5 Stabilité et Causalité



Pour les systèmes LTI, la stabilité BIBO est équivalente à  h(k )   . De l'existence de la


transformée de Fourier en temps discret, cette stabilité implique que H (e j ) existe, ce qui
implique en outre que le cercle unitaire |z| =1 doit être dans le ROC de H(z). Ce résultat est
appelé le théorème de stabilité du domaine z ; par conséquent, les trajectoires en pointillés de
la figure 4.9 n'existent que si le système est stable.

THEORÈME 2 Stabilité d'un LTI dans le domaine z


Un système LTI est stable si et seulement si le cercle unitaire est dans le ROC de
H(z).

Pour la causalité des LTI, nous exigeons que h  n   0 , pour n  0 (c.-à-d. une
séquence du côté droit). Cela implique que le ROC de H(z) doit se trouver à l'extérieur
d'un cercle de rayon Rh  . Ce n'est pas une condition suffisante puisque toute séquence
du côté droit a un ROC similaire. Cependant, lorsque le système est stable, sa causalité
est facile à vérifier.
Théorème 3 Stabilité des LTI causaux dans le domaine-Z
Un système LTI causal est stable si et seulement si la fonction système H(z) a tous ses
pôles à l'intérieur du cercle unitaire.
EXEMPLE 4.13 Un système de LTI causal est décrit par l'équation de
différence suivante :

y(n)  0.81y(n  2)  x(n)  x(n  2)

Determine

a. la fonction du système H(z),

b. la réponse impulsionnelle unitaire h(n),

c. la réponse à l’échelon unité v  n  , c'est-à-dire la réponse à l'échelon u(n), et


d. la fonction de réponse en fréquence H(ejω), et tracer son amplitude et sa phase sur
0  .

Solution
Comme le système est causal, le ROC se trouve à l'extérieur d'un cercle dont le rayon
est égal à la plus grande amplitude du pôle.
a. En prenant la transformée en z des deux côtés de l'équation de différence et en
résolvant ensuite Y(z)/X(z) ou en utilisant (4.20), nous obtenons
1  z 2 1  z 2
H ( z)   , z  0.9
1  0.81z 2 1  0.9 z 1 1  0.9 z 1 

b. En utilisant le script MATLAB pour la décomposition en fractions partielles,


>> b = [1,0,-1]; a = [1,0,-0.81]; [R,p,C] = residuez(b,a);
R=
-0.1173
-0.1173
p=
-0.9000
0.9000
C=
1.2346
Nous avons
1 1
H ( z )  1.2346  0.1173 1
 0.1173 , z  0.9
1  0.9 z 1  0.9 z 1
ou à partir du tableau 4.1

h(n)  1.2346 (n)  0.1173{1  (1)n }(0.9)n u(n)

c. à partir du tableau 4.1

1
Z u  n    U  z   , z   , par conséquent
1  z 1

V( z )  H ( z )U ( z )
 1  z 1 1  z 1    1 
  , z  0.9 z 1
 1  0.9 z 1  0.9 z   1  z 
1 1 1 

1  z 1
 , z  0.9
1  0.9 z 1 1  0.9 z 1 
Ou

1 1
V ( z )  1.0556 1
 0.0556 , z  0.9
1  0.9 z 1  0.9 z 1

Finalement,

v(n)  [1.0556(0.9)n  0.0556 (0.9) n ]u(n)

Note that in the calculation of V (z) there is a pole-zero cancellation at z = 1. This has
two implications. First, the ROC of V (z) is still {|z| > 0.9} and not{|z| > 0.9 ∩ |z| > 1
= |z| > 1}.Second, the step response v(n) contains no steady-state term u(n).

Notez que dans le calcul de V(z) il y a une annulation de pôle-zéro à z =1. Cela a deux
implications. Premièrement, le ROC de V (z) est toujours  z  0,9 et non pas

 z  0,9  z  1  z  1} . Deuxièmement, la réponse à un échelon v  n  ne contient


aucun terme u(n) en régime permanent.

d. En substitant z = ejω dans H(z),


1  e j 2
H (e j ) 
1  0.81e j 2

Nous utiliserons le script MATLAB pour calculer et tracer les réponses.


>> w = [0:1:500]*pi/500; H = freqz(b,a,w);
>> magH = abs(H); phaH = angle(H);
>> subplot(2,1,1); plot(w/pi,magH); grid
>> xlabel(’frequency in pi units’); ylabel(’Magnitude’)
>> title(’Magnitude Response’)
>> subplot(2,1,2); plot(w/pi,phaH/pi); grid
>> xlabel(’frequency in pi units’); ylabel(’Phase in pi units’)
>> title(’Phase Response’)

Les courbes de réponse en fréquence sont illustrées à la figure 4.10.

FIGURE 4.10 Diagrammes de réponse en fréquence pour l'exemple 4.13

4.5 Solutions des équations de différence


Dans le chapitre 2, nous avons mentionné deux formes pour la solution de la
constante linéaire du coefficient d’équations de difference. Une forme consistait à
trouver les solutions particulières et homogènes, tandis que l'autre forme consistait
à trouver l'entrée zéro (condition initiale) et les réponses à l'état zéro. En utilisant
les transformations z, nous fournissons maintenant une méthode pour obtenir ces
formulaires. De plus, nous discuterons également des réponses transitoires et des
réponses à l'état d'équilibre. Dans le traitement numérique du signal, les équations
de difference évoluent généralement dans le sens de n positif. Par conséquent,
notre organigramme pour ces solutions sera suivant n ≥ 0. Pour ce faire, nous
définissons une version de la transformé en z bilatérale appelée transformé en z
unilatérale.

Définition 4 La transformée en z unilatérale


La transformée en z unilatérale d'une séquence x  n  est donnée par


Z  x  n  Z  x  n  u  n  X   z    x (n ) z  n
n 0

Ensuite, la propriété de déplacement de l'échantillon est donnée par

Z+ [x(n − k)] = Z [x(n − k)u(n)]


 
  x(n  k ) z   x ( m) z
n  ( m k )

n 0 m  k
1
 m
    x ( m) z  z
 ( m k ) k
 x ( m) z
m  k  m 0 

Or z   x(n  k )  x(1) z1k  x(2) z 2k  ...  x(k )  z  k X  ( z ) (4.26)

Ce résultat peut maintenant être utilisé pour résoudre les équations de difference avec
des conditions initiales non nulles ou avec des entrées variables. Nous voulons
résoudre l'équation de difference
N M
1   ak y(n - k )   bm x(n - m), n  0
k 1 m0

sous réserve de ces conditions initiales:

{ y  i  , i  1, ,  N} et {x  i  , i  1, . . . , M }.

Nous présentons sa solution à l'aide d'un exemple.

Exemple 4.14 résoudre

3 1
y(n)  y(n  1)  y(n  2)  x(n), n  0
2 2
n
1
Où x(n)    u (n)
4

telle que y(−1) = 4 et y(−2) = 10.

Solution: En prenant la transformation en z unilatérale des deux côtés de l'équation


de difference, nous avons

3 1 1
Y  ( z )   y  1  z 1Y  ( z )    y  2   z 1 y  1  z 2Y  ( z )  
2 2 1
1  z 1
4

En Substituant les conditions initiales et en réarrangeant,


 3 1 
 1  2 z 1 
1
Y  ( z ) 1  z 1  z 2  
 2 2  1  z 1
1
4

1
1

Y ( z) 
1  z 1
4 
1  2 z 1  (4.27
3 1 1 2 3 1
1 z  z 1  z 1  z 2
2 2 2 2

9 1
2  z 1  z 2

Finalement, Y ( z )  4 2
1 1
(1  z 1 )(1  z 1 )(1  z 1 )
2 4

En utilisant l'expansion de la fraction partielle, on obtient

2 1
1
Y  ( z)   3  3
1 1 1  z 1 1 1 (4.28)
1 z 1 z
2 4

Après la transformation inverse, la solution est la suivante

 1  n 2 1  1  n 
y ( n )         u ( n )
 2  3 3  4   (4.29

Formes des solutions La solution précédente est la réponse complète de l'équation de


difference. Elle peut s'exprimer sous plusieurs formes.

• Partie homogènes et particulières :

 1  n 2  1 1
n

y ( n )      u ( n )    u ( n )
 2  3  3 4
Partie homogène Partie particulière

La partie homogène est due aux pôles du système et la partie particulière aux pôles
d'entrée.

• Réponses transitoires et à l'état d'équilibre :

 1  1 n  1 n  2
y ( n )         u ( n)  u ( n)
 3  4   2   3
Réponses à l' état d ' équilibre
Réponses transitoires

La réponse transitoire est due aux pôles qui se trouvent à l'intérieur du cercle unitaire,
tandis que la réponse en régime permanent est due aux pôles qui se trouvent sur le
cercle unitaire. Notez que lorsque les pôles sont à l'extérieur du cercle de l'unité, la
réponse est appelée une réponse sans bornes.

• Réponses d'entrée nulle (ou condition initiale) et d'état zéro : Dans l'équation (4.27)
Y  ( z ) a deux parties. La première partie peut être interprétée comme :
YZS  z   H  z  X  z 

tandis que la deuxième partie est YZI  z   H  z  X IC  z 

où X IC  z  peut être considéré comme une entrée de condition initiale équivalente qui
génère la même sortie YZI que celle générée par les conditions initiales. Dans cet
exemple, X IC  n  est X IC  n   1, 2

En prenant maintenant la transformation en z inverse de chaque partie de (4.27), nous


écrivons la réponse complète comme suit

 1  1 n  1  8
n
  1 n 
y (n)      2     u (n)  3    2  u (n)
 3  4   2  3    2  
Réponse à l'état zéro Réponse d'entrée nulle

De cet exemple, il est clair que chaque partie de la solution complète est, en général,
une fonction differente et met l'accent sur un aspect different de l'analyse du système.

4.5.1 IMPLÉMENTATION MATLAB

Dans le chapitre 2, nous avons utilisé la fonction de filtre pour résoudre l'équation
difference, étant donné son coefficients et une entrée. Cette fonction peut également
être utilisée pour obtenir une réponse complète lorsque les conditions initiales sont
données. Sous cette forme, la fonction de filtrage est appelée par

y= filter(b,a,x,xic)

où xic est un tableau d'entrée de condition initiale équivalent. Pour trouver la réponse
complète dans l'exemple 4.14, nous allons utiliser le script MATLAB.

>> n = [0:7]; x = (1/4).^n; xic = [1, -2];


>> format long; y1 = filter(b,a,x,xic)
y1 =
Columns 1 through 4
2.00000000000000 1.25000000000000 0.93750000000000 0.79687500000000
Columns 5 through 8
0.73046875000000 0.69824218750000 0.68237304687500 0.67449951171875
>> y2 = (1/3)*(1/4).^n+(1/2).^n+(2/3)*ones(1,8) % MATLAB Check
y2 =
Columns 1 through 4
2.00000000000000 1.25000000000000 0.93750000000000 0.79687500000000
Columns 5 through 8
0.73046875000000 0.69824218750000 0.68237304687500 0.67449951171875
Ce qui est en accord avec la réponse donnée en (4.29). Dans l'exemple 4.14, nous
avons calculé xIC  n  par analyse. Toutefois, dans la pratique, et en particulier pour les
équations de plus grand ordre difference, il est fastidieux de déterminer xIC  n  de
manière analytique. MATLAB fournit une fonction appelée filtic, qui n'est disponible
que dans la boîte à outils de traitement du signal. Il est invoqué par

xic = filtic(b,a,Y,X)
Pour lesquelles b et a sont les matrices de coefficient du filtre et Y et X sont les
matrices de conditions initiales à partir des conditions initiales sur y(n) et x(n),
respectivement, sous la forme

Y =[y(−1), y(−2),..., y(−N)]

X =[x(−1),x(−2),..., x(−M)]

Si x(n)=0, n ≤-1 alors X n'a pas besoin d'être spécifié dans la fonction filtic.
Dans l'exemple 4.14 nous aurions pu utiliser
>> Y = [4, 10]; xic = filtic(b,a,Y)
xic =
1 -2
pour déterminer xIC  n  .

EXEMPLE 4.15 Résoudre l'équation de difference

y(n)= 1/3[x(n)+ x(n−1) + x(n−2)]+0.95y(n−1)−0.9025y(n − 2),n ≥ 0

ou x(n)= cos(πn/3)u(n) and y(−1) = −2,y(−2) = −3; x(−1) = 1,x(−2) = 1

Déterminez d'abord la solution analytiquement et ensuite en utilisant MATLAB.

Solution Prendre la transformation en z unilatérale de l'équation de difference

Y+(z)= 1

Y+(z)=3[X+(z) + x(−1) + z−1X+(z) + x(−2) + z−1x(−1) + z−2X+(z)]+0.95[y(−1) +


z−1Y+(z)] − 0.9025[y(−2) + z−1y(−1) + z−2Y+(z)]

et en substituant les conditions initiales, on obtient

1 1 1 1 2
 z  z
1.4742  2.1383z 1
Y   z  3 3 3 X 
 z  
1  0.95 z 1  0.9025 z 2 1  0.95z 1  0.9025z 2

De toute évidence, xIC  n  =[1.4742, 2.1383]. Remplaçant maintenant

1  0.5 z 1
X   z 
1  z 1  z 2
et en simplifiant, nous obtiendrons Y   z  comme fonction rationnelle. Ce
simplification et d'autres expansions partielles de fractions peuvent être faites en
utilisant MATLAB.

Script MATLAB:

>> b = [1,1,1]/3; a = [1,-0.95,0.9025];


>> Y = [-2,-3]; X = [1,1]; xic=filtic(b,a,Y,X)
xic =
1.4742 2.1383
>> bxplus = [1,-0.5]; axplus = [1,-1,1]; % X(z) transform coeff.
>> ayplus = conv(a,axplus) % Denominator of Yplus(z)
ayplus =
1.0000 -1.9500 2.8525 -1.8525 0.9025
>> byplus = conv(b,bxplus)+conv(xic,axplus) % Numerator of Yplus(z)
byplus =
1.8075 0.8308 -0.4975 1.9717
>> [R,p,C] = residuez(byplus,ayplus)
R=
0.0584+3.9468i 0.0584-3.9468i 0.8453 + 2.0311i 0.8453 - 2.0311i
p=
0.5000 - 0.8660i 0.5000 + 0.8660i 0.4750 + 0.8227i 0.4750 - 0.8227i
C=
[]
>> Mp = abs(p), Ap = angle(p)/pi % Polar form
Mp =
1.0000 1.0000 0.9500 0.9500
Ap =
-0.3333 0.3333 0.3333 -0.3333

1.8075  0.8308 z 1  0.4975 z 2  1.9717 z 3


D'où Y  ( z ) 
1  1.95 z 1  2.8525z 2  1.8525z 3  0.9025z 4

0.0584  j3.9468 0.0584  j3.9468 0.8453  j 2.0311 0.8453  j 2.0311


   
1  e j 3 z 1 1  e j 3 z 1 1  0.95e j 3 z 1 1  0.95e j 3 z 1

Maintenant, à partir du tableau 4.1

y(n)= (0.0584 + j3.9468)e−jπn/3+(0.0584 − j3.9468)ejπn/3

+ (0.8453 + j2.031) (0.95)nejπn/3+(0.8453 − j2.031) (0.95)ne−jπn/3

=0.1169cos(πn/3) + 7.8937sin(πn/3)+(0.95)n[1.6906 cos(πn/3) − 4.0623 sin(πn/3)] ,n


≥0

Les deux premiers termes de y(n) correspondent à la réponse en régime permanent,


ainsi qu'à la réponse particulière, tandis que les deux derniers termes sont les termes
de réponse transitoire (et de réponse homogène).
Pour résoudre cet exemple à l'aide de MATLAB, nous aurons besoin de la fonction
filtic, que nous avons déjà utilisée pour déterminer la séquence xIC  n  . La solution
sera numérique. Déterminons les 8 premiers échantillons de y(n).

Script MATLAB:

>> n = [0:7]; x = cos(pi*n/3); y = filter(b,a,x,xic)


y=
Columns 1 through 4
1.80750000000000 4.35545833333333 2.83975000000000 -1.56637197916667
Columns 5 through 8
-4.71759442187500 -3.40139732291667 1.35963484230469 5.02808085078841
% Matlab Verification
>> A=real(2*R(1)); B=imag(2*R(1)); C=real(2*R(3)); D=imag(2*R(4));
>> y=A*cos(pi*n/3)+B*sin(pi*n/3)+((0.95).^n).*(C*cos(pi*n/3)+D*sin(pi*n/3))
y=
Columns 1 through 4
1.80750000000048 4.35545833333359 2.83974999999978 -1.56637197916714
Columns 5 through 8
-4.71759442187528 -3.40139732291648 1.35963484230515 5.02808085078871

Vous aimerez peut-être aussi