12.07.2015 Views

6 Transformada Z. Estructuras para sistemas LIT

6 Transformada Z. Estructuras para sistemas LIT

6 Transformada Z. Estructuras para sistemas LIT

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

6 <strong>Transformada</strong> Z. <strong>Estructuras</strong> <strong>para</strong><strong>sistemas</strong> <strong>LIT</strong>6.1 ResumenLa trasformada Z constituye una generalización de la transformada de Fourier. Resulta de másutilidad en algunos casos, dado que es más manejable analíticamente, y además, converge <strong>para</strong>un mayor conjunto de secuencias que la transformada de Fourier. La transformada Z juegaen el estudio de los <strong>sistemas</strong> discretos el mismo papel que la transformada de Laplace en los<strong>sistemas</strong> analógicos.Objetivo: Aprender a manejar la <strong>Transformada</strong> Z como herramienta en el estudio de los<strong>sistemas</strong> lineales e invariantes en el tiempo. Nos centraremos en aquellos <strong>sistemas</strong> definidospor ecuaciones lineales en diferencias, así como en diferentes estructuras de realización de losmismos. El material cubierto puede ser ampliado en los capítulos 4 y 6 del libro de texto.Duración: Una sesión de dos horas.6.2 Introducción teóricaLa transformada de Fourier, estudiada en temas anteriores, consiste en la evaluación de latransformada Z sobre la circunferencia de radio unidad en el plano complejo. La motivación<strong>para</strong> el estudio de la transformada Z arranca de las autofunciones de un sistema <strong>LIT</strong>, funcionesde la forma z n . Si un sistema <strong>LIT</strong> con respuesta impulsional h[n] recibe a su entrada una señalx[n] = z n 0 su salida será:y[n] = z n 0∞∑k=−∞h(k)z −k0 (6.1)es decir, la entrada multiplicada por un número complejo de la forma ∑ k=∞k=−∞ h[k]z−k 0 . Esevalor complejo es el autovalor correspondiente a la autofunción z0 n , y corresponde a la funciónde transferencia del sistema evaluada en z 0 . La función de transferencia de un sistema se definecomo la transformada Z de su respuesta impulsional, y tiene la forma:H(z) =∞∑n=−∞h[n]z −n (6.2)85


6.2.PRÁCTICA 6. TRANSFORMADA Z. ESTRUCTURAS PARA SISTEMAS <strong>LIT</strong>Observar que <strong>para</strong> el caso en el que z = e jω la transformada Z se reduce a la transformada deFourier, que caracterizaba la respuesta de un sistema <strong>para</strong> exponenciales complejas de amplitudconstante presentes a la entrada.6.2.1 Ecuaciones en diferenciasUn sistema <strong>LIT</strong> caracterizado por una ecuación lineal en diferencias responde a la siguienterelación entre la entrada y la salida:N∑a k y[n − k] =k=0M∑b k x[n − k] (6.3)Para calcular la función de transferencia de <strong>sistemas</strong> de esa forma basta con tomar la transformadaZ en ambos lados de la igualdad y aplicar la propiedad del retardo, con lo que nosqueda:N∑a k Y (z)z −k =k=0k=0M∑b k X(z)z −k (6.4)k=0obteniendo H(z) como el cociente entre Y (z) y X(z):H(z) =∑ Mk=0 b kz −k∑ Nk=0 a kz −k (6.5)u[n]b0w[n]y[n]DDu[n-1]b 1a 1y[n-1]DDDbM-1 a M-1b a MMDu[n-M]y[n-M]Figura 6.1: Forma directa IEn la figura 6.1 se representa un posible esquema de realización de un sistema <strong>LIT</strong> definidopor la ecuación en diferencias anterior, con a 0 = 1. Los coeficientes a k representan la realimentacióndel sistema, que provoca una respuesta impulsional h[n] de longitud infinita en general.A pesar de esa longitud la salida es calculada recursivamente, con lo que no es necesaria la86


PRÁCTICA 6. TRANSFORMADA Z. ESTRUCTURAS PARA SISTEMAS <strong>LIT</strong> 6.2.convolución de la entrada con h[n]. Para obtener h[n] en función de los coeficientes a k , b k bastacon efectuar la transformada Z inversa de la función de transferencia H(z) obtenida de la formaanterior. Es decir, a partir de la ecuación en diferencias que caracteriza un sistema se puedeobtener la respuesta impulsional del mismo a través de la transformada Z , la cual tiene laforma expresada en la ecuación (6.5). Ejercicio 40 La función de transferencia de un sistema evaluada sobre la circunferenciaunidad da lugar a la respuesta en frecuencia de dicho sistema. En este ejercicio calcularemosambas respuestas <strong>para</strong> un sistema determinado.Considerar el sistema siguiente:y[n] − 0.5y[n − 1] = x[n] − 0.2x[n − 1] (6.6)Calculemos 128 valores de su respuesta en frecuencia, <strong>para</strong> frecuencias equiespaciadas entre 0y 2π:[H,w] = freqz(b,a,128,’whole’);Obtener el valor de la función de transferencia del sistema en z = e j2π24/128 , utilizando lafunción tz(). Comprobar que dicho valor es igual a uno de los valores obtenidos con freqz(),indicando cuál es la posición de ese valor en el vector H.Calcular ahora, utilizando de nuevo tz(), el valor de la <strong>Transformada</strong> Z de h[n] = δ[n − 1] −δ[n − 2] − 0.48δ[n − 3] + 0.288δ[n − 4] en z = 1.2, comprobando que vale 0. Ejercicio 41 Al igual que hicimos en la práctica 4, vamos a evaluar la transformada Z enuna serie de puntos a través de la observación de la respuesta del sistema <strong>para</strong> algunas entradasespeciales. Para ello, considerar el sistema con respuesta impulsionalh[n] = 0.03δ[n] + 0.4δ[n − 1] +0.54δ[n − 2] + 0.2δ[n − 3] −0.2δ[n − 4]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]+0.1δ[n − 5] + 0.2δ[n − 6] (6.7)Generar un conjunto de seis señales complejas de longitud 48 de la forma zk n , <strong>para</strong> los siguientesvalores de z k :z 1 = j, z 2 = 1 + j, z 3 = 1 − j, z 4 = 2, z 5 = −2, z 6 = −j.>> zetas = [j, 1+j, 1-j, 2, -2, -j];>> e1 = zetas(1).^(0:47);>> e2 = zetas(2).^(0:47);>> ...87


6.2.PRÁCTICA 6. TRANSFORMADA Z. ESTRUCTURAS PARA SISTEMAS <strong>LIT</strong>Calcular la salida del filtro <strong>para</strong> cada una de las entradas, convolucionando cada señal con elfiltro definido al comienzo:>> y1 = conv(e1,h);>> y2 = conv(e2,h);>> ...Utilizando la propiedad de las autofunciones, reflejada en la ecuación 6.1, evaluar la funciónde 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 señales.Para comprobar los resultados, repetir los cálculos utilizando la función tz().A partir de esos valores, ¿conocemos el valor de la transformada de Fourier en alguna frecuencia?6.2.2 Polos y cerosUna expresión racional en z de la forma vista en la ecuación 6.5 se puede describir tambiéncomo un conjunto de polos y ceros, siendo los ceros las raíces del polinomio del numerador y lospolos las raíces del polinomio en el denominador. Un cero en el punto z 0 indica que la salidadel sistema es nula <strong>para</strong> una entrada de la forma z n 0 , al ser el autovalor correspondiente igual acero. Un polo en el punto z 0 indica que la salida diverge <strong>para</strong> esa misma entrada. De ese modola transformada Z de h[n] se puede escribir como:H(z) = b 0a 0∏ Mk=1 (1 − c kz −1 )∏ Nk=1 (1 − p kz −1 )(6.8) Ejercicio 42 Sea un sistema definido por la siguiente ecuación en diferencias:y[n] = x[n] − x[n − 1] + 2x[n − 3] + 1.6y[n − 1] − y[n − 2] + 0.208y[n − 3] (6.9)• Obtener los vectores a y b que contienen los coeficientes a k y b k respectivamente, porcom<strong>para</strong>ción con la ecuación 6.3.• Utilizando la función roots, calcular las raíces del numerador y del denominador de H(z)(ceros y polos respectivamente). Así, por ejemplo, <strong>para</strong> calcular las raíces del polinomio1 − 2z −1 basta con hacer>> roots([1 -2])• Uno de los ceros de la función de transferencia se encuentra sobre la circunferencia unidad.Obtener la frecuencia que le corresponde.88


PRÁCTICA 6. TRANSFORMADA Z. ESTRUCTURAS PARA SISTEMAS <strong>LIT</strong> 6.2.Ahora representaremos gráficamente 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 gráfica se observan los ceros y los polos junto con la circunferencia unidad, que nossirve de referencia. Razonar si el sistema es estable, sabiendo que es causal.□ Cuestión 20 Dibujar la señal exponencial causal que se corresponde con la transformada1X(z) = en cada uno de los siguientes casos, justificando la forma en función de la1−az −1posición del cero:• a=-2• a=-1• a=-0.5• a=0.5• a=1• a=1.51□ Cuestión 21 Repetir el ejercicio anterior <strong>para</strong> X(z) =siguientes casos:(1−az −1 )(1−a ∗ z −1 )en cada uno de los• a = 0.5 + 0.5j• a = 1 √2+ 1 √2j• a = 1.5 + 1.5j89


6.2.PRÁCTICA 6. TRANSFORMADA Z. ESTRUCTURAS PARA SISTEMAS <strong>LIT</strong>b 01u[n]1/a ow[n]y[n]Da 1bDa M-1bM-1Da Mb M6.2.3 Esquemas de implementaciónFigura 6.2: Forma directa IIExisten infinitas formas de implementar un sistema definido por una ecuación en diferencias apartir de una función de transferencia dada. Una de ellas es la Forma Directa I, representada enla figura 6.1. Una estructura alternativa sería la Forma Directa II (ver figura 6.2), que minimizael número de retardos necesario. La Forma Directa II se obtiene a partir de la Forma DirectaI intercambiando las posiciones de la parte directa y de la parte realimentada, dado que cadauna de ellas representa un sistema <strong>LIT</strong>. Al intercambiarlas es posible combinar los grupos dedos retardos que actúan sobre la misma señal en uno, con el consiguiente ahorro.A partir de la expresión de la transformada Z que aparece en la ecuación (6.5) podemosobtener otras estructuras alternativas. Así, después de calcular los polos y ceros de H(z)podemos escribir el numerador y el denominador como el producto de polinomios de primer ysegundo grado, que producen una representación en cascada .H(z) =∏N sk=1b 0k + b 1k z −1 + b 2k z −21 + a 1k z −1 + a 2k z −2 (6.10)Se han combinado de dos en dos los polos y ceros reales; los polos y ceros complejos conjugadostambién se han combinado. Si el orden de numerador o denominador es impar habrá un términode orden uno en el numerador o denominador respectivamente. De este modo podemos crearuna nueva estructura compuesta por la cascada de estructuras de segundo orden, cada una delas cuales puede ser implementada a través de su forma directa II.¢ ¡ £¡£¤¥¡¥¦ h 1[n]h 2[n]h N[n]Figura 6.3: Estructura en cascada90


¡¤ ¤¢PRÁCTICA 6. TRANSFORMADA Z. ESTRUCTURAS PARA SISTEMAS <strong>LIT</strong> 6.2.La estructura en cascada no es única <strong>para</strong> un sistema determinado, dado que la agrupaciónde los polos y ceros de dos en dos puede ser modificada, así como el orden de las distintassecciones. La función de transferencia global es la misma en todos los casos, pero el ordenpuede llegar a ser importante si se tienen en cuenta efectos de cuantificación de los coeficientesutilizados en el filtro, aunque ese tema no será objeto de estudio aquí.□ Cuestión 22 Sea un sistema con función de transferencia H(z) =1Q Nk=1 (1−p kz −1 ) . Calcularel número posible de realizaciones en cascada de dicho sistema, si los N polos son complejos ylas secciones de orden dos están conformadas por los polos complejos conjugados.De igual modo podemos crear una estructura en <strong>para</strong>lelo si elegimos expresar H(z) en sudescomposición en fracciones parciales:H(z) =M−N∑k=0B r z −r +∑N rk=1A k1 − d k z + ∑N c−1k=1B k (1 − e k z −1 )(1 − d k z −1 )(1 − d ∗ k z−1 )(6.11)en donde N r es el número de polos reales y N c es el número de pares de polos complejosconjugados . Al igual que antes podemos agrupar los polos reales también de dos en dos, deforma que tengamos bloques de orden dos (excepto uno si el orden del denominador de H(z)es impar), obteniendo la siguiente ecuación:H(z) =M−N∑k=0B r z −r +∑N sk=1e 0k + e 1k z −1(1 + a 1k z −1 + a 2k z −2 )(6.12)h [n]1h [n]2¨§¨§¨§¨ ¦§¦§¦§¦h [n]N¥¤¥¢£¤Figura 6.4: Estructura en <strong>para</strong>lelo91


6.2.PRÁCTICA 6. TRANSFORMADA Z. ESTRUCTURAS PARA SISTEMAS <strong>LIT</strong>□ Cuestión 23 Si el número de retardos empleado en la forma directa II <strong>para</strong> implementar unfiltro es N, ¿cuál sería el número de retardos usado en una implementación en cascada, en laque cada una de las subsecciones de orden dos se realiza mediante la forma directa II? Repetirel razonamiento <strong>para</strong> la realización en <strong>para</strong>lelo. Ejercicio 43 En este ejercicio se tratará de implementar como realización de un sistemala forma directa II (figura 6.2), derivada a partir de la forma directa I (figura 6.1). Para ellocopiaremos primero el código de la Forma Directa I:cp ~ssd00/practica8/filtroFDI.m .Dicho código se muestra a continuación:function y=filtroFDI(b,a,x,ci)% b: coeficientes parte directa, de la forma expresada en la ecuacion 3.% a: coeficientes parte realimentada, de la forma expresada en la% ecuacion 3.% x: vector que representa la se~nal de entrada% ci: condiciones iniciales (y(-1),...,y(-N)).% y: vector que representa la senal de salida. El numero de muestras% calculadas de y sera 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)0 % hay realimentacionfor 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)];endelse % no hay realimentacionfor i=1:length(x)entradaspasadas=[x(i) entradaspasadas(1:M)];y(i)=(1/a(1))*(b*entradaspasadas’);92


PRÁCTICA 6. TRANSFORMADA Z. ESTRUCTURAS PARA SISTEMAS <strong>LIT</strong> 6.2.endendDescripción:• Dado que un filtro con realimentación tiene una respuesta impulsional de longitud infinitaen general, el número de muestras calculadas es igual a la longitud de la entrada.• Los valores de la entrada que se utilizan <strong>para</strong> calcular la salida (x[n], · · · , x[n − M] estáncontenidos en el vector entradaspasadas. Dicho vector ha de ser actualizado en cadainstante de tiempo, incluyendo un nuevo valor y descartando el más antiguo.• Los valores anteriores de la salida que se utilizan <strong>para</strong> calcular la salida actual (y[n −1], · · · , y[n − N] están contenidos en el vector salidaspasadas. Dicho vector ha de seractualizado en cada instante de tiempo, incluyendo un nuevo valor y descartando el másantiguo.• En cada instante de tiempo se calcula la salida sumando la contribución de la parte directa(parte izquierda en Figura 6.1) y de la parte realimentada (parte derecha en Figura 6.1).• Fijarse en la trasposición de los vectores <strong>para</strong> realizar el producto escalar, que permiterepresentar en una simple instrucción el conjunto de productos y sumas.Comprobar el correcto funcionamiento de la función calculando 10 muestras de la respuestaimpulsional de1H(z) =(6.13)1 − 0.5z −1Vamos a programar ahora una función que represente el mismo filtro en forma directa II.Ahora tan sólo necesitaremos almacenar un vector de N componentes <strong>para</strong> ser usado en la siguienteiteración, en vez de los dos vectores anteriores utilizados en la función anterior, querepresentaban las entradas anteriores y las salidas anteriores. El código de la función, al igualque el de filtroFDI, se encuentra en ssd00/practica8/filtroFDII.m.La nueva función, que habrá que completar en donde aparecen las líneas 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 ecuacion 3.% a: coeficientes parte realimentada, de la forma expresada en la% ecuacion 3.% x: vector que representa la senal de entrada% zi=estado inicial% zf=estado final% y: vector que representa la senal de salida. Se calcularan tantas93


6.2.PRÁCTICA 6. TRANSFORMADA Z. ESTRUCTURAS PARA SISTEMAS <strong>LIT</strong>% 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 estadoif (numretardos!=length(estado))disp(’Longitud de las condiciones iniciales incorrecta’);return;endy=zeros(1,length(x));if numretardos>Mb=[b zeros(1,numretardos-M)];endif numretardos>Na=[a zeros(1,numretardos-N)];endfor i=1:length(x)temp=...y(i)=...if numretardos==1estado=temp;elseestado=[temp estado(1:numretardos-1)];endendfzf=estado;Descripción (basada en la figura 6.2):• Esta función, al igual que filter(), evalúa la salida en un número de muestras igual ala longitud de la entrada.• La variable estado() contiene los valores almacenados en los retardos, y a partir de loscuales hay que calcular la salida. Fijarse que estado se inicializa con las condiciones94


PRÁCTICA 6. TRANSFORMADA Z. ESTRUCTURAS PARA SISTEMAS <strong>LIT</strong> 6.3.iniciales, que se corresponden con los valores que inicialmente tienen los retardos. Se hanreducido los dos vectores de la función anterior, entradaspasadas y salidaspasadas a unosolo (estado).• La variable temp representa lo que en la figura 6.2 se denota como w[n].• En cada iteración hay que actualizar el vector estado, ya que todos los valores de losretardos se desplazan un lugar.Calcular de nuevo 10 muestras de salida <strong>para</strong> la misma función de transferencia del casoanterior, demostrando que son iguales a las obtenidas anteriormente. Como condición inicialse pondrá 0.¿Qué valor se obtendrá en la salida si ponemos como estado inicial el estado final obtenidoal calcular las 10 muestras de salida anteriores, y como entrada un único cero? Razonarlo.Todas las formas de implementación vistas hasta ahora sirven <strong>para</strong> realizar un sistema, conlo que la función de transferencia ha de ser la misma en todas. En el caso de la estructura encascada, 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 ecuación en diferencias puede representar un filtro FIR si no existe realimentación, conlo que la ecuación 6.3 quedaría de la forma:y[n] =M∑b k x[n − k] (6.14)k=0La respuesta impulsional viene dada por los coeficientes b k , dado que la anterior expresiónrepresenta la convolución entre la entrada x[n] y b k . En el caso de que exista realimentaciónla respuesta impulsional h[n] ha de ser calculada a partir de H(z), que se obtiene de la formaexpresada en la ecuación 6.5.6.3 Dudas más comunes• P: No soy capaz de copiar en mi directorio el fichero que me especifican.R: Revisar la instrucción, comprobando que el camino es correcto, que aparece el lugarde destino (un . si es en el mismo directorio), y que hay los espacios correspondientes.• P: Matlab da error con alguna función hecha por nosotros.R: Comprobar que la función se encuentra en el mismo directorio desde el que estáis enMatlab. Para ello, hacer ls. Si no aparece el fichero que contiene a la función, o bientenéis que cambiar al directorio en el que se encuentra dicha función en Matlab, o bienmover la función con mv al directorio adecuado en la ventana de comandos del sistemaoperativo.95


6.4.PRÁCTICA 6. TRANSFORMADA Z. ESTRUCTURAS PARA SISTEMAS <strong>LIT</strong>6.4 Descripción funciones utilizadasfunction r = roots (v)% usage: roots (v)% For a vector v with n components, return the roots of the% polynomial v(1) * z^(n-1) + ... + v(n-1) * z + v[n].function y = poly (x)% usage: poly (x)%% If A is a square n-by-n matrix, poly (A) is the row vector of% the coefficients of det (z * eye(n) - A), the characteristic% polynomial of A.%% If x is a vector, poly (x) is a vector of coefficients of the% polynomial whose roots are the elements of x.function H = tz(b,a,z)% computes the transfer function of a filter at z.% The filter is described by the following equation:% N M% sum a(k+1) y(n-k) = sum b(k+1) x(n-k)% k=0 k=06.5 Ejercicios recomendadosSe recomienda la realización de los siguientes ejercicios de [3]:Capítulo 4: 1,3,4,6,8,13,19,20,24,25,27,4696

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!