lab_07_pds_z_15_i

10
1 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 SEÑALES 7.1 OBJETIVO Aprender a utilizar la Transformada Z como herramienta de análisis de sistemas discretos lineales e invariantes en el tiempo (SDLIT), orientándonos hacia los sistemas discretos definidos por ecuaciones lineales en diferencias, así como las diferentes estructuras de realización de los mismos. 7.2 EQUIPOS Y MATERIALES REQUERIDOS El equipo de experimentación 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. Librerías y archivos de soporte. 7.4 ASPECTOS TEORICOS La Transformada Z es una versión generalizada de la Transformada de Fourier. Así como la forma de la Transformada de Fourier, nos permite representar a una señal del dominio del tiempo en términos de sus componentes de frecuencia en vez de accesar a los valores de la señal en términos de n, un índice discreto relacionado al tiempo, nos puede hacer conocer la respuesta de la señal para una frecuencia dada. La Transformada Z sirve para dos propósitos. Primero, proporciona una manera conveniente de anotar los efectos de los filtros. Hasta el momento, hemos utilizado los coeficientes dados por la función 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 notación 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 razón, H(z) es también llamada función de transferencia. En lugar de utilizar ax[n - k] en la ecuación, 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) = az 0 + bz -1 + cz -2 + dz -3 . Un segundo propósito de la Transformada Z es decirnos acerca de la estabilidad del filtro, la misma que será tratado en el presente laboratorio. Por definición, la Transformada Z de una señal discreta x[n] es: LABORATORIO No.7: TRANSFORMADA Z

Upload: jhordan-raul-chavez-yzquierdo

Post on 06-Nov-2015

7 views

Category:

Documents


0 download

TRANSCRIPT

  • 1

    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

    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:

    LABORATORIO No.7: TRANSFORMADA Z

  • 2

    [ ] nn

    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:

    0 0

    [ ] [ ]N M

    k k

    k k

    a y n k b 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:

    0 0

    N Mk k

    k k

    k k

    a Y z z b X z z

    (7.3)

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

    0

    0

    Mk

    k

    k

    Nk

    k

    k

    b z

    H z

    a z

    (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).

  • 3

    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)

  • 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]

    Generar un conjunto de seis seales complejas de longitud 48 de la forma n

    kz , 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] = 0

    nz , su salida ser la reflejada en la

    ecuacin:

    0 0n k

    k

    y n z h k z

    (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 0

    nz , 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:

    1

    1

    1

    0 1

    1

    1

    M

    o kk

    N

    kk

    b c zH z

    a p z

    (7.8)

    Ejercicio 7.3

    Sea un sistema definido por la siguiente ecuacin en diferencias:

  • 5

    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 ak 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

    11

    1X z

    az

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

    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:

    1 * 1

    1

    1 1X z

    az a z

    en cada uno de los siguientes casos:

    0.5 0.5

    1 1

    2 2

    1.5 1.5

    a j

    a j

    a j

  • 6

    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.

    1 2

    0 1 2

    1 21 1 21

    sN

    k k k

    k k k

    b b z b zH z

    a z a 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 11

    1

    1

    sN

    k k

    H zp z

    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:

    1

    1 1 * 10 1 1

    1

    1 1 1

    r rN NM Nk kr k

    r

    k k kk k k

    B e zAH z B z

    d z d z d z

    (7.11)

  • 7

    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:

    1

    0 1

    1 20 1 1 21

    sNM Nr k k

    r

    k k k k

    e e zH z B z

    a z a z

    (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)

  • 8

    if N>0 % 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

    else % no hay realimentacion

    for i=1:length(x)

    entradaspasadas=[x(i) entradaspasadas(1:M)];

    y(i)=(1/a(1))*(b*entradaspasadas);

    end

    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:

    11

    1 0.5H z

    z

    (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.

  • 9

    % 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.

  • 10

    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:

    0

    M

    k

    k

    y n b x n k

    (7.14)

    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.