Você está na página 1de 6

Universidade Federal de São João Del-Rei

Engenharia de Telecomunicações
Processamento Digital de Sinais
Aula Prática VI - Transformada Z
Professor: Gustavo Fernandes Rodrigues

Nome:
——————————————————————————– ——————————————–

1 - Transformada Z

Transformada Z utilizando o Matlab. A rotina abaixo pode ser utilizada para fatorar o
polinômio do denominador ou numerador de uma transformada Z em forma de função racional
a partir das raı́zes do polinômio.

function Factors = factorize(polyn)


format long; Factors = [];
THRESH = 1e-8;
proots = roots(polyn); len = length(proots); while(len > 1)
if(abs(imag(proots(1))) < THRESH)
fac = [1 -real(proots(1))];
Factors = [Factors;[fac 0]];
else
negimag = imag(proots)+imag(proots(1)); samereal = real(proots)-real(proots(1));
index = find(abs(negimag) <THRESH & abs(samereal)<THRESH);
if(index)
fac = [1 -2*real(proots(1)) abs(proots(1))^
2];
Factors = [Factors;fac];
else fac = [1 -proots(1)];
Factors = [Factors;[fac 0]];
end
end
polyn = deconv(polyn,fac);
proots = roots(polyn);
len = length(polyn);
end
end
Exemplo de fatoramento da Transformada Z

Dada a expressão abaixo da seguinte transformada Z determine a forma fatorada, plote os


pólos e zeros da função e determine as possı́veis regiões de convergência (ROCs).

2z 4 + 16z 3 + 44z 2 + 56z + 32


G(z) = , (1)
3z 4 + 3z 3 − 15z 2 + 18z − 12

Para acharmos os fatores do numerador basta usarmos a rotina acima.

Fatores do Numerador:

polyn=[2 16 44 56 32]/2; polyn=[1 8 22 28 16];


Factors = factorize(polyn);

1.000000000000000 4.000000000000002 0
1.000000000000000 1.999999999999993 0
1.000000000000000 2.000000000000005 2.000000000000004

Fatores do Denominador:

polyn=[3 3 -15 18 -12]/3;


polyn=[1 1 -5 6 -4];
Factors = factorize(polyn);

1.000000000000000 3.236067977499790 0
1.000000000000000 -1.236067977499787 0
1.000000000000000 -1.000000000000003 0.999999999999999

Ganho da Equaç~
ao = 2/3 = 0,667

Desta forma, a equação da transformada Z fatorada é dada pela equação abaixo:

(1 + 4z −1 )(1 + 2z −1 )(1 + 2z −1 + 2z −2 )
G(z) = 0, 667 , (2)
(1 + 3, 236z −1 )(1 − 1, 236z −1 )(1 − z −1 + z −2 )

Para plotarmos os gráficos de zero e pólos utilizando o Matlab podemos usar as seguintes
rotinas:

zplane(zeros,poles); ou
zplane(num,den);

As quatro regiões possı́veis de convergência da Equação 1 de acordo com a Figura 1 são:

<1 = ∞ ≥ |z| > 3.2361,


<2 = 3.2361 > |z| > 1.236,
<3 = 1.236 > |z| > 1,
<4 = 1 > |z| ≥ 0.
(3)
Figure 1: Gráfico de Pólos e Zeros da Equação 1

Exemplo para obter a forma de função racional da Transformada Z a partir do


seus pólos e zeros

Vamos supor que os zeros da função sejam: ξ1 = 0.21, ξ2 = 3.14, ξ3 = −0.3 + j0.5,
ξ4 = −0.3 − j0.5; e os pólos da função sejam λ1 = −0.45, λ2 = 0.67, λ3 = 0.81 + j0.72,
λ4 = 0.81 − j0.72; e o ganho constante igual a 2.2. Vamos usar a seguinte rotina em matlab:

z=[0.21 3.14 -0.3+i*0.5 -0.3-i*0.5]’;


p=[-0.45 0.67 0.81+i*0.72 0.81-i*0.72]’;
k=2.2;
[num, den]=zp2tf(z,p,k);

Numerador:
2.2000 -6.0500 -2.2233 -1.6354 0.4932
Denominador:
1.0000 -1.8400 1.2294 0.2300 -0.3541

A expressão final é dada por:

2.2z 4 − 6.05z 3 − 2.2233z 2 − 1.6354z + 0.4932


G(z) = , (4)
z 4 − 1.84z 3 + 1.2294z 2 + 0.23z − 0.3541

2 - Expansão em Frações Parciais usando o Matlab (Transformada Inversa Z)

A função do Matlab: residuez pode ser utilizada para se obter a expansão em frações par-
ciais a partir da função racional de uma transformada Z. Exemplo:

[r,p,k]=residuez(num, den);

onde num e den representam os coeficientes do numerador e denominador, respectivamente.


Exemplo:

[num,den]=residuez(r,p,k);

Exemplo de expansão em Frações Parciais:

Dada a equação a seguir, determine a expansão em frações parciais:

18z 3
G(z) = , (5)
18z 3 + 3z 2 − 4z − 1

num=[18];
den=[18 3 -4 -1];
[r,p,k]=residuez(num, den);

r =
0.3600 0.2400 0.4000
p =
0.5000 -0.3333 -0.3333
k =
[]

Desta maneira, a expansão em frações parciais é dada por:

0.36 0.24 0.4


G(z) = −1
+ −1
+ , (6)
1 − 0.5z 1 + 0.3333z (1 + 0.3333z −1 )2

O inverso também pode ser obtido, ou seja, dado os valores residuais, os pólos e o ganho
podemos obter a expressão na forma racional. Exemplo:

r=[0.36 0.24 0.4];


p=[0.5 -0.3333 -0.3333];
k=[0];

[num,den]=residuez(r,p,k);
num =
1.0000 -0.0000 -0.0000 0
den =
1.0000 0.1666 -0.2222 -0.0555

Multiplicando os valores acima por 18, temos exatamente a expressão da Equação 5.


3 - Transformada Inversa Z

Considere a equação abaixo:

1 + 2.0z −1
H(z) = , (7)
1 + 0.4z −1 − 0.12z −2

Expandindo a função racional acima, temos:

H(z) = 1 + 1.6z −1 − 0.52z −2 + 0.4z −3 − 0.2224z −4 + ..., (8)

Sendo a transformada inversa h[n] dada por:

{h[n]} = {1, 1.6, −0.52, 0.4, −0.2224, ...}, n ≥ 0. (9)

Para resolvermos a transformada da função racional através do Matlab basta utilizar a função
impz e entrar com os coeficientes do numerador e denominador, conforme mostrada abaixo:

coeftransformadainversa=impz([1 2],[1 0.4 -0.12]);

coeftransformadainversa =
= 1.0000 1.6000 -0.5200 0.4000 -0.2224 0.1370 -0.0815 0.0490 -0.0294 0.0176
Exercı́cios de Matlab

1) Determine a forma fatorada das transformadas z abaixo e plote o gráfico contendo seus pólos e
zeros. Determine todas as possı́veis regiões de convergência para cada transformada z e descreva
o tipo de transformada z inversa em termos da sequência ser: lateral direita, lateral esquerda ou
bilateral associado a cada ROC (região de convergência).

2z 4 − 5z 3 + 13.48z 2 − 7.78z + 9
(a) G1 (z) = (10)
4z 4 + 7.2z 3 + 20z 2 − 0.8z + 8

5z 4 + 3.5z 3 + 21.5z 2 − 4.6z + 18


(b) G2 (z) = (11)
5z 4 + 15.5z 3 + 31.7z 2 + 22.52z + 4.8

Você também pode gostar