Gáfica de la señal Escalón Unitario Contínuo, por medio de Matlab

  1. Graficar la siguiente señal en MATLAB:
Figura 1

Figura 1

  • Aunque se puede realizar una función que ejecute la gráfica de la señal Escalón Unitario, se puede utilizar diseños ya preestablecidos, funciones que se las puede cargar en Matlab, y de esta manera nos ayuda a facilitarnos la vida.
  • Pare ello cargaremos una carpeta, en la cual estan funciones necesarias para hacer gráficas y funciones correspondientes a señales fundamentales.
  • El primer paso es descargar desde internet, la carpeta que contiene funciones especiales de Matlab, la dirección es la siguiente:

http://www.4shared.com/file/8Yaf-xz0/ADSP.html

  • Uan vez descargada esa carpeta la descomprimimos y la ubicamos en el computador, para comodidad la guardamos en el escritorio.

  • Una vez que la carpeta ADSP se encuentra en el escritorio, es necesario abrir Matlab, y hacer el procedimiento necesario para que se pueda cargar esta carpeta como funciones prederteminadas de Matlab, a este procedimiento se lo conoco como «Set Path» (Establecer el camino).
  • Vamos a realizar paso a paso. Primero procedemos a la apertura de Matlab, y en la pestaña file, hacemos clic en Set Path, como lo indica la figura.
figura 2

figura 2

  • Una vez que hacemos eso, se nos abre la siguiente ventana.
Figura 3

Figura 3

  • Nos ubicamos en el sector que dice Add Folder y navegamos hasta encontar la carpeta ADSP, que en mi caso la he guardado en el Escritorio. Y la cargamos, como se muestra en la figura 4.
Figura 4

Figura 4

  • Finalmente le aplicamos Save (guardar cambios); y listo, esto hará que las funciones que estas dentro de la carpeta ADSP funcionen como funciones globales en cualquier directorio del programa.
  • Para verificar si esta funcionando correctamente la inclusión de estas funciones, nos vamos a Command Window y ponemos el comando «help ustep», que significa que va a buscar la ayuda de la función ustep (escalón unitario), si todo esta correcto aparecerá la ayuda, caso contrario, habrá que revisar ya que puede existir algún error.
Figura 5

Figura 5

  • Bueno, ahora viene lo interesante que es graficar la señal antes mensionada. A continuación les pongo el código, y la gráfica resusltante.

t = -5:.001:5; %señal desde -5 a 5, con intervalos de 0.001, para hacerla continua.
f = ustep(t); %función f, que toma la forma de ustep
plot(t,f,’LineWidt’,3,’Color’,’r’); %Trazo de la señal, con una linea de grozor 3 y color rojo
axis([-5 5 -1 2]) %redimensionamiento de la presentación del gráfico
hold on % sirve para el grafico de ustep, permanezca siempre presenta.
plot([-5 5],[0 0]) %gráfica del eje x
plot([0 0],[-1 2]) %gráfica del eje y
title(‘Gráfica de la señal Escalón Unitaría u(t)’)
xlabel(‘Variable independiente t’)
ylabel(‘u(t)’)

Figura 6

Figura 6

  • Como se puede ver es un procedimeitno sencillo, para cualquier duda o comentario, hacérmelo saber en el correo : cecarrion1@utpl.edu.ec, o en si les es posible llegar a las consultas personales.
  • A continuación realizaré otro ejercicio, en el mismo se puede detallar el poder de esta herramienta. Se nos pide graficar la siguiente señal a través de Matlab:

x(t) = u(t + 1) – 2u(t-1) + u(t-3)

  • A continuación el código con la respectiva gráfica:

t = -5:.001:5; %señal desde -5 a 5, con intervalos de 0.001, para hacerla continua.
f = ustep(t+1)-2*ustep(t-1)+ustep(t-3); %funcion f, combinacion de escalones con cambio en la variable t
plot(t,f,’LineWidt’,3,’Color’,’r’); %Trazo de la señal, con una linea de grozor 3 y color rojo
axis([-5 5 -2 2]) %redimensionamiento de la presentación del gráfico
hold on % sirve para el grafico de ustep, permanezca siempre presenta.
grid on % le ponemos rejilla, para poder apreciar los límites
plot([-5 5],[0 0]) %gráfica del eje x
plot([0 0],[-2 2]) %gráfica del eje y
title(‘Combinación de señales escalón’)
xlabel(‘Variable independiente t’)
ylabel(‘u(t)’)

Figura 7

Figura 7

36 respuestas to “Gráfica de Señales Fundamentales”

  1. Carlos said

    Oye y como se resuelven cuando están multiplicadas por otra cosa?? Por ejemplo si me piden gráficar la siguiente señal:

    x(t)=e^(-3t) u(t+2)+e^3t u(-t+2)

  2. sysutpl said

    t = -5:.01:5;
    x = (exp(-3*t).*ustep(t+2))+ (exp(3*t).*ustep(-t+2))
    plot(t,x)
    grid on

  3. edward said

    ¿cómo graficas la funcion delta dirac, doblete? por favor dime

    • sysutpl said

      puedes utilizar la función udelta, o puedes derivar la función ustep. Aunque te recomiendo que utilices udelte. Pero si quieres utilizar a través de la derivada del escalon unitario, este sería el códico

      t = -5:.01:5;
      delta1 = udelta(t); %directamente de la función
      delta2 = diff(ustep(t)); %a partir de ustep
      plot(t,delta1,t,delta2) % grafica de las dos funciones

  4. Carlos said

    Se podran graficar señales en tiempo discreto??? son las que aparecen con puntitos y rayitas…

    ejemplo

    x(n)=u(n)-2u(n-3)+u(n-5)

  5. Mateo said

    q buen post me salvaste la vida… grax!!!!!
    😀

  6. kevin said

    muchas gracias, excelente me sirvió al pelo ¡¡¡¡

  7. Luisa Fernanda said

    Hola y para aplicar la convolución o resolver cualquier tipo de integral usando estas funciones como sería? aplico la integral tal cual? o tendría q resolverla por tramos? gracias.

    • sysutpl said

      te recomiendo utilizar la función de Matlab convplot.

    • sysutpl said

      Para resolver integrales se utiliza el comando int, por ejemplo

      syms t
      x = t;
      %Integral de la función x con respecto a t
      y_1 = int(x,t) % integra indefinida
      y_2 = int(x,t,0,5) % integral definidas de 0 a 5

  8. Hola,
    Mira tengo que graficar funciones como x(t) = 2.r(t) – 2.r(t-2) – r(t+1) + r(t-3), donde r(t) es la función rampa…. He buscado y no he encontrado como hacerlo, intente integrando ustep en matlab, pero no me sale, no se si es que estoy colocando mal algo.
    Si me puedes ayudar te lo agradecería mucho.
    🙂
    q estés bien!

  9. Juan Carlos Suàrez said

    Hola. Si x(t) = 2.r(t) – 2.r(t-2) – r(t+1) + r(t-3), donde r(t) es la función rampa, còmo gràfico x(t/2)

    • sysutpl said

      Para hacer eso, seria conveniente que la conviertas en una función, ya con eso se la puede manipular de cualquier forma.

      Un ejemplo de eso puede ser

      %%%%%%%ramp_t.m%%%%%%%%%%%%%%%
      function [ x ] = ramp_t( t )

      %función que describre la sumatoria de funciones rampa,

      x = 2*uramp(t) – 2*uramp(t-2) – uramp(t+1) + uramp(t-3);

      end

      Y luego en un script de Matlab puedes usar esa función que acabas de crear.

      t = -10:.01:10;
      x1 = ramp_t(t);
      x2 = ramp_t(t/2);

      subplot(2,1,1)
      plot(t,x1)
      title(‘Gráfica de función original’)

      subplot(2,1,2)
      plot(t,x2)
      title(‘Señal expandida en el tiempo’)

      Ahí puedes confirmar el resultado, con la teoría de señales.

      Salu2.

  10. PACC said

    Hola, He estado tratando de ejecutar el comando:
    function [ x ] = ramp_t( t ) y me aparece:
    Error: Function definitions are not permitted at the prompt or in scripts.
    Que puede ser?

    • sysutpl said

      Pero la función ramp_t, no se la debe de hacer correr. Lo que haces es construir una nueva función para utilizarla en uotro scrip.

      Es decir para que funcione, debes crear un archivo, y nombrarlo con el mismo nombre de la función, es decir en este caso debes

      llamarlo ramp_t.m

      Ahora en otro programa de matlab (scrip), haces el código llamando la función que creaste anteriormente.

      t = -10:.01:10;
      x1 = ramp_t(t);
      x2 = ramp_t(t/2);

      subplot(2,1,1)
      plot(t,x1)
      title(‘Gráfica de función original’)

      subplot(2,1,2)
      plot(t,x2)
      title(‘Señal expandida en el tiempo’)

  11. como puedo graficar el pulso unitario

    • sysutpl said

      Hola
      Puedes ver la ayuda en la función impulse.

      O más sencillo aun puedes utilizar la función udelta, de las de la carpeta que está disponible en el blog.

      Una tercera forma es que a través del uso de la señal escalon, a ésta la derives usando el comando diff,

      y teóricamente la derivada del escalon te produce un impulso.

  12. pero no es inpulso es pulso unitario es la union de dos escalones y con udelta me sale un triangulo

  13. oscuro said

    hola disculpen me podria ayudar es qu aun no encuentro la funcion dirac de donde puedo bajarlo gracias

  14. HRC said

    No entiendo esto. ayuda!!!

    Es que tengo este problema:

    x(t) = r(t+3) – r(t+2) – r(t+1) + r(t-1)+-r(t-2) – r(t-3) , Donde r(t ) es la función rampa, expresar las siguientes funciones y luego graficarlas.
    1) x(t+1)
    2) x(3.t)
    3) 3.x(t/2)
    4) x’(t)

    • sysutpl said

      Tienes que convertir las sumatorias de las señales rampas, en una nueva función.

      A continuación, te coloco el código de las funciones necesarias y del porgrama final

      utilizando estas funciones.

      %%*********************************************************
      function x = rampas( t )
      %RAMPAS Summary of this function goes here
      % Para manipular la función
      % x(t) como la sumatoria de rampas
      % se la debe convertir en otra función
      % y poderla manipular

      % x(t) = r(t+3) – r(t+2) – r(t+1) + r(t-1)+- r(t-2) – r(t-3)

      x = uramp(t+3) – uramp(t+2) – uramp(t+1) + uramp(t-1) + uramp(t-2) – uramp(t-3);

      end

      %%************************************************************

      %% Programa general

      t = -10:0.01:10; % definimos el vector de tiempo
      x0 = rampas(t);
      figure(1)
      plot(t,x0)
      axis([-10 10 -1.5 1.5])
      grid on
      title(‘Señal Original’)
      xlabel(‘tiempo’)
      ylabel(‘Amplitud’)

      x1 = rampas(t+1);
      figure(2)
      plot(t,x1)
      axis([-10 10 -1.5 1.5])
      grid on
      title(‘Señal Original adelantada 1[unidade de tiempo]’)
      xlabel(‘tiempo’)
      ylabel(‘Amplitud’)

      x2 = rampas(3*t);
      figure(3)
      plot(t,x2)
      axis([-10 10 -1.5 1.5])
      grid on
      title(‘Señal Original compresa por 3’)
      xlabel(‘tiempo’)
      ylabel(‘Amplitud’)

      x3 = 3*rampas(t/2);
      figure(4)
      plot(t,x3)
      axis([-10 10 -3.5 3.5])
      grid on
      title(‘Señal Original extendida el doble en temp. y ampliada 3 veces en amp.’)
      xlabel(‘tiempo’)
      ylabel(‘Amplitud’)

      x4 = x0′;
      figure(5)
      plot(t,x4)
      axis([-10 10 -1.5 1.5])
      grid on
      title(‘Señal Original transpuesta’)
      xlabel(‘tiempo’)
      ylabel(‘Amplitud’)

      %% *************************************************************

  15. Mundo said

    disculpa como puedo graficar esto??
    x[n]=(3^n)*(u[n]-u[n-3])
    Gracias por el aporte.

  16. Jefferson said

    Excelente aporte, sin ayuda del pequeño tuturial y su carpeta no habría podido graficar la función que necesitaba, la cual era:
    f = ((t+1).^2)/2.*ustep(t+1)-(t.^2).*ustep(t)+((t-1).^2)/2.*ustep(t-1);

    y aunque no es propiamente un escalón, si que me dio dificultad graficarlo porque no sabía que debía colocar (.*). Gracias por todo!

  17. gabo said

    hola si deseo calcular laplace de x(t)=exp(-2*t)u(t-1) como se debe hacer gracias

    • sysutpl said

      La función en Laplace de Matlab no es muy versátil, posiblemente sea más conveniente trabajar con
      el software Mathematica.

      En este caso te recomiendo que calcules la función de Laplace de la señal original, es decir
      la Trans. de Laplace de f(t) = exp(-2*t)u(t). La cual es muy fácil de calcular con Matlab
      a través de:

      syms t s
      f = exp(-2*t);
      laplace(f,s)

      Y te da la respuesta:

      1/(s + 2)

      Y finalmente a esta respuesta le aplicaría la propiedad de la Tranf. de Laplace que dice que la Trans. de Laplace de
      una señal escalon unitario con retraso u(t – Tau) es igual a: exp(-Tau*s)/s.

      Entonces la respuesta sería:

      F(s) = exp(-Tau*s)/s*(s + 2).

Replica a sysutpl Cancelar la respuesta