0% encontró este documento útil (0 votos)
36 vistas14 páginas

ACTIVIDADES

Este documento presenta información sobre la transformada Z y cómo calcularla en Matlab. Se explican conceptos básicos como aplicar la transformada Z a funciones comunes como exponenciales, seno y coseno. También se muestran ejemplos de evaluar transformadas Z de funciones discretas y cómo representarlas en el plano-Z. Finalmente, se explica cómo calcular la transformada Z inversa mediante el comando iztrans en Matlab.

Cargado por

renzo meza
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
36 vistas14 páginas

ACTIVIDADES

Este documento presenta información sobre la transformada Z y cómo calcularla en Matlab. Se explican conceptos básicos como aplicar la transformada Z a funciones comunes como exponenciales, seno y coseno. También se muestran ejemplos de evaluar transformadas Z de funciones discretas y cómo representarlas en el plano-Z. Finalmente, se explica cómo calcular la transformada Z inversa mediante el comando iztrans en Matlab.

Cargado por

renzo meza
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

ACTIVIDADES: Transformada Z

NOMBRE: Renzo Giovan Meza Paredes


CÓDIGO: 2021202941
ACTIVIDADES

1. transformada Z
1.1. Transformada Z de funciones básicas
Ejemplo 1: función: f =a n

Código: Resultado:
% Transformada Z de f=a^n
clc;
clear all;
syms a n f % Crea variables
simbólicas
disp('Función a transformar:
f=a^n')
f=a^n; % Define la función a
transformar f
pretty(f) % Presentación en forma
algebraica de f
disp('Función transformada:
F(z)')
F=ztrans(f); % Determina la
transformada z: F(z).
pretty(F) % Presentación en forma
algebraica de F(z)

▪ Transcriba el siguiente programa a Matlab:

En este primer ejemplo vemos que es una función exponencial en el que el primer
resultado es la función a transformar y lo podemos ver gracias al sintaxis pretty que
sirve para imprimir el texto en formato algebraico, luego en el segundo resultado
usamos la sintaxis ztrans para convertir a transformada z, no olvidar que antes usamos
syms para crear las variables.
Ejemplo 2: Función: 𝑓 = sen 𝜔0𝑛

▪ Transcriba el siguiente programa a Matlab:

Código Resultado:
% Transformada Z de
f=sen(w*n)
clc;
clear all;
syms w n f % Crea variables
simbólicas
disp('Función a transformar:
f = sen(w*n)')
f=sin(w*n); % Define la
función a transformar f
pretty(f) % Presentación en
forma algebraica de f
disp('Función transformada:
F(z)')
F=ztrans(f); % Determina la
transformada z: F(z).
pretty(F) % Presentación en
forma algebraica de F(z)

Como en el ejemplo anterior, solo que ahora usaremos una función senoidal, donde
Ζ sin( ω)
vemos que su función transformada z de una senoide es 2 y usando
Ζ −2 cos ( ω ) Ζ +1
pretty para una presentación más algebraica tendríamos lo que se ve como ultimo
resultado.
Ejercicios 1:
Pruebe la transformada Z de otras funciones básicas

Transformando la siguiente función:


m+ n
f =e
Código: Resultado
clc;
clear all;
syms m n
disp('Función a transformar:
f=e^m+n')
f = exp(m+n);
pretty(f)
disp('Función transformada:
F(z)')
F=ztrans(f); % Determina la
transformada z: F(z).
pretty(F) % Presentación en
forma algebraica de F(z)

Z
f (Z )= 2
Z −0.3 Z +0.5
Código: Resultado:
clc;
clear all;
syms z % Crea variables
simbólicas
disp('Función a transformar:
f=z/z^2-0.3z+0.5')
f=(z)/(z^2-.3*z + .5); % Define
la función a transformar f
pretty(f) % Presentación en forma
algebraica de f
disp('Función transformada:
F(z)')
F=ztrans(f); % Determina la
transformada z: F(z).
pretty(F) % Presentación en forma
algebraica de F(z)

1.2. Transformadas Z que no pueden efectuarse en Matlab


▪ En la ventana de comandos de Matlab, ejecute el siguiente código línea a línea

Código Resultados:
>> clc, clear all
>> syms f(n) z
>> f(n) = 1/n
>> F = ztrans(f, n,z)

En la primera línea limpiamos todo el comando y Workspace que puede haber, en el


segundo usamos la sintaxis syms para crear la variable f(n) y z, luego en la tercera línea
definimos la función f(n)=1/n y en la cuarta línea usamos el comando ztrans para
transformarlo en z, vemos que el resultado solo es un intervalo de las variables que
pusimos al inicio, pues le faltan valores y además son variables que no pueden
efectuarse.

1.3. Evaluación de la transformada Z de una función discreta

Ejemplo: Evalúe la función: x ( n )=n 2(an )

▪ Transcriba el siguiente programa

Código Resultado:
% TZ de la función x[n]=n^2(a^n)
clc
close all
syms n
a=1;
nd=0:3;
x= (nd. ^2). *(a.^nd)
stem(nd,x,'Linewidth',2,'color','black');
title ('Señal discreta');
ylabel('x[n]');
xlabel('n');
Z=ztrans((n.^2).*(a.^n))
pretty(Z)
[num, den] =numden(Z)
[zz,pp,kk]=tf2zpk([0 1],[-1 3 -3 1])
figure
zplaneplot(zz,pp)
grid on
title('Plano Transformada Z');

Gráficos:
Señal discreta Plano Transformada Z
9
1
8
0.8
7 0.6

6 0.4
Imaginary Part

0.2
5
x[n]

2 3
0
4
-0.2
3
-0.4

2 -0.6

1 -0.8

-1
0
0 0.5 1 1.5 2 2.5 3 -1 -0.5 0 0.5 1
n Real Part

Evaluando la función x ( n )=n 2(an ), nos damos cuenta que primero tenemos que crear
variables para n, a la variable a le asignamos el valor 1 y a nd un intervalo de 0 a 3 para tener X
los siguientes resultados x=[01 4 9], y lo vemos en los gráficos donde nos muestra una señal
discreta que esta en función de nd y x. Ahora convertiremos esa función discreta en una
transformada Z. Con los valores de n que creamos al inicio tendremos el siguiente resultado
Ζ∗(Ζ+ 1)
, ahora para representarlo en el plano de formas de polo, ceros y ganancia
(Ζ−1)3
tendríamos lo siguiente: tendríamos 2 cero en el punto 0 y 3 polo en el punto 1. Eso lo
comprobamos en el segundo gráfico.
Ejercicios 2:
Consigne dos ejercicios adicionales, haga la evaluación y explique.

01: tenemos el siguiente sistema donde tendremos la respuesta ante una entrada al
escalón:
s−0.5
x (s)= 2
1.5 s −s +0.3

Código: Resultado:
clc
close all
xz=tf ([-1 .5], [-1.5 1 -0.3])
ts=0.1
d = c2d (xz, ts,'zoh')
t =10 % tiempo de
representación
G = tf(d,ts);
[Y,T] = step(G,t); % respuesta
ante escalón
figure
stem(T,Y)
grid
title('Respuesta ante entrada
escalón')
xlabel ('Tiempo (en
segundos)')

Respuesta ante entrada escalón


10

-10

-20

-30

-40

-50
0 1 2 3 4 5 6 7 8 9 10
Tiempo(en segundos)
02: En este siguiente ejercicio lo que tendremos será el equivalente discreto para la
parte continua con una respuesta del sistema a un escalón de 10 unidades.

Código: Resultado:
clc
clear all
gs=tf(1,[50 .37])
discgs=c2d(gs,1)
discgs2=filt([0 10],1,1)
gz=feedback (series
(discgs2, discgs),1)
figure
step(10*gz)

Gráfico:

1.4. Transformada Z inversa


Transformada Z inversa de funciones básicas en forma directa con el comando
iztrans ‒ Transcriba el siguiente programa
Código:
% Transformada Z de sen(w*n) y su TZ inversa
clc;
clear all;
% Transformada Z
syms n w
f=sin(w*n);
z=ztrans(f);
disp ('La transformada Z de sen(w*n) es: ');
disp(z);
% Transformada Z inversa
zz=iztrans(z);
disp ('La transformada Z inversa es: ');
disp(zz);

En este programa definimos la función a transformar f como la señal discreta


sin(ω∗n), donde n es el tiempo discreto y w la frecuencia. Seguidamente usamos el
comando ztrans para convertirlo en la transformada Z, una vez guardada la
transformada Z. Calcularemos la transformada inversa de la función utilizando el
comando iztrans.
Ejercicios 3:
Pruebe la transformada Z inversa de otras funciones básicas

a) x [n]=δ[n]+ 2 δ[n−3]

Código: Resultado:
syms n
x1n = kroneckerDelta(n)
+ 2*kroneckerDelta (n -
3);
x1z = ztrans(x1n)
disp ('La transformada Z
de x[n]=δ [n]+2δ [n-3]es:
');
disp(x1z);
% Transformada Z inversa
zz=iztrans(x1z);
disp ('La transformada Z
inversa es: ');
disp(zz);
b) x [n]=cos ¿

Código: Resultado:
syms n
x2n = cos((3*n*pi)/5);
x2z = ztrans(x2n)
disp ('La transformada
Z de x[n]=cos(3npi/5)
es: ');
disp( x2z);
% Transformada Z
inversa
zz=iztrans(x2z);
disp ('La transformada
Z inversa es: ');
disp(zz);

Ejemplo 1:
Determine la transformada Z inversa de la función:
0.5 z
F (z)=
(z−0.5)( z−0.7)
Código:
syms z k
'F(z)'
F=0.5*z/((z-0.5)*(z-0.7));
pretty(F)
'f(kT)'
f=iztrans(F,k);
pretty(f)
'f(nT)'
f=iztrans(F);
pretty(f)

Resultado:
0.5 z
En el ejemplo 1 imprimiremos la siguiente función f ( z )= , sin antes
( z−0.5)(z−0.7)
definir las variables z y k que nos ayudaran a tener una respuesta para la transformada
inversa, pues Z es la variable en que surgirá la transformada inversa, y K será la variable
que dará la función de transformada inversa en función a él. El programa manipula
funciones en el dominio de Laplace y realizar transformaciones inversas para obtener
las funciones correspondientes en el dominio del tiempo discreto

Ejercicio 4:
Determine la transformada Z inversa de la función:
z (z +1)(z+ 2)
f (z)=
(z−0.5)( z−0.7)(z −0.9)

Código: Resultado:
syms z k
'F(z)'
F=z*(z+1) *(z+2) /((z-0.5)
*(z-0.7) *(z-0.9));
pretty(F)
'f(kT)'
f=iztrans(F,k);
pretty(f)
'f(nT)'
f=iztrans(F);
pretty(f)

1.4.1. Transformada Z inversa de funciones racionales en forma indirecta con el


comando residuez.
Básicamente consiste en expresar la función racional en fracciones parciales y luego aplicar la
tabla de transformadas.
Ejemplo: Determine la transformada Z inversa de la función:
−1 −2
1−z −6 z
H (z )= −1 −2
1−1.5 z −z
Con 𝑅𝑂𝐶: |𝑍| > 2 y grafique la respuesta al impulso para 30 muestras
Código: Resultado:
clc; clear;
b= [1 -1 -6];
a=[1 -1.5 -1];
[R, P, K] =residuez (b, a)

Por ende:

−1
1−z −6 z
−2
R1 R2
H (z )= −1 −2
=k + z−1
+ z−1
1−1.5 z −z 1− p1 1− p2
Entonces:
0.8 4.2
H (z )=6− z−1
− z−1
1−2 z 1+0.5 z
Luego, aplicando las tablas de la transformada Z se determina:

n n
h(n)=6 δ (n)−0.8 (2) u(n)−4.2(−0.5) u(n)
Para graficar las 30 muestras se puede llevar a cabo los siguientes comandos:

Código Resultado:
n=0:30; 108

dn= [1 zeros (1,30)];


1

hn=6*dn-0.8*(2). ^n- 0

4.2*(0.5). ^n; -1

stem (n, hn,'filled') -2

grid on
-3

-4

-5

-6

-7

-8

-9
0 5 10 15 20 25 30

En este ejemplo lo que vamos a realizar será primero tener nuestros coeficientes de
numerador y denominador de la siguiente función de transferencia en la que tendremos
b= [1 -1 -6]; a= [1 -1.5 -1]; Para luego con el comando residuez encontrar los polos,
residuos y ganancias en relación al numerador y denominador. Una vez teniendo nuestra
fracción racional aplicaremos la transformada Z. Teniendo ya nuestro respuesta al
impulso, graficaremos las 30 muestras, definiendo la secuencia en n, la secuencia dn,
luego calcularemos la respuesta al impulso para ver el resultado.
Ejercicio 5:
Determine la transformada Z inversa de la función:
3 2
5 z +26 z +44 z +29
H (z )= 3 2
z −6 z +11 z+ 6

Código: Resultado:
clc; clear;
syms z w n
hz=
(5*z.^(3)+26*z.^(2)+44*z+29)/(z.^(3)-
6*z.^(2)+11*z+6)
pretty(hz)
disp ('La transformada Z inversa es: ');
hzi=ztrans(hz,w,n);
pretty(hzi)

1.5. Evaluación de sistemas en el dominio z


Evaluación de un sistema dada su función de transferencia

Ejemplo: Determine el diagrama de polos y ceros y la respuesta al impulso del sistema de


tiempo discreto dado por la función de transferencia:

−1 −2
1−z −6 z
H (z )= −1 −2
1−1.5 z −z
Con 𝑅𝑂𝐶: |𝑍| > 2

Como es la misma función de transferencia anterior se puede tomar la función calculada y


alternativamente emplear las instrucciones: roots, zplane, impz:

El programa para graficar polos y ceros podría ser el siguiente:


Código: Resultado:
clc; clear all; ceros =
b= [1 -1 -6];
a= [1 -1.5 -1]; 3
ceros=roots(b) -2
polos=roots(a)
zplane(b,a)
grid on polos =

-0.5000
2.0000

Gráfico:
2

1.5

1
Código: Resultado
% Definir la ecuación en
Imaginary Part
0.5
diferencias
b = [2, 6]; 0
a = [1, 2];
% Determinar polos-0.5y ceros
zeros = roots(b);
pols = roots(a); -1
disp('Zeros:');
disp(zeros); -1.5
disp('Polos:');
disp(pols); -2
% Calcular la respuesta al
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2 2.5 3
impulso
Real Part
impulse_response = impz(b, a);
% Graficar la respuesta al
impulso
stem(0:length(impulse_response)-
1, impulse_response); Y
xlabel('n');
ylabel('y[n]');
title('Respuesta al impulso');
grid on;

para graficar la respuesta al impulso el programa podría ser el siguiente:


Código: Gráfico: 1
10 8

impz(b,a) 0

[h, n] =impz -1

(b, a,31); -2

stem (n,
-3

h,'filled')
grid on -4

-5

-6

-7

-8

-9
0 5 10 15 20 25 30

1.5.1. Evaluación de un sistema dada su ecuación en diferencias

Ejercicio 6: Determine el diagrama de polos y ceros y la respuesta al impulso de la


ecuación en diferencias dada por:

y [n]+2 y [n−1]=2 x [n]+6 x [n−1]

También podría gustarte