Sunteți pe pagina 1din 10

UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

(Universidad del Per, DECANA DE AMERICA)

FACULTAD DE INGENIERIA ELECTRONICA Y ELECTRICA


E.A.P. INGENIERIA ELECTRONICA
LABORATORIO DE PROCESAMIENTO DIGITAL DE SEALES

LABORATORIO No.7: TRANSFORMADA Z

7.1 OBJETIVO
Aprender a utilizar la Transformada Z como herramienta de anlisis de sistemas
discretos lineales e invariantes en el tiempo (SDLIT), orientndonos hacia los sistemas discretos
definidos por ecuaciones lineales en diferencias, as como las diferentes estructuras de
realizacin de los mismos.
7.2 EQUIPOS Y MATERIALES REQUERIDOS
El equipo de experimentacin necesario para realizar el presente laboratorio es:
1. PC Pentium IV o superior.
2. Sistema Operativo Windows 2000 o XP.
7.3 SOFTWARE REQUERIDO
El siguiente software es necesario para realizar este laboratorio:
1. Matlab V6.0 o Scilab.
2. Libreras y archivos de soporte.
7.4 ASPECTOS TEORICOS
La Transformada Z es una versin generalizada de la Transformada de Fourier. As
como la forma de la Transformada de Fourier, nos permite representar a una seal del dominio
del tiempo en trminos de sus componentes de frecuencia en vez de accesar a los valores de la
seal en trminos de n, un ndice discreto relacionado al tiempo, nos puede hacer conocer la
respuesta de la seal para una frecuencia dada.
La Transformada Z sirve para dos propsitos. Primero, proporciona una manera
conveniente de anotar los efectos de los filtros. Hasta el momento, hemos utilizado los
coeficientes dados por la funcin impulso de un filtro FIR., h[n] = {a,b,c,d}, para describir
como la salida y[n] se relaciona con la entrada x[n]. En la notacin de la Transformada Z,
decimos que Y(z)=H(z)X(z), donde H(z) es la Transformada Z de h[n]. Podemos pensar en H(z)
como algo que opera en X(z) para producir la salida Y (z). Por esta razn, H(z) es tambin
llamada funcin de transferencia. En lugar de utilizar ax[n - k] en la ecuacin, podemos
colocar el coeficiente y retardo (k) juntos, y retirar x. De esta manera el filtro con coeficientes
h[n] = {a,b,c,d} puede ser descrito por medio de la Transformada Z de h[n], H(z) = az0 + bz-1 +
cz-2 + dz-3. Un segundo propsito de la Transformada Z es decirnos acerca de la estabilidad del
filtro, la misma que ser tratado en el presente laboratorio.
Por definicin, la Transformada Z de una seal discreta x[n] es:

X z

x[n]z

(7.1)

donde z es un nmero complejo, z = rej. Tpicamente, n tiene un rango finito, por ejemplo,
imagina una seal x con seis valores. Efectivamente, en este ejemplo, n tiene un rango de
solamente 0 a 5, puesto que cualquier valor de x antes del ndice 0 o despus del ndice 5 es
considerado como 0. De esta manera la Transformada Z podr ser:
X(z) = x[0]z0 + x[1]z-1 + x[2]z-2 + x[3]z-3+ x[4]z-4 + x[5]z-5

Tericamente sin embargo, para una x[n] en general, X(z) puede diverger, puesto que n
podra ser . Por esta razn, se incluye una regin de convergencia (ROC) con la
Transformada Z. Un aspecto importante de la ROC es que esta depende solamente de r, no de
y la regin de convergencia es circular. Si sabemos que un punto est dentro (o fuera) de la
regin de convergencia, los otros puntos de la misma magnitud tambin estarn dentro (o fuera)
de la regin de convergencia.

7.5 ACTIVIDADES

7.5.1 ECUACIONES EN DIFERENCIA


Como se ha tratado en el Laboratorio No 3, un sistema SDLIT es caracterizado por una
ecuacin lineal en diferencias que responde a la siguiente relacin entrada - salida:
N

k 0

k 0

ak y[n k ] bk x[n k ]

(7.2)

Para calcular la funcin de transferencia del sistema discreto de esta forma basta con
tomar la Transformada Z en ambos lados de la igualdad y aplicar la propiedad del retardo,
quedando de la siguiente forma:
N

k 0

k 0

akY z z k bk X z z k

(7.3)

obteniendo H(z) como el cociente entre Y(z) y X(z):


M

H z

b z

a z

k 0
N

k 0

(7.4)

En la figura 7.1 se representa uno de los posibles esquemas de realizacin de un


sistema SDLIT definido por la ecuacin en diferencias anterior, con a0 = 1. Los coeficientes ak
representan la realimentacin del sistema, que provoca una respuesta impulsional h[n] de
longitud infinita en general. A pesar de esa longitud, la salida es calculada recursivamente, por
lo que no es necesaria la convolucin de la entrada con h[n]. Para obtener h[n] en funcin de los
coeficientes ak, bk, basta con desarrollar la Transformada Z Inversa de la funcin de
transferencia H(z) obtenida de la forma anterior. Es decir, a partir de la ecuacin en diferencia
que caracteriza a un sistema discreto se puede obtener la respuesta impulsional del mismo a
travs de la Transformada Z, la cual tiene la forma expresada en la ecuacin (7.4).

Figura 7.1 Forma Directa I


Ejercicio 7.1
La funcin de transferencia de un sistema discreto evaluada sobre la circunferencia
unidad da lugar a la respuesta en frecuencia de dicho sistema. En este ejercicio calcularemos
ambas respuestas para un sistema determinado.
Considerar el sistema discreto siguiente:
y[n] - y[n - 1] = x[n] - 0.2x[n1]

(7.5)

Calcular 128 valores de su respuesta en frecuencia, para frecuencias espaciadas entre 0 y 2:


[H,w] = freqz(b,a,128,whole);
Obtener el valor de la funcin de transferencia del sistema en z = ej224/128, utilizando la
funcin tz(). Comprobar que dicho valor es igual a uno de los valores obtenidos con
freqz(), indicando cual es la posicin de ese valor en el vector H.
function H = tz(b,a,z)
% calcula la funcin de transferencia de un filtro en z.
% El filtro est descrito por la siguiente ecuacin:
% N
M
% sum a(k+1) y(n-k) = sum b(k+1) x(n-k)
% k=0
k=0
Calcular ahora, utilizando de nuevo tz(), el valor de la Transformada Z de h[n] =
[n1] [n 2] 0.48[n 3] + 0.288[n 4] en z = 1.2, comprobando que el resultado es 0.

Ejercicio 7.2
Vamos a evaluar la Transformada Z en una serie de puntos a travs de la observacin
de la respuesta del sistema para algunas entradas especiales. Para ello, considerar el sistema
con respuesta impulsional:
h[n] = 0.03[n] + 0.4 [n 1] +0.54 [n 2] + 0.2 [n 3] 0.2 [n 4]+
+0.1 [n 5] + 0.2 [n 6]

(7.6)

Para definir la respuesta impulsional, basta con efectuar en Matlab


>> h=[0.03 0.4 0.54 0.2 -0.2 0.1 0.2]
Generar un conjunto de seis seales complejas de longitud 48 de la forma zkn , para los
siguientes valores de zk :
z1 = j, z2 = 1 + j, z3 = 1 j, z4 = 2, z5 = 2, z6 = j.
>> zetas = [j, 1+j, 1-j, 2, -2, -j];
>> e1 = zetas(1).^(0:47);
>> e2 = zetas(2).^(0:47);
>> ...
Calcular la salida del filtro para cada una de las entradas, convolucionando cada seal
con el filtro definido al comienzo:
>> y1 = conv(e1,h);
>> y2 = conv(e2,h);
>> ...
Utilizando la propiedad de las autofunciones de la forma zn, donde la respuesta
impulsional h[n] recibe en su entrada una seal x[n] = z0n , su salida ser la reflejada en la
ecuacin:

y n z0n

h k z

k
0

(7.7)

evaluar la funcin de transferencia del sistema en cada uno de los seis valores de z
especificados anteriormente, teniendo cuidado con los efectos de borde debido a la longitud
finita de las seales.
Para comprobar los resultados, repetir los clculos utilizando la funcin tz().
A partir de esos valores, conocemos el valor de la transformada de Fourier en alguna
frecuencia?

7.5.2 POLOS Y CEROS


Una expresin racional en z de la forma vista en la ecuacin 7.4 se puede describir
tambin como un conjunto de polos y ceros, siendo los ceros las races del polinomio del
numerador y los polos las races del polinomio en el denominador. Un cero en el punto z0 indica
que la salida del sistema es nula para una entrada de la forma z0n , al ser el autovalor
correspondiente igual a cero..Un polo en el punto z0 indica que la salida diverge para esa misma
entrada. De este modo la transformada Z de h[n] se puede escribir como:

bo k 1 1 ck z 1
M

H z

a0 k 1 1 pk z 1
N

Ejercicio 7.3
Sea un sistema definido por la siguiente ecuacin en diferencias:

(7.8)

y[n] = x[n] x[n 1] + 2x[n 3] + 1.6y[n 1] y[n 2] + 0.208y[n 3]

(7.9)

Obtener los vectores a y b que contienen los coeficientes a k y bk respectivamente, por


comparacin con la ecuacin 7.2.
Utilizando la funcin roots, calcular las races del numerador y del denominador de
H(z) (ceros y polos respectivamente). As, por ejemplo, para calcular las races del polinomio
1 2z-1 basta con hacer
>> roots([1 -2])
Uno de los ceros de la funcin de transferencia se encuentra sobre la circunferencia
unidad. Obtener la frecuencia que le corresponde.
Ahora representaremos grficamente los ceros y los polos:
>> fase=(0:0.01:2*pi);
>> z=exp(j*fase);
>> axis([-3 3 -2 2]);
>> grid
>> plot(real(ceros),imag(ceros),o,real(polos),
imag(polos),x,real(z),imag(z),r.);
En la grfica se observan los ceros y los polos junto con la circunferencia unidad, que nos
sirve de referencia. Razonar si el sistema es estable, sabiendo que es causal.

Ejercicio 7.4
Dibujar la seal exponencial causal que se corresponde con la transformada

X z

1
en cada uno de los siguientes casos, justificando la forma en funcin de la
1 az 1

posicin del cero:


a = -2
a = -1
a = -0.5
a = 0.5
a= 1
a = 1.5
Ejercicio 7.5
Repetir el ejercicio anterior para:

X z

1
1 az 1 a* z 1
1

en cada uno de los siguientes casos:

a 0.5 0.5 j
1
1

j
2
2
a 1.5 1.5 j
a

Figura 7.2: Forma directa II


7.5.3 IMPLEMENTACION DE ESTRUCTURAS
Existen infinitas formas de implementar un sistema definido por una ecuacin en
diferencias a partir de una funcin de transferencia dada. Una de ellas es la Forma Directa I,
representada en la figura 7.1. Una estructura alternativa ser la Forma Directa II (ver figura 5.2),
que minimiza el nmero de retardos necesario. La Forma Directa II se obtiene a partir de la
Forma Directa I intercambiando las posiciones de la parte directa y de la parte realimentada,
dado que cada una de ellas representa un sistema SDLIT. Al intercambiarlas es posible
combinar los grupos de dos retardos que actan sobre la misma seal en uno, con el
consiguiente ahorro.
A partir de la expresin de la Transformada Z que aparece en la ecuacin (7.4) podemos
obtener otras estructuras alternativas. As, despus de calcular los polos y ceros de H(z)
podemos escribir el numerador y el denominador como el producto de polinomios de primer y
segundo grado, que producen una representacin en cascada.

b0 k b1k z 1 b2 k z 2
1
a2 k z 2
k 1 1 a1k z
Ns

H z

(7.10)

Se han combinado de dos en dos los polos y ceros reales; los polos y ceros complejos
conjugados tambin se han combinado. Si el orden de numerador o denominador es impar habr
un trmino de orden uno en el numerador o denominador respectivamente. De este modo
podemos crear una nueva estructura compuesta por la cascada de estructuras de segundo orden,
cada una de las cuales puede ser implementada a travs de su forma directa II.

Figura 7.3: Estructura en cascada


La estructura en cascada no es nica para un sistema determinado, dado que la
agrupacin de los polos y ceros de dos en dos puede ser modificada, as como el orden de las
distintas secciones. La funcin de transferencia global es la misma en todos los casos, pero el
orden puede llegar a ser importante si se tienen en cuenta efectos de cuantificacin de los
coeficientes utilizados en el filtro, aunque ese tema no ser objeto de estudio aqu.
Ejercicio 7.5
Sea un sistema con funcin de transferencia H z

Ns

1 p z
k 1

Calcular el nmero posible de realizaciones en cascada de dicho sistema, si los N polos son
complejos y las secciones de orden dos estn conformadas por los polos complejos conjugados.
De igual modo podemos crear una estructura en paralelo si elegimos expresar H(z) en su
descomposicin en fracciones parciales:

H z

M N

k 0

Nr
Bk 1 ek z 1
Ak

1
1
* 1
k 1 1 d k z
k 1 1 d k z 1 d k z
Nr

Br z r

(7.11)

en donde Nr es el nmero de polos reales y Nc es el nmero de polos pares complejos


conjugados . Al igual que antes podemos agrupar los polos reales tambin de dos en dos, de
forma que tengamos bloques de orden dos (excepto uno si el orden del denominador de H(z)
es impar), obteniendo la siguiente ecuacin:

H z

M N

k 0

e0 k e1k z 1
1
a2 k z 2
k 1 1 a1k z
Ns

Br z r

(7.12)

Figura 7.4 Estructura en paralelo

Ejercicio 7.6
En este ejercicio se implementar un sistema la Forma Directa II (figura 7.2), derivada
a partir de la Forma Directa I (figura 7.1). Para ello copiar primero el cdigo de la Forma
Directa I:
filtroFDI.m
Dicho cdigo se muestra a continuacin:
function y=filtroFDI(b,a,x,ci)
%b:coeficientes parte directa, de la forma expresada en la ecuacin 7.2.
%a: coeficientes parte realimentada, de la forma expresada
%en la ecuacin 7.2.
%x: vector que representa la seal de entrada.
%ci: condiciones iniciales (y[-1],...,y[-N]).
%y: vector que representa la seal de salida. El numero de
%muestras calculadas de y ser igual a la longitud de x.
M=length(b)-1;
N=length(a)-1;
a=reshape(a,1,N+1);
b=reshape(b,1,M+1);
x=reshape(x,1,length(x));
salidaspasadas=ci;
if (length(ci)<N)
disp(Longitud de las condiciones iniciales incorrecta);
return;
end
entradaspasadas=[zeros(1,M+1)];
y=zeros(1,length(x));

if N>0

else

end

% hay realimentacion
for i=1:length(x)
entradaspasadas=[x(i) entradaspasadas(1:M)];
y(i)=(1/a(1))*(b*entradaspasadas-a(2:N+1)*salidaspasadas);
salidaspasadas=[y(i) salidaspasadas(1:N-1)];
end
% no hay realimentacion
for i=1:length(x)
entradaspasadas=[x(i) entradaspasadas(1:M)];
y(i)=(1/a(1))*(b*entradaspasadas);
end

Descripcin:
Dado que un filtro con realimentacin tiene una respuesta impulsional de longitud infinita
en general, el nmero de muestras calculadas es igual a la longitud de la entrada.
Los valores de la entrada que se utilizan para calcular la salida (x[n], , x[n M] estn
contenidos en el vector entradaspasadas. Dicho vector ha de ser actualizado en cada
instante de tiempo, incluyendo un nuevo valor y descartando el ms antiguo.
Los valores anteriores de la salida que se utilizan para calcular la salida actual (y[n1],
,y[n-N] estn contenidos en el vector salidaspasadas. Dicho vector ha de ser
actualizado en cada instante de tiempo, incluyendo un nuevo valor y descartando el ms
antiguo.
En cada instante de tiempo se calcula la salida sumando la contribucin de la parte directa
(parte izquierda en Figura 7.1) y de la parte realimentada (parte derecha en Figura 7.1).
Fijarse en la trasposicin de los vectores para realizar el producto escalar, que permite
representar en una simple instruccin el conjunto de productos y sumas.
Comprobar el correcto funcionamiento de la funcin calculando 10 muestras de la
respuesta impulsional de:

H z

1
1 0.5 z 1

(7.13)

Vamos a programar ahora una funcin que represente el mismo filtro en forma directa
II. Ahora tan slo necesitaremos almacenar un vector de N componentes para ser usado en la
siguiente iteracin, en vez de los dos vectores anteriores utilizados en la funcin anterior, que
representaban las entradas anteriores y las salidas anteriores. El cdigo de la funcin, al igual
que el de filtroFDI, se encuentra en filtroFDII.m.
La nueva funcin, que se deber completar en donde aparecen las lneas en puntos
suspensivos, es de la siguiente forma:
function [y,zf]=filtroFDII(b,a,x,zi)
% b: coeficientes parte directa, de la forma expresada en la ecuacin 7.2.
% a: coeficientes parte realimentada, de la forma expresada en la
% ecuacin 7.2.
% x: vector que representa la seal de entrada
% zi=estado inicial
% zf=estado final
% y: vector que representa la seal de salida. Se calcularn tantas
% muestras como tenga el vector de entrada x.

% El estado representa el contenido de los retardos.


M=length(b)-1;
N=length(a)-1; a=reshape(a,1,N+1);
b=reshape(b,1,M+1);
x=reshape(x,1,length(x));
estado=zi;
numretardos=max(M,N); %longitud vector estado
if (numretardos!=length(estado))
disp(Longitud de las condiciones iniciales incorrecta);
return;
end
y=zeros(1,length(x));
if numretardos>M
b=[b zeros(1,numretardos-M)];
end
if numretardos>N
a=[a zeros(1,numretardos-N)];
end
for i=1:length(x)
temp=...
y(i)=...
if numretardos==1
estado=temp;
else
estado=[temp estado(1:numretardos-1)];
end
endf
zf=estado;
Descripcin (basada en la figura 7.2):
Esta funcin, al igual que filter(), evala la salida en un nmero de muestras igual a
la longitud de la entrada.
La variable estado() contiene los valores almacenados en los retardos, y a partir de los
cuales hay que calcular la salida. Fijarse que estado se inicializa con las condiciones
iniciales, que se corresponden con los valores que inicialmente tienen los retardos. Se han
reducido los dos vectores de la funcin anterior, entradaspasadas y
salidaspasadas a uno solo (estado).
La variable temp representa lo que en la figura 7.2 se denota como w[n].
En cada iteracin hay que actualizar el vector estado, ya que todos los valores de los
retardos se desplazan un lugar.
Calcular de nuevo 10 muestras de salida para la misma funcin de transferencia del
caso anterior, demostrando que son iguales a las obtenidas anteriormente. Como condicin
inicial se pondr 0.
Qu valor se obtendr en la salida si ponemos como estado inicial el estado final
obtenido al calcular las 10 muestras de salida anteriores, y como entrada un nico cero?
Razonar la respuesta.

Todas las formas de implementacin vistas hasta ahora sirven para realizar un sistema,
con lo que la funcin de transferencia ha de ser la misma en todas. En el caso de la estructura en
cascada, H(z) ser el producto de las funciones de transferencia de las secciones de orden dos,
mientras que en el caso de la estructura en serie H(z) ser la suma.
Una ecuacin en diferencias puede representar un filtro FIR si no existe realimentacin,
con lo que la ecuacin 7.2 quedar de la forma:
M

y n bk x n k

(7.14)

k 0

La respuesta impulsional viene dada por los coeficientes bk, dado que la anterior
expresin representa la convolucin entre la entrada x[n] y bk. En el caso de que exista
realimentacin, la respuesta impulsional h[n] ha de ser calculada a partir de H(z), que se obtiene
de la forma expresada en la ecuacin 7.4.

7.6 CUESTIONARIO.
1.- Desarrollar los ejercicios del archivo Ejercicios Cap_07.pdf
2.- Desarrollar los ejercicios del Captulo 4: 1,3,4,6,8,13,19,20,24,25,27,46 del libro de A.V.
Oppenheim and R.W. Schafer. Discrete-Time Signal Processing. Prentice-Hall, 1989.

10

S-ar putea să vă placă și