Top Banner
1 CURSO DE SEÑALES Y SISTEMAS MAESTRIA EN INGENIERIA DE CONTROL INDUSTRIAL UNIVERSIDAD DE IBAGUE Con algunas soluciones TALLER GUIA No 9. Tema: Señales y Sistemas Discretos Docente: MSc. Ing. Ricardo E. Troncoso H. SEÑALES Y SISTEMAS EN TIEMPO DISCRETO El objetivo principal del presente taller es utilizar la teoría de las señales y los sistemas discretos en la solución de varios ejercicios. Las soluciones para los ejercicios de la parte A se realizan exclusivamente en Matlab mientras que las de los ejercicios de las partes B y C se desarrollan a “mano” y en Matlab. PARTE A. SEÑALES DISCRETAS NOTA: Indicar, comentar en su código en Matlab la versión del mismo utilizada. 8.1 Escribir la representación analítica y realizar un código en Matlab que grafique la señal discreta mostrada en la figura de abajo. Ayuda: Como ejemplo, como guía, vea al final de este taller, una de las muchas posibles maneras de describir y graficar esta señal.
25

Taller No 9 UDI A2011

Sep 29, 2015

Download

Documents

misusibu

TRANSFORMADA Z
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
  • 1

    CURSO DE SEALES Y SISTEMAS

    MAESTRIA EN INGENIERIA DE CONTROL INDUSTRIAL

    UNIVERSIDAD DE IBAGUE

    Con algunas soluciones

    TALLER GUIA No 9. Tema: Seales y Sistemas Discretos

    Docente: MSc. Ing. Ricardo E. Troncoso H.

    SEALES Y SISTEMAS EN TIEMPO DISCRETO

    El objetivo principal del presente taller es utilizar la teora de las seales y los

    sistemas discretos en la solucin de varios ejercicios. Las soluciones para los

    ejercicios de la parte A se realizan exclusivamente en Matlab mientras que las

    de los ejercicios de las partes B y C se desarrollan a mano y en Matlab.

    PARTE A. SEALES DISCRETAS NOTA: Indicar, comentar en su cdigo en Matlab la versin del mismo

    utilizada.

    8.1

    Escribir la representacin analtica y realizar un cdigo en Matlab que

    grafique la seal discreta mostrada en la figura de abajo.

    Ayuda: Como ejemplo, como gua, vea al final de este taller, una de las

    muchas posibles maneras de describir y graficar esta seal.

  • 2

    8.2

    Para la anterior seal o sea la del ejercicio No 8.1, realizar la siguiente

    operacin de desplazamiento:

    [ ] [ 1]w k v k

    Escribir la representacin analtica para la seal [ ]w k y realizar un cdigo en Matlab que grafique dicho desplazamiento o traslacin de la seal.

    8.3

    Escribir la representacin analtica y realizar un cdigo en Matlab que

    grafique la seal discreta mostrada en la figura de abajo.

    Ayuda: Nuevamente, como ejemplo, como gua, vea al final de este taller, una

    de las muchas posibles maneras de describir y graficar esta seal.

  • 3

    8.4

    Para la anterior seal o sea la del ejercicio No 8.3, realizar la siguiente

    operacin:

    [ ] 5 [ 3]x k u k Escribir la representacin analtica para la seal [ ]x k y realizar un cdigo en Matlab que grafique dicha seal discreta.

    8.5

    Una seal de tiempo discreto esta representada analticamente as:

    2( ) 10(0.9) .cos

    16 4

    k kh k

    Crear un cdigo en Matlab que grafique la seal [ ]h k . La seal se muestra a continuacin:

  • 4

    PARTE B. CONVOLUCION DISCRETA

    8.6

    La convolucin en tiempo discreto se define mediante la siguiente relacin:

    ( ) ( ) ( )n

    y k x n h k n

    Un sistema de tiempo discreto tiene como entrada ( )x k la seal mostrada:

    0, para 0

    1, para 0

    es decir, ( ) 1, para 1

    2, para 2

    0, para 3.

    k

    k

    x k k

    k

    k

  • 5

    Y si la respuesta impulso ( )h k es como la que se muestra en la siguiente

    figura, hallar la salida ( )y k del sistema ante dicha entrada ( )x k .

    Utilizar tres mtodos: Mtodo analtico, el tabular y el computacional.

    Ayuda: En las soluciones, al final de las preguntas, encontrara como se usan

    estos mtodos de convolucin.

    0, para 0

    1, para 0

    es decir, h( ) 2, para 1

    3, para 2

    0, para 3.

    k

    k

    k k

    k

    k

  • 6

    8.7

    La respuesta impulso ( )h k puede determinarse por medio de la convolucin

    discreta cuando la seal de entrada ( )x k y la seal de salida ( )y k del sistema son conocidas.

    As, dadas ( )x k y ( )y k , encuentre la respuesta impulso ( )h k :

    1 para 0

    1 para 0 1 para 1

    1 para 1 3 para 2( ) ( )

    2 para 2 1 para 3

    0 para otro valor de 6 para 4

    0 para otro valor de

    k

    k k

    k kx k y k

    k k

    k k

    k

    Realizarlo por los 3 mtodos; tome como ejemplo el ejercicio anterior, 8.6.

  • 7

    PARTE C. SOLUCION DE ECUACIONES DE DIFERENCIAS Y

    CALCULO DE LA RESPUESTA DE UN SISTEMA DE TIEMPO

    DISCRETO UTILIZANDO LA TRANSFORMADA Z.

    Utilizando el Symbolic Math Toolbox es possible hallar la transformada z y la transformada z inversa de una funcin. Como ejemplo, hallemos la

    transformada z y su inversa de la siguente funcin:

    ( ) 5 3kv k k

    El cdigo en Matlab es el siguiente:

    clear all;

    close all;

    clc;

    syms k

    fn = (5^k)+ k + 3;

    'Transformada Z'

    Z = ztrans(fn);

    pretty(Z)

    'AntiTransformada Z'

    Fz = iztrans(Z);

    pretty(Fz)

    figure(1)

    subplot(211)

    ezplot(fn)

    subplot(212)

    ezplot(Fz)

    La respuesta que da el Matlab son las siguientes, incluyendo las graficas:

  • 8

    ans =

    Transformada Z

    z z z

    1/5 --------- + -------- + 3 -----

    1/5 z - 1 2 z - 1

    (z - 1)

    ans =

    AntiTransformada Z

    n

    5 + n + 3

  • 9

    8.8

    Se conoce la ecuacin de diferencias. Las condiciones iniciales son

    diferentes de cero.

    Resolver (unicamente en Matlab) la siguiente ecuacin de diferencias para

    0,1,...,10n usando la funcin recur que se le entrega a usted.

    donde

    y las condiciones iniciales son ( 2) 1y , ( 1) 2y , y ( 2) 0x ,

    ( 1) 0x .

    La ecuacin recursiva que se utiliza en el cdigo es:

    1 0

    ( ) ( 1) ( 1)N M

    i i

    i i

    y n a y n b x n

    Nota: la funcin recur , que se va a utilizar exclusivamente para esta clase de

    ecuaciones de diferencias, debe estar ubicada en la subcarpeta work del

    Matlab.

    Ayuda: En las soluciones, al final de las preguntas, encontrara el cdigo que

    resuelve, soluciona, la anterior ecuacin de diferencias.

    ( ) 0.6 ( 1) 0.08 ( 2) ( 1)y n y n y n x n

    1 para 0,1,2,...( )

    0 para 0

    kx n

    k

  • 10

    8.9

    Resolver la siguiente ecuacin de diferencias (unicamente en Matlab) para

    0,1,...,50n usando la funcin recur tal como se hizo en el ejercicio anterior.

    donde ( )x n es la funcin escaln o paso unitaria.

    Las condiciones iniciales son ( 2) 2y , ( 1) 3y , y ( 2) 0x ,

    ( 1) 0x .

    8.10

    Como se conoce la respuesta impulso del sistema y la entrada al mismo

    entonces se puede utilizar la convolucin y tambien la transformada z y su

    inversa. Las condiciones iniciales deben ser iguales a cero

    Un sistema de tiempo discreto tiene como condiciones iniciales

    (2) (1) 0.y y

    La respuesta impulso del sistema es ( ) 5 0.4 0.2 ( )k kh k u k . La seal de entrada ( ) ( )x k u k es un paso unitario.

    Hallar la salida ( )y k del sistema

    a) Usando la convolucin (unicamente en Matlab)

    b) Utilizando la funcin filter (unicamente en Matlab). Debe hallar antes

    ( ) ( ) ( )Y z H z X z , teniendo la precaucin de trabajar con ( )Y z

    z

    c) Usando la transformada z y su inversa (unicamente a mano)

    No olvide que ( ) ( ) ( )Y z X z H z y que 1 1( ) Z ( ( )) ( ( ) ( ))y k Y z Z X z H z

    Ayuda: En las soluciones, al final de las preguntas, encontrara los cdigos para

    las partes a) y b).

    ( ) 1.5 ( 1) 0.7 ( 2) ( )y n y n y n x n

  • 11

    8.11

    Hallar la salida ( )y k de un sistema conociendo que la entrada al mismo es

    1, para 0,1,2,...( )

    0, para 0

    kx k

    k

    y que su respuesta impulso es

    ( ) (0.9) (0.8)k kh k

    Resolver :

    a) Usando la convolucin (unicamente en Matlab)

    b) Utilizando la funcin filter (unicamente en Matlab). Debe hallar antes

    ( ) ( ) ( )Y z H z X z , teniendo la precaucin de trabajar con ( )Y z

    z

    c) Usando la transformada z y su inversa (unicamente a mano)

    No olvide que ( ) ( ) ( )Y z X z H z y que 1 1( ) Z ( ( )) ( ( ) ( ))y k Y z Z X z H z

    8.12

    Se conoce la funcin de transferencia del sistema, obtenida a partir de una

    ecuacin de diferencias, con condiciones iniciales iguales a cero

    Hallar la respuesta paso unitaria de un sistema de tiempo discreto que tiene

    como modelo matemtico la siguiente ecuacin de diferencias;

    Resolverlo a mano y en Matlab.

    Ayuda: Puede usar la funcin dstep o la funcin filter del Matlab.

    ( ) 0.6 ( 1) 0.08 ( 2) ( 1)y k y k y k x k

  • 12

    SOLUCIONES

    PARTE A. SEALES DISCRETAS

    1. La grafica se muestra nuevamente en la siguiente figura:

    La representacin analtica de esta seal es:

    0, si 2

    [ ] 2 4, si 2 4

    4 , si 4

    k

    v k k k

    k k

    Uno de los muchos cdigos en Matlab que se pueden escribir para hacer una

    representacin grafica de [ ]v k es el siguiente:

    misusibu1213Nota adhesivaSOLUCIONES

  • 13

    % Ejercicio No 8.1

    % Se utilizo la VERSION 7.2 de Matlab.

    % Seal discreta No 1

    close all;

    clear all;

    clc;

    k1 = -6:1;

    v1 = zeros(size(k1));

    k2 = 2:3;

    v2 = 2 * k2 - 4;

    k3 = 4:8;

    v3 = 4 - k3;

    k = [k1 k2 k3];

    v = [v1 v2 v3];

    figure(1)

    stem(k,v)

    % Para cambiar el color, el tamao

    % de las lineas, el tipo de letra, etc,

    % en la pestaa o menu view pueden abrir el

    % el Property Editor

    xlabel('k')

    ylabel('v(k)')

    title('Ejercicio No 8_1')

    grid

    axis([-8 10 -6 4])

    8.2 Ustedes lo solucionan.

    8.3 La grafica dada se muestra en la figura:

  • 14

    Su representacin analtica es:

    1, para 0,1,2,3,...[ ]

    0, para 0

    ku k

    k

    Un posible cdigo que grafique esta funcin o seal, sin usar una funcin de

    Matlab creada especficamente para tal propsito (como la funcin stepfun),

    sera el siguiente:

    % Ejercicio No 8.3

    % Se utilizo la VERSION 7.2 de Matlab.

    % Seal discreta No 3

    k = -10:1:20; % k = [-10 -9...19 20]

    q = size(k); % Tamao del arreglo (size of array),1 a 31

    u = zeros(q(1), q(2)); % u = [0 (en n = -10)0...0 0 (en n = 20)]

    q = size(11:31); % Tamao del arreglo (size of array),1 a 21

    u(11:31) = ones(q(1), q(2));% u = [1 (en n=11)1...1 1 (en n=31)]

  • 15

    % Se grafica la secuencia discreta (discrete sequence or "stem"

    plot)

    stem(k,u);

    axis([-10, 20, -1, 2])

    xlabel('numero de muestras, k')

    ylabel('u[k]')

    title('Ejercicio No 8_3')

    grid

    8.4 Ustedes lo solucionan.

    8.5 Ustedes encuentran la solucin.

  • 16

    PARTE B. CONVOLUCION DISCRETA

    8.6

    Mtodo 1: Solucin analtica.

    Ahora desarrollamos cada trmino:

    (0) ( 1) (1) ( ) (1) ( 1) (2) ( 2) (0) ( 3)h k h k h k h k h k

    ( ) ( 1) ( 1) (0) ( ) (1) ( 1) (2) ( 2) (3) ( 3)y k x h k x h k x h k x h k x h k

    0 ( ) ( 1) 2 ( 2) 0h k h k h k

  • 17

    ( ) :h k

    ( 1) :h k

  • 18

    2 ( 2) :h k

    Luego sumamos punto a punto para obtener ( ) :y k

  • 19

  • 20

    Entonces ( )y k , la salida (respuesta) del sistema es:

    Mtodo 2: Solucin usando una tabulacin.

    0, para 0

    1, para 0

    1, para 1( )

    3, para 2

    1, para 3

    6, para 4

    k

    k

    ky k

    k

    k

    k

  • 21

    De las sumas diagonales obtenemos la salida ( )y k con la siguiente

    secuencia:

    Mtodo 3: Solucin computacional (utilizando el Matlab).

    % Ejercicio No 8.6

    % Se utilizo la VERSION 7.2 de Matlab.

    % La convolucin discreta.

    % Seal de entrada: x(k) = [1, 1, 2]

    % Seal de respuesta impulso: h(k) = [1, -2, 3]

    % Hallar la salida (respuesta) del sistem ausando la convolucion

    k = 0:1:4;

    x = [1, 1, 2];

    h = [1, -2, 3];

    y = conv(x,h);

    stem(k,y);

    axis([-1, 6, -4, 8]);

    xlabel('numero de muestras, k');

    ylabel('y(k)');

    title('Ejercicio No 8_6. Convolucion Discreta');

    grid;

    La grafica se puede observar en la siguiente figura:

    (0) 1

    (1) 1

    (2) 3

    (3) 1

    (4) 6

    (5) 0

    (6) 0,...

    y

    y

    y

    y

    y

    y

    y

  • 22

    8.7 Ustedes lo desarrollan.

  • 23

    PARTE C. SOLUCION DE ECUACIONES DE DIFERENCIAS Y

    CALCULO DE LA RESPUESTA DE UN SISTEMA DE TIEMPO

    DISCRETO UTILIZANDO LA TRANSFORMADA Z.

    8.8

    % Ejercicio No 8.8

    % Se utilizo la VERSION 7.2 de Matlab.

    % solucion de la ecuacin de difeencias

    % y(n)-0.6y(n-1)+0.08y(n-2) = x(n-1)

    % usando la funcion recur

    close all;

    clear all;

    clc;

    a = [-06 0.08]; % a = [a1 a2 ... aN]

    b = [0 1]; % b = [b0 b1 ... bM]

    x0 = 0; % condiciones iniciales x(-2)=x(-1)=0

    y0 = [1 2]; % condiciones iniciales y(-2)= 1, y(-1)=2

    n = 0:10;

    x = ones(1,11); % x(n) es una seal paso unitaria

    y = recur(a, b, n, x, x0, y0)

    % este vector y contiene los valores de y(n)para n= 0, 1, ..., 10.

    8.9 Ustedes solucionan el ejercicio.

    8.10

    a) % Ejercicio No 8.10a % Se utilizo la VERSION 7.2 de Matlab.

    % la entrada es una seal paso unitaria

    % la respuesta impulso es h(k) = 5[(0.4)^k - (0.2)^k]

    % Hallar la salida y(k) usando la CONVOLUCION

    close all;

    clear all;

    clc;

    k = 0:35;

    x = ones(1,36);

    h = 5*(0.4).^k - 5*(0.2).^k;

    y = conv(x,h);

    y = y(1:length(k))

    stem(y)

  • 24

    b) % Ejercicio No 8.10b

    % Se utilizo la VERSION 7.2 de Matlab.

    % la entrada es una seal paso unitaria

    % la respuesta impulso es h(k) = 5[(0.4)^k - (0.2)^k]

    % y(z)/z = z/z^2-0.6z+0.08

    % Hallar la salida y(k) usando la funcion filter

    close all;

    clear all;

    clc;

    syms k

    h = 5*[(0.4)^k - (0.2)^k];

    Hz = ztrans(h)

    simple(Hz)

    % escoja combine(trig) y divida todo por el coeficiente

    % que acompaa a la potencia mas alta de z, en este caso

    % se obtiene 25*z/(25*z^2-15*z+2), entonces se divide por 25

    % para obtener z/z^2 - 0.6z + 0.08

    % Recuerdan el ejercicio No 8.8 !!

    k = 0:1:35;

    b = [0, 1, 0];

    a = [1, -0.6, 0.08];

    x = [ones(size(k))];

    y = filter(b,a,x);

    plot(k,y,'b')

    stem(y)

    grid;

  • 25

    Compare las dos graficas, una se obtuvo usando conv y la otra utilizando

    filter.

    8.11 Ustedes lo resuelven.

    8.12 Ustedes lo solucionan.

    NOTA: El Matlab es una poderosa herramienta computacional pero el

    ingeniero de control debe estar en capacidad de resolver a mano algunos problemas que se le plantean. Cuando el problema implique clculos tediosos

    y/o complicados entonces si se debe acudir a la ayuda del Matlab.

    MSc. Ing. RICARDO E. TRONCOSO H.

    Feriam Sidera Vrtice

    O.D