Generación de Señales en MATLAB
Generación de Señales en MATLAB
1
                  GENERACIÓN DE SEÑALES BÁSICAS CON MATLAB®
1. OBJETIVOS
2. JUSTIFICACIÓN
3. MARCO TEÓRICO
Una manera de clasificar señales se basa en cómo se definen estas en función del tiempo.
En este contexto, una señal x (t ) se dice será una señal en tiempo continuo si está definida
para todo tiempo t. La figura 1a representa un ejemplo de una señal en tiempo continuo cuya
amplitud o valor varía continuamente en el tiempo. Las señales en tiempo continuo surgen
naturalmente cuando una forma de onda física se convierte en una señal eléctrica,
conversión que se realiza por medio de un transductor.
Por otra parte, una señal en tiempo discreto x [n] se define sólo en instantes de tiempo
discreto, la figura 1b representa un ejemplo de ello. De tal modo, en este caso la variable
independiente tiene únicamente valores discretos, los cuales suelen estar espaciados de
manera uniforme. Una señal en tiempo discreto se deriva a menudo de una señal en tiempo
continuo, muestreándola a una tasa uniforme.
                                                                                                Página 1 de 27
                        Figura 1. Señal en tiempo continuo . Señal en tiempo discreto
Donde T es una constante positiva y q es cualquier número entero positivo. El valor más
pequeño de T que cumple la ecuación anterior se llama periodo fundamental. Por
consiguiente, el periodo fundamental T define la duración de un ciclo completo de x ( t ). El
recíproco de T se denomina frecuencia fundamental, f ; está describe con qué frecuencia la
misma señal periódica se repite. De este modo:
                                                            1
                                                       f=
                                                            T
La frecuencia f se mide en Hertz (Hz) o ciclos por segundo. La frecuencia angular, medida
en radianes por segundo, está definida por:
     2π
ω=
     T
                                                                                                   Página 2 de 27
factores enteros comunes diferentes de 1, entonces T =rT 1 es el periodo fundamental de la
suma x 1 ( t ) + x 2 ( t ).
Ahora bien, cualquier señal para la cual no hay valor de T que cumpla la condición de la
ecuación x ( t )=x ( t+ qT ) para todo t, recibe el nombre de señal aperiódica o no periódica.
Donde N es un entero positivo. El valor más pequeño del entero N para el cual se satisface
la ecuación anterior recibe el nombre de periodo fundamental de la señal en tiempo discreto
x [ n ]. La frecuencia angular fundamental medida en radianes de x [ n ] está definida por:
                                                      2π
                                                 Ω=
                                                      N
                                                                                               Página 3 de 27
    Figura 2. Onda cuadrada con amplitud y periodo . Pulso rectangular de amplitud y duración . Onda
 cuadrada en tiempo discreto que alterna entre y . Señal en tiempo discreto aperiódica compuesta por tres
                                       muestras diferentes de cero.
   3.3.   Cómo utilizar MATLAB® con señales de tiempo continuo
Una señal de tiempo continuo x (t ), dada por una expresión matemática puede definirse y
desplegarse mediante MATLAB® y graficar x (t ) contra t, para un intervalo de valores de t.
Para mostrar su uso, considere la señal x (t ) dada por:
                                           x ( t )=e−0.1t sin   ( 23 t )
Así, por ejemplo, para un intervalo entre 0 y 30 segundos, con incrementos de 0.1 segundos,
los comandos de MATLAB® para generar x (t ) son:
                                        t = 0:0.1:30;
                                        x = exp(-0.1*t).*sin(2/3*t);
                                        plot(t,x)
                                        axis([0 30 -1 1])
                                        grid
                                        xlabel('Time (sec)')
                                        ylabel('x(t)')
                                                                                                Página 4 de 27
Los valores de tiempo para los que x (t ) se grafica, se almacenan como elementos en el
vectort. Cada una de las expresiones matemáticas a graficar crea un vector con elementos
iguales a los de la expresión evaluada en los valores de tiempo correspondientes. Los
vectores resultantes deben multiplicarse, elemento por elemento, para definir el vector x.
Para hacer las operaciones elemento por elemento se necesita un punto antes del operador.
Entonces, mediante el comando plot(t,x), x se grafica contra t. El comando axis se
utiliza para sobrescribir los valores predeterminados (por lo general, los predeterminados son
aceptables, y este comando no se necesita). Es importante destacar que el uso del comando
axis varía según la versión de MATLAB® que se utilice.
Se dice que la variable de tiempo t es una variable de tiempo discreto, si t sólo toma los
valores discretos t=t n para algún intervalo de valores enteros de n. Por ejemplo, t podría
tomar los valores enteros t=0,1,2 …; es decir, t=t n=n para n=0 , 1, 2 , ….
Una señal de tiempo discreto es una señal que es una función de la variable de tiempo
discreto t n; en otras palabras, una señal de tiempo discreto tiene valores (está definida) sólo
                                                                                               Página 5 de 27
en los puntos de tiempo discreto t=t n, donde n toma sólo valores enteros. Las señales de
tiempo discreto surgen en muchas áreas de la ingeniería, ciencia y economía, y suelen
representarse como x [n], esta notación sugiere entonces que la variable entera n
corresponde a los instantes de tiempo t n. Para graficar con MATLAB® la señal de la figura 1
en tiempo discreto basta con definir el intervalo de tiempo con valores enteros y utilizar el
comando stem para graficar; los comando en MATLAB® para generar x [n] son:
                                       n = 0:30;
                                       x = exp(-0.1*n).*sin(2/3*n);
                                       stem(n,x)
                                       axis([0 30 -1 1])
                                       grid
                                       xlabel('Time (sec)')
                                       ylabel('x[n]')
                                                                                               Página 6 de 27
La caja de herramientas ADSP (Analog and Digital Signal Processing) es un conjunto de
archivos-m de MATLAB® (con extensión .m) que se encuentra disponible en la red
desarrollada por el autor Ashok Ambardar que cuenta con unas funciones que permiten la
generación de señales de forma sencilla; la librería puede descargarse de varios servidores
en la red; sin embargo, a continuación, se relaciona el enlace oficial para su descarga desde
el repositorio del doctor Ambardar:
               http://www.ece.mtu.edu/faculty/akambard/book/adsp_mfiles.zip
                http://www.ece.mtu.edu/faculty/akambard/book/adsp_guis.zip
             addpath('C:\Program Files\MATLAB\R2016a\toolbox\adsp')
             savepath
             addpath('C:\Program Files\MATLAB\R2016a\toolbox\gui')
             savepath
Es importante mencionar que la función addpath recibe como parámetro la ruta exacta
donde se encuentran las carpetas “adsp” y “gui” en el computador.
Esta caja de herramientas es para PC compatibles con MATLAB® y también puede usarse
en plataformas Unix (convirtiendo los archivos-m usando el recurso dos2unix), incluyendo
IOS. La caja de herramientas ADSP está diseñada para trabajar con todas las versiones
(para estudiante o profesional) de MATLAB® v4 o superior.
4. TRABAJO PREVIO
                                                                                               Página 7 de 27
   e. Defina: Muestreo, cuantización y codificación.
   f. ¿Qué es un sistema de control? ¿Cuáles son sus características?
   g. ¿Qué se conoce como telemetría (sensado remoto)?
5. DESARROLLO DE LA PRÁCTICA
Sintaxis
    square(t,duty)
Descripción
square genera una onda cuadrada con un período de 2 π para los elementos del vector de
tiempo t, esta onda cuadrada tiene picos de ± 1. El parámetro duty es opcional y permite
definir el ciclo de trabajo y es un número entre 0 y 100 que representa el porcentaje del
periodo en el que la señal es positiva.
                                                                                              Página 8 de 27
                                      En Tiempo Discreto
                                                Amplitud ( A)                                 1
                                               Frecuencia (f )                            0.125
          Parámetros
                                                Ciclo útil (D)                               50
                                                 Tiempo (n)                              0 ≤ n ≤24
                                          Comandos
%% Onda Cuadrada Tiempo Discreto
A = 1; %Amplitud
f = 0.125; %Frecuencia Fundamental
T = 3*(1/f); %Número de Periodos a Graficar
duty = 50; %Ciclo útil
n = 0:T; %Tiempo de Simulación
x = A*square(2*pi*f*n,duty); %Generación de Señal
stem(n,x),grid on,ylim([-1.1 1.1]) %Grafica
                                               Gráfica
                                                                                              Página 9 de 27
                          Generación de una señal Diente de Sierra
Sintaxis
      sawtooth(t,width)
Descripción
Sawtooth genera una onda de diente de sierra con un período de 2 π para los elementos
del vector de tiempo t, sawtooth(t)crea una onda de diente de sierra con picos de ± 1. La
onda de diente de sierra se define para ser −1 en múltiplos de 2 π y aumentar linealmente
con el tiempo con una pendiente de 1/ π. El parámetro width es opcional y permite modificar
la señal; width es un parámetro escalar entre 0 y 1 que determina el punto entre 0 y 2 π en
que se produce el máximo. La función crece desde −1 a +1 en el intervalo de 0 a 2 π∗width;
luego, disminuye linealmente desde +1 a −1 en el intervalo de 2 π∗width a 2 π. Por lo tanto,
un parámetro de 0.5 especifica una onda triangular estándar, simétrica respecto al instante
de tiempo π con pico a pico de amplitud de 1.
                                                                                               Página 10 de 27
                                      En Tiempo Discreto
                                             Amplitud ( A)                                1
                                            Frecuencia (f )                            0.125
        Parámetros
                                            Ancho (width)                                0.5
                                              Tiempo (n)                              0 ≤ n ≤24
                                          Comandos
%% Onda Diente de Sierra Tiempo Discreto
A = 1; %Amplitud
f = 0.125; %Frecuencia Fundamental
T = 3*(1/f); %Número de Periodos a Graficar
width = 0.5; %Ancho
n = 0:T; %Tiempo de Simulación
x = A*sawtooth(2*pi*f*n,width); %Generación de Señal
stem(n,x),grid on,ylim([-1.1 1.1]) %Grafica
                                               Gráfica
                                                                                              Página 11 de 27
                              Generación de una señal Senoidal
Sintaxis
      sin(t)
      cos(t)
Descripción
sin(t)y cos(t)devuelve el seno y coseno de los elementos de t respectivamente. Estas
funciones operan cada elemento presente una matriz. Las funciones aceptan dos categorías
de valores de entrada: reales y complejas. Para entradas reales de t en el intervalo [-inf,
inf] las funciones devuelven valores reales en el intervalo [-1, 1]. Para valores
complejos de t, las funciones devuelven valores complejos. Es importante mencionar que
todos los ángulos que pueda representar están en radianes.
                                                                                               Página 12 de 27
phi = pi/2; %Desfase en radianes
Fs = 10000; %Frecuencia de Muestreo
T = 3*(1/f); %Número de Periodos a Graficar
t = 0:1/Fs:T-1/Fs; %Tiempo de Simulación
x = A*sin(2*pi*f*t+phi); %Generación de Señal
plot(t,x),grid on,ylim([-1.1 1.1]) %Grafica
                                               Gráfica
                                      En Tiempo Discreto
                                             Amplitud ( A)                                1
                                            Frecuencia (f )                             0.125
        Parámetros
                                             Desfase (∅)                                 π /2
                                              Tiempo (n)                              0 ≤ n ≤24
                                          Comandos
%% Onda Senoidal Tiempo Discreto
A = 1; %Amplitud
f = 0.125; %Frecuencia Fundamental
phi = pi/2; %Desfase en radianes
T = 3*(1/f); %Número de Periodos a Graficar
n = 0:T; %Tiempo de Simulación
x = A*cos(2*pi*f*n-phi); %Generación de Señal
stem(n,x),grid on,ylim([-1.1 1.1]) %Grafica
                                               Gráfica
                                                                                              Página 13 de 27
              Generación de una señal Exponencial Creciente y Decreciente
Sintaxis
      exp(t)
      abs(x)
      real(x)
      imag(x)
      atan(x)
Descripción
exp(t)devuelve el exponencial e t para cada elemento de un array t. Para los elementos
complejos donde z=x +iy, devuelve la exponencial compleja e z =e t (cos y+ isin y ).
Para generar una señal creciente los valores del vector t deben ser positivos (exp(t)) y en
para el caso de una señal exponencial decreciente los valores de t deben ser negativos
exp(-t).
También es posible generar una señal exponencial con base diferente al número de Euler,
para ello se debe seguir la siguiente sintaxis: r.^t, donde r es un número real.
NOTA: En el caso en donde z es puramente imaginaria la señal definida será una señal
compleja cuyas partes real e imaginaria son cos ( ω0 t ) y sin ( ω 0 t ) respectivamente; y tomando
como base el teorema de Euler es posible definir:
                                         j ω t +φ )                               j ω t +φ )
                A∗cos ( ω 0 t +φ )= A∗ℜ{e (     0
                                                    } y A∗sin ( ω 0 t +φ ) =A∗ℑ {e (0
                                                                                             }
              Teoría de Señales y Sistemas – Lab01, Generación De Señales Básicas Con MATLAB®
                                      (@Autor Ángelo Joseph Soto Vergel)
                                                                                                Página 14 de 27
Donde A es real y “ ℜ” se lee “la parte real de” e “ ℑ” se lee “la parte imaginaria de”. Este tipo
de señales por su naturaleza compleja requiere de dos gráficas para representarlas
correctamente, una para la parte real (haciendo uso del comando real que retorna la parte
real de una expresión compleja) y otra para la parte imaginaria (haciendo uso del comando
imag que retorna la parte imaginaria de una expresión compleja), o bien, una para el módulo
(haciendo uso del comando abs que retorna la magnitud de un número complejo) y otra para
el    argumento    (haciendo      uso    del    comando       atan      siguiente     la    sintaxis
atan(imag(x)/real(x))).
                                     En tiempo Continuo
                                                  Base (r)                           1.5
           Parámetros
                                                Tiempo (t)                        0 ≤ t ≤10
                                          Comandos
%% Onda Exponencial en Tiempo Continuo
Fs = 10000; %Frecuencia de Muestreo
t = 0:1/Fs:10; %Tiempo de Simulación
x1 = exp(t); %Generación de Señal
subplot(2,1,1),plot(t,x1),grid on %Grafica
r = 1.5;
x2 = r.^(-t); %Generación de Señal
subplot(2,1,2),plot(t,x2),grid on %Grafica
                                                 Gráfica
                                        En Tiempo Discreto
                                                  Base (r)                                   1.5
           Parámetros
                                                Tiempo (n)                                0 ≤ n ≤10
                                            Comandos
%% Onda Exponencial en Tiempo Discreto
n = 0:10; %Tiempo de Simulación
x1 = exp(n); %Generación de Señal
subplot(2,1,1),stem(n,x1),grid on %Grafica
              Teoría de Señales y Sistemas – Lab01, Generación De Señales Básicas Con MATLAB®
                                      (@Autor Ángelo Joseph Soto Vergel)
                                                                                                Página 15 de 27
r = 1.5;
x2 = r.^(-n); %Generación de Señal
subplot(2,1,2),stem(n,x2),grid on %Grafica
                                               Gráfica
                                               Gráfica
            Teoría de Señales y Sistemas – Lab01, Generación De Señales Básicas Con MATLAB®
                                    (@Autor Ángelo Joseph Soto Vergel)
                                                                                              Página 16 de 27
                       Señal Exponencial Compleja en Tiempo Discreto
                                                                  π
                                                         (
                                                         j 2 n+
                                                                  4   )
                                                x [ n ] =e
                                                Comandos
%% Onda Exponencial Compleja en Tiempo Discreto
n = -1.5*pi:0.1:1.5*pi; %Tiempo de Simulación
x = exp(1j.*(2.*n+(pi/4))); %Generación de Señal
xRE = real(x); %Cálculo de la parte Real de x[n]
xIM = imag(x); %Cálculo de la parte Imaginaria de x[n]
xMAG = abs(x); %Cálculo de la Magnitud de x[n]
xARG = atan(imag(x)./real(x)); %Cálculo del Argumento de x[n]
subplot(2,2,1),stem(n,xRE); grid on, ylim([-2 2])%Gráfica
xlabel('Tiempo (s)'),ylabel('Amplitud'), title('Parte Real de x[n]')
subplot(2,2,2),stem(n,xIM); grid on, ylim([-2 2])%Gráfica
xlabel('Tiempo (s)'),ylabel('Amplitud'), title('Parte Imaginaria de x[n]')
subplot(2,2,3),stem(n,xMAG); grid on, ylim([-2 2])%Gráfica
xlabel('Tiempo (s)'),ylabel('Amplitud'), title('Magnitud de x[n]')
subplot(2,2,4),stem(n,xARG); grid on, ylim([-2 2])%Gráfica
xlabel('Tiempo (s)'),ylabel('Amplitud'), title('Argumento de x[n]')
NOTA: Observe que la variable de tiempo n se definió para números decimales, lo cual es incorrecto; sin
embargo, se hizo de esta manera solamente para mostrar la forma discretizada de la señal de tiempo continuo.
                                                  Gráfica
               Teoría de Señales y Sistemas – Lab01, Generación De Señales Básicas Con MATLAB®
                                       (@Autor Ángelo Joseph Soto Vergel)
                                                                                                 Página 17 de 27
                               Generación de una señal Escalón
Sintaxis
      heaviside(t)
      ones(a,b) – zeros(a,b)
      ustep(t)
Descripción
heaviside(t)es una función que permite generar una señal escalón unitarios, es decir,
devuelve valores iguales a 0 para t <0 y valores iguales a 1 para t >0 y un valor de 1/2 para
t=0. Es posible cambiar el valor de heaviside para t=0, para ello se utiliza la característica
'HeavisideAtOrigin' del comando sympref, así, por ejemplo, para definir el valor 1 en
el origen del escalón se usaría la sintaxis sympref ('HeavisideAtOrigin', 1); como
alternativa, se puede restaurar el valor predeterminado de 'HeavisideAtOrigin'
mediante el uso de la característica de configuración 'default', así:
sympref('HeavisideAtOrigin','default').
NOTA: Es posible generar una señal escalón haciendo uso de matrices, para ello se debe
             Teoría de Señales y Sistemas – Lab01, Generación De Señales Básicas Con MATLAB®
                                     (@Autor Ángelo Joseph Soto Vergel)
                                                                                               Página 18 de 27
conocer la siguiente sintaxis: ones(a,b)permite crear una matriz de unos definida entre a y
b, zeros(a,b) permite crear una matriz de ceros definida entre a y b; donde a corresponde
al número de filas de la matriz y b al número de columnas. Otra alternativa de la función
escalón es usando el comando ustep de la caja de herramientas ADSP. En el apartado de
comandos se enseña un ejemplo para el uso de estas funciones.
                                    En tiempo Continuo
                                           Amplitud ( A)                      1
         Parámetros
                                            Tiempo (t)                    0 ≤ t ≤10
                                         Comandos
%% Señal Escalon en Tiempo Continuo
A = 1; %Amplitud
Fs = 10000; %Frecuencia de Muestreo
t = 0:1/Fs:10; %Tiempo de Simulación
x1 = A*heaviside(t); %Generación de Señal
x2 = A.*ones(1,length(t)); %Generación de Señal
x3 = A.*ustep(t); %Generación de Señal ADSP Toolbox
subplot(2,2,1),plot(t,x1),grid on,xlim([-1 10]),ylim([0                   1.1]) %Grafica
xlabel('Tiempo (s)'),ylabel('Amplitud'), title('Escalón                   con heaviside')
subplot(2,2,2),plot(t,x2),grid on,xlim([-1 10]),ylim([0                   1.1]) %Grafica
xlabel('Tiempo (s)'),ylabel('Amplitud'), title('Escalón                   con ones')
subplot(2,2,3),plot(t,x3),grid on,xlim([-1 10]),ylim([0                   1.1]) %Grafica
xlabel('Tiempo (s)'),ylabel('Amplitud'), title('Escalón                   con ADSP Toolbox')
                                                Gráfica
                                       En Tiempo Discreto
             Teoría de Señales y Sistemas – Lab01, Generación De Señales Básicas Con MATLAB®
                                     (@Autor Ángelo Joseph Soto Vergel)
                                                                                               Página 19 de 27
                                                Amplitud ( A)                               1
        Parámetros
                                                 Tiempo (n)                             0 ≤ n ≤10
                                               Comandos
%% Señal Escalon en Tiempo Discreto
A = 1; %Amplitud
n = 0:10; %Tiempo de Simulación
x1 = A*heaviside(n); %Generación de Señal
x2 = A.*ones(1,length(n)); %Generación de Señal
x3 = A.*ustep(n); %Generación de Señal ADSP Toolbox
subplot(2,2,1),stem(n,x1),grid on,xlim([-1 10]),ylim([0                    1.1]) %Grafica
xlabel('Tiempo (s)'),ylabel('Amplitud'), title('Escalón                    con heaviside')
subplot(2,2,2),stem(n,x2),grid on,xlim([-1 10]),ylim([0                    1.1]) %Grafica
xlabel('Tiempo (s)'),ylabel('Amplitud'), title('Escalón                    con ones')
subplot(2,2,3),stem(n,x3),grid on,xlim([-1 10]),ylim([0                    1.1]) %Grafica
xlabel('Tiempo (s)'),ylabel('Amplitud'), title('Escalón                    con ADSP Toolbox')
                                                 Gráfica
Sintaxis
    ones(a,b) – zeros(a,b)
    udelta(t)
Descripción
              Teoría de Señales y Sistemas – Lab01, Generación De Señales Básicas Con MATLAB®
                                      (@Autor Ángelo Joseph Soto Vergel)
                                                                                                Página 20 de 27
La versión discreta de la señal impulso se puede generar con ayuda de las funciones zeros
y ones, realizando una composición que permita ubicar el impulso en el instante de tiempo
deseado. Sin embargo, también es posible generar una señal impulso con la función
udelta de la librería “adsp”.
                                        Amplitud ( A)                        1
         Parámetros
                                         Tiempo (n)                      0 ≤ n ≤5
                                         Comandos
%% Señal Impulso
A = 1; %Amplitud
n = 0:5; %Tiempo de Simulación
x1 = A.*[zeros(1,3),ones(1,1),zeros(1,2)]; %Generación de Señal
x2 = A.*udelta(n-3); %Generación de Señal ADSP Toolbox
subplot(2,1,1),stem(n,x1),grid on,xlim([0 5]),ylim([0 1.1]) %Gráfica
xlabel('Tiempo (s)'),ylabel('Amplitud'),title('Impulso con zeros ones')
subplot(2,1,2),stem(n,x2),grid on,xlim([0 5]),ylim([0 1.1]) %Grafica
xlabel('Tiempo (s)'),ylabel('Amplitud'),title('Escalón con ADSP Toolbox')
                                                 Gráfica
Sintaxis
    uramp(t)
Descripción
              Teoría de Señales y Sistemas – Lab01, Generación De Señales Básicas Con MATLAB®
                                      (@Autor Ángelo Joseph Soto Vergel)
                                                                                                Página 21 de 27
Para generar la señal rampa, es posible hacerlo mediante la composición de una recta
utilizando su ecuación característica y=mx+b. También es posible generar esta señal con la
función uramp de la librería “adsp”; esta función implementa la ecuación r ( t )=t∗u(t ).
                                     En tiempo Continuo
                                         Amplitud ( A)                           1
         Parámetros
                                           Tiempo (t)                      0 ≤ t ≤10
                                          Comandos
%% Señal Rampa en Tiempo Continuo
A = 1; %Amplitud
Fs = 10000; %Frecuencia de Muestreo
t1 = 0:1/Fs:5; t2 = 5:1/Fs:10;r = t1;
t = [t1,t2]; %Tiempo de Simulación
x1 = A.*[zeros(1,length(t1)),r]; %Generación de Señal
x2 = A.*uramp(t-5); %Generación de Señal ADSP Toolbox
subplot(2,1,1),plot(t,x1),grid on,xlim([0 10]),ylim([0 5]) %Gráfica
xlabel('Tiempo (s)'),ylabel('Amplitud'), title('Rampa ecuación')
subplot(2,1,2),plot(t,x2),grid on,xlim([0 10]),ylim([0 5]) %Grafica
xlabel('Tiempo (s)'),ylabel('Amplitud'), title('Rampa con ADSP Toolbox')
                                                Gráfica
                                       En Tiempo Discreto
                                           Amplitud ( A)                                1
        Parámetros
                                            Tiempo (t)                              0 ≤ n ≤10
                                           Comandos
%% Señal Rampa en Tiempo Discreto
A = 1; %Amplitud
n1 = 0:5; n2 = 5:10;r = n1;
n = [n1,n2]; %Tiempo de Simulación
x1 = A.*[zeros(1,length(n1)),r]; %Generación de Señal
x2 = A.*uramp(n-5); %Generación de Señal ADSP Toolbox
             Teoría de Señales y Sistemas – Lab01, Generación De Señales Básicas Con MATLAB®
                                     (@Autor Ángelo Joseph Soto Vergel)
                                                                                               Página 22 de 27
subplot(2,1,1),stem(n,x1),grid on,xlim([0 10]),ylim([0 5]) %Gráfica
xlabel('Tiempo (s)'),ylabel('Amplitud'), title('Rampa ecuación')
subplot(2,1,2),stem(n,x2),grid on,xlim([0 10]),ylim([0 5]) %Grafica
xlabel('Tiempo (s)'),ylabel('Amplitud'), title('Rampa con ADSP Toolbox')
                                               Gráfica
Sintaxis
    urect(t)
Descripción
urect es un comando de la librería “adsp” y genera un rectángulo de altura 1 y ancho 1
centrado en t=0.
                                En tiempo Continuo
                                     Amplitud ( A)                      1
        Parámetros
                                      Tiempo (t)                    −1 ≤t ≤1
                                     Comandos
%% Señal Rectangular en Tiempo Continuo
A = 1; %Amplitud
Fs = 10000; %Frecuencia de Muestreo
t = -1:1/Fs:1; %Tiempo de simulación
x = A.*urect(t); %Generación de Señal
plot(t,x),grid on,xlim([-1 1]),ylim([0.1 1.1]) %Gráfica %Gráfica
xlabel('Tiempo (s)'),ylabel('Amplitud'), title('Rectángulo con ADSP Toolbox')
Gráfica
                                                                                              Página 23 de 27
                                         En Tiempo Discreto
                                             Amplitud ( A)                               1
          Parámetros
                                              Tiempo (t)                              −1 ≤n ≤ 1
                                             Comandos
%% Señal Rectangular en Tiempo Discreto
A = 1; %Amplitud
n = -1:0.1:1; %Tiempo de Simulación
x = A.*urect(n); %Generación de Señal
stem(n,x),grid on,xlim([-1 1]),ylim([0.1 1.1]) %Gráfica
xlabel('Tiempo (s)'),ylabel('Amplitud'), title('Rectángulo con ADSP Toolbox')
NOTA: Observe que la variable de tiempo n se definió para números decimales, lo cual es incorrecto; sin
embargo, se hizo de esta manera solamente para mostrar la forma discretizada de la señal de tiempo continuo.
                                                  Gráfica
                                                                                                 Página 24 de 27
Sintaxis
    tri(t)
Descripción
tri es un comando de la librería “adsp” y genera un triángulo de altura 1 y ancho 2
centrado en t=0.
                                En tiempo Continuo
                                    Amplitud ( A)                     1
        Parámetros
                                     Tiempo (t)                   −2  ≤t ≤2
                                     Comandos
%% Onda Triangular Tiempo Continuo
A = 1; %Amplitud
Fs = 10000; %Frecuencia de Muestreo
t = -2:1/Fs:2; %Tiempo de Simulación
x = A*tri(t); %Generación de Señal
plot(t,x),grid on,ylim([-0.1 1.1]) %Grafica
xlabel('Tiempo (s)'),ylabel('Amplitud'), title('Triángulo con ADSP Toolbox')
                                               Gráfica
                                      En Tiempo Discreto
                                          Amplitud ( A)                               1
       Parámetros
                                           Tiempo (t)                              −2 ≤ n≤ 2
                                          Comandos
%% Onda Traingular Tiempo Discreto
A = 1; %Amplitud
n = -2:0.1:2; %Tiempo de Simulación
x = A*tri(n); %Generación de Señal
stem(n,x),grid on,ylim([-0.1 1.1]) %Grafica
xlabel('Tiempo (s)'),ylabel('Amplitud'), title('Triángulo con ADSP Toolbox')
            Teoría de Señales y Sistemas – Lab01, Generación De Señales Básicas Con MATLAB®
                                    (@Autor Ángelo Joseph Soto Vergel)
                                                                                              Página 25 de 27
NOTA: Observe que la variable de tiempo n se definió para números decimales, lo cual es incorrecto; sin
embargo, se hizo de esta manera solamente para mostrar la forma discretizada de la señal de tiempo continuo.
                                                  Gráfica
6. EVALUACIÓN
Genere las siguientes señales tanto en tiempo continuo como en tiempo discreto:
                         π
                     (          )
  a. x=−2+3 cos 20 πt + +sin (40 πt )
                         4
  b. Una señal cuadrada, de amplitud 5 Volts, frecuencia fundamental 20 Hz y ciclo útil del
     60%.
  c. Una señal diente de sierra, amplitud 5 Volts y frecuencia fundamental 20Hz.
  d. Una señal senoidal amortiguada exponencialmente.
  e. Grafique las señales anteriores en una sola gráfica y rotule cada una de ellas con sus
     ejes.
7. BIBLIOGRAFÍA
                                                                                                 Página 26 de 27
Ambardar, A. (2002). Procesamiento de Señales Analógica y Digitales (2da ed.). México.
Haykin, S., & Van Veen, B. (2001). Señales y Sistemas (1ra ed.).
Kamen, E. W., & Heck, B. S. (2008). Fundamentos de Señales y Sistemas Usando la Web y
     MATLAB (3ra ed.). México.
Morón, J. (2011). Señales y Sistemas (1ra ed.). Venezuela: Fondo Editorial Biblioteca
     Universidad Rafael Urdaneta.
Oppenheim, A. V., & Willsky, A. S. (1998). Señales y Sistemas (2da ed.).
Sauchelli, V. H. (2004). Teoría De Señales y Sistemas Lineales (1ra ed.). España.
Sistemas y Circuitos, Practica 2: Señales - Curso Académico 07/08. (2011). Madrid:
     Departamento de Teoría de la Señal y Comunicaciones, Universidad Carlos III de
     Madrid. Retrieved from http://www.tsc.uc3m.es/docencia/SyC/docs/Practica2_SyC_07-
     08.pdf
The MathWorks Inc. (2017). MathWorks - Makers of MATLAB and Simulink. Retrieved April
     10, 2017, from https://www.mathworks.com/
Página 27 de 27