Está en la página 1de 28

PRÁCTICA No.

1
GENERACIÓN DE SEÑALES BÁSICAS CON MATLAB®

1. OBJETIVOS

1.1. Objetivo General

 Generar señales básicas en tiempo discreto y continúo utilizando MATLAB®.

1.2. Objetivos Específicos

 Conocer los comandos, algoritmos y funciones necesarias para la representación


de señales en MATLAB®.
 Representar las señales básicas en distintos intervalos de tiempo y amplitud, así
como en sus propiedades de tiempo discreto y continuo.

2. JUSTIFICACIÓN

La realización de esta práctica le permitirá al estudiante fortalecer y aplicar los


conocimientos teóricos vistos en clase sobre la generación de señales en tiempo
continuo y discreto.

3. MARCO TEÓRICO

3.1. Señales en tiempo continuo y en tiempo discreto

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 𝑥(𝑡) se dice será una señal en tiempo continuo si
está definida para todo tiempo 𝑡. 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 𝑥[𝑛] 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.

Teoría de Señales y Sistemas – Lab01, Generación De Señales Básicas Con MATLAB®


(@Autor Ángelo Joseph Soto Vergel)

Página 1 de 28
Figura 1. 𝒂) Señal en tiempo continuo 𝑥(𝑡). 𝒃) Señal en tiempo discreto 𝑥[𝑛].

3.2. Señales periódicas y no periódicas

Una señal periódica es una función que satisface la condición:

𝑥(𝑡) = 𝑥(𝑡 + 𝑞𝑇) para todo 𝑡

Donde 𝑇 es una constante positiva y 𝑞 es cualquier número entero positivo. El valor


más pequeño de 𝑇 que cumple la ecuación anterior se llama periodo fundamental. Por
consiguiente, el periodo fundamental 𝑇 define la duración de un ciclo completo de 𝑥(𝑡).
El recíproco de 𝑇 se denomina frecuencia fundamental, 𝑓 ; está describe con qué
frecuencia la misma señal periódica se repite. De este modo:

1
𝑓=
𝑇

La frecuencia 𝑓 se mide en Hertz (Hz) o ciclos por segundo. La frecuencia angular,


medida
en radianes por segundo, está definida por:

2𝜋
𝜔=
𝑇

Note que hay 2𝜋 radianes en un ciclo completo.

Una pregunta importante en el análisis de señales es si la suma de dos señales


periódicas resulta periódica. Suponga que 𝑥1 (𝑡) y 𝑥2 (𝑡) son señales periódicas, con
periodos fundamentales 𝑇1 y 𝑇2 , respectivamente. Entonces, ¿es periódica la suma
𝑥1 (𝑡) + 𝑥2 (𝑡)?; es decir, ¿existe un número positivo 𝑇, tal que: 𝑥1 (𝑡 + 𝑇) + 𝑥2 (𝑡 + 𝑇) =
𝑥1 (𝑡) + 𝑥2 (𝑡) para todo 𝑡?. Estas condiciones se satisfacen si y sólo si la relación 𝑇1 /𝑇2
puede escribirse como la relación de dos enteros, 𝑞 y 𝑟, 𝑞/𝑟. Esto puede mostrarse si
observamos que si 𝑇1 /𝑇2 = 𝑞/𝑟, entonces 𝑟𝑇1 = 𝑞𝑇2 , y debido a que 𝑟 y 𝑞 son enteros,
𝑥1 (𝑡) y 𝑥2 (𝑡) son periódicas con periodo 𝑟𝑇1. Así, la condición se sigue cumpliendo con
Teoría de Señales y Sistemas – Lab01, Generación De Señales Básicas Con MATLAB®
(@Autor Ángelo Joseph Soto Vergel)

Página 2 de 28
𝑇 = 𝑟𝑇1. Además, si 𝑞 y 𝑟 son coprimos, es decir, no tienen factores enteros comunes
diferentes de 1, entonces 𝑇 = 𝑟𝑇1 es el periodo fundamental de la suma 𝑥1 (𝑡) + 𝑥2 (𝑡).

Ahora bien, cualquier señal para la cual no hay valor de 𝑇 que cumpla la condición de
la ecuación 𝑥(𝑡) = 𝑥(𝑡 + 𝑞𝑇) para todo 𝑡, recibe el nombre de señal aperiódica o no
periódica.

A continuación, consideramos el caso de señales en tiempo discreto. Una señal en


tiempo discreto 𝑥[𝑛] se dice que será periódica si satisface la condición:

𝑥[𝑛] = 𝑥[𝑛 + 𝑁] para todos los enteros 𝑛

Donde 𝑁 es un entero positivo. El valor más pequeño del entero 𝑁 para el cual se
satisface la ecuación anterior recibe el nombre de periodo fundamental de la señal en
tiempo discreto 𝑥[𝑛]. La frecuencia angular fundamental medida en radianes de 𝑥[𝑛]
está definida por:

2𝜋
Ω=
𝑁

La figura 2 presenta un ejemplo de señales periódicas y no periódicas en tiempo


continuo y 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 3 de 28
Figura 2. 𝒂) Onda cuadrada con amplitud 𝐴 = 1 y periodo 𝑇 = 0.2 𝑠. 𝒃) Pulso rectangular de amplitud 𝐴 y
duración 𝑇1 . 𝒄) Onda cuadrada en tiempo discreto que alterna entre −1 y +1. 𝒅) 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 𝑥(𝑡) , dada por una expresión matemática puede
definirse y desplegarse mediante MATLAB® y graficar 𝑥(𝑡) contra 𝑡, para un intervalo
de valores de 𝑡. Para mostrar su uso, considere la señal 𝑥(𝑡) dada por:

2
𝑥(𝑡) = 𝑒 −0.1𝑡 sin ( 𝑡)
3

Así, por ejemplo, para un intervalo entre 0 y 30 segundos, con incrementos de 0.1
segundos, los comandos de MATLAB® para generar 𝑥(𝑡) 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)')

Teoría de Señales y Sistemas – Lab01, Generación De Señales Básicas Con MATLAB®


(@Autor Ángelo Joseph Soto Vergel)

Página 4 de 28
Los valores de tiempo para los que 𝑥(𝑡) se grafica, se almacenan como elementos en
el vector 𝑡. 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 𝑥. Para hacer las operaciones elemento por elemento
se necesita un punto antes del operador. Entonces, mediante el comando plot(t,x),
𝑥 se grafica contra 𝑡 . 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.

2
Figura 3. Gráfica en MATLAB para la señal 𝑥(𝑡) = 𝑒 −0.1𝑡 sin ቀ 𝑡ቁ
3

La gráfica resultante de 𝑥(𝑡) aparece en la figura 1. Observe que la gráfica que genera
MATLAB® es en forma de caja, y los ejes son etiquetados como se muestra. Es
importante tomar en cuenta que, cuando generemos gráficas de señales de tiempo
continuo con MATLAB®, el incremento en el escalón de tiempo debe elegirse lo
suficientemente pequeño (frecuencia de muestreo) para generar una gráfica suave. Si
el incremento se elige demasiado grande (para una señal dada), entonces cuando los
valores de la señal se conecten mediante líneas rectas (en la generación por
computadora de la gráfica), el resultado será que la gráfica se verá dentada; una buena
regla empírica es usar por lo menos 200 puntos, es decir, una frecuencia de muestreo
de 200 Hz, lo que equivale a tomar muestras en intervalos de 0.005.

3.4. Cómo utilizar MATLAB® con señales de tiempo discreto

Se dice que la variable de tiempo 𝑡 es una variable de tiempo discreto, si 𝑡 sólo toma
los valores discretos 𝑡 = 𝑡𝑛 para algún intervalo de valores enteros de 𝑛. Por ejemplo, 𝑡
podría tomar los valores enteros 𝑡 = 0,1,2 …; es decir, 𝑡 = 𝑡𝑛 = 𝑛 para 𝑛 = 0, 1, 2, ….

Una señal de tiempo discreto es una señal que es una función de la variable de tiempo
discreto 𝑡𝑛 ; en otras palabras, una señal de tiempo discreto tiene valores (está
Teoría de Señales y Sistemas – Lab01, Generación De Señales Básicas Con MATLAB®
(@Autor Ángelo Joseph Soto Vergel)

Página 5 de 28
definida) sólo en los puntos de tiempo discreto 𝑡 = 𝑡𝑛 , donde 𝑛 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 𝑥[𝑛], esta notación sugiere entonces
que la variable entera 𝑛 corresponde a los instantes de tiempo 𝑡𝑛 . 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 𝑥[𝑛] 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]')

2
Figura 4. Gráfica en MATLAB® para la señal 𝑥[𝑛] = 𝑒 −0.1𝑛 sin ቀ3 𝑛ቁ
Es importante mencionar que, en MATLAB® una señal en tiempo discreto se
representa exactamente, debido a que los valores de la señal se describen como los
elementos de un vector; por otra parte, MATLAB® brinda sólo una aproximación a
señales en tiempo continuo, esta aproximación consiste en un vector cuyos elementos
individuales son muestras de la señal en tiempo continuo subyacente. Cuando se usa
este enfoque aproximado, es importante que se elija el intervalo de muestreo
suficientemente pequeño para asegurar que las muestras capturen todos los detalles
de la señal, recuerde que este tiempo de muestreo está bastante bien en 0.005.

3.5. La caja de herramientas (Toolbox) ADSP y su instalació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 6 de 28
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

El siguiente procedimiento de instalación es genérico para todas las plataformas:

 Genere dos subdirectorios, de preferencia con los nombres “adsp” y “gui”.


 Descomprimir el archivo “adsp_mfiles.zip” en la carpeta con el nombre “adsp”.
 Descomprimir el archivo “adsp_guis.zip” en la carpeta con el nombre “gui”.
 Guardar las carpetas “adsp” y “gui” en la carpeta “toolbox” de Matlab. Esta carpeta
por lo general está en la ruta C:\Program Files\MATLAB\R2016a\toolbox, donde
“R2016a” es la versión de Matlab instalada en el computador.
 Finalmente, en la ventada de comandos (Command Window) de Matlab ejecutamos
el siguiente código:

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

Responda las siguientes preguntas en el contexto del análisis de señales y sistemas


análogos y digitales:
a. ¿Qué es una señal?
b. ¿Qué es un sistema?
c. ¿Qué se conoce como procesamiento de señales? ¿Qué diferencias existen
entre el procesamiento analógico de señales contra el digital?
Teoría de Señales y Sistemas – Lab01, Generación De Señales Básicas Con MATLAB®
(@Autor Ángelo Joseph Soto Vergel)

Página 7 de 28
d. ¿Qué es un sistema de comunicación?
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

Generación de una señal Cuadrada

Sintaxis
 square(t,duty)

Descripción
square genera una onda cuadrada con un período de 2𝜋 para los elementos del
vector de tiempo 𝑡, 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.

Para la generación de una señal cuadrada es necesario establecer parámetros


adicionales tales como: una amplitud 𝐴 y una frecuencia fundamental 𝑓 (𝐻𝑧).
En tiempo Continuo
Amplitud (𝐴) 1
Frecuencia (𝑓) 100
Parámetros
Ciclo de Trabajo (𝑑𝑢𝑡𝑦) 50
Tiempo (𝑡) 0 ≤ 𝑡 ≤ 0.03
Comandos
%% Onda Cuadrada Tiempo Continuo
A = 1; %Amplitud
Fs = 10000; %Frecuencia de Muestreo
f = 100; %Frecuencia Fundamental
T = 3*(1/f); %Número de Periodos a Graficar
duty = 50; %Ciclo útil
t = 0:1/Fs:T-1/Fs; %Tiempo de Simulación
x = A*square(2*pi*f*t,duty); %Generación de Señal
plot(t,x),grid on,ylim([-1.1 1.1]) %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 8 de 28
Gráfica

En Tiempo Discreto
Amplitud (𝐴) 1
Frecuencia (𝑓) 0.125
Parámetros
Ciclo útil (𝐷) 50
Tiempo (𝑛) 0 ≤ 𝑛 ≤ 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

Teoría de Señales y Sistemas – Lab01, Generación De Señales Básicas Con MATLAB®


(@Autor Ángelo Joseph Soto Vergel)

Página 9 de 28
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 𝑡, 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𝜋 ∗ 𝑤𝑖𝑑𝑡ℎ; luego, disminuye linealmente desde +1 a −1
en el intervalo de 2𝜋 ∗ 𝑤𝑖𝑑𝑡ℎ 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.

Para la generación de una señal diente de sierra es necesario establecer parámetros


adicionales tales como: amplitud 𝐴 y frecuencia fundamental 𝑓 (𝐻𝑧).
En tiempo Continuo
Amplitud (𝐴) 1
Frecuencia (𝑓) 100
Parámetros
Ancho (𝑤𝑖𝑑𝑡ℎ) 0.5
Tiempo (𝑡) 0 ≤ 𝑡 ≤ 0.03
Comandos
Teoría de Señales y Sistemas – Lab01, Generación De Señales Básicas Con MATLAB®
(@Autor Ángelo Joseph Soto Vergel)

Página 10 de
28
%% Onda Diente de Sierra Tiempo Continuo
A = 1; %Amplitud
f = 100; %Frecuencia Fundamental
Fs = 10000; %Frecuencia de Muestreo
T = 3*(1/f); %Número de Periodos a Graficar
width = 0.5; %Ancho
t = 0:1/Fs:T-1/Fs; %Tiempo de Simulación
x = A*sawtooth(2*pi*f*t,width); %Generación de Señal
plot(t,x),grid on,ylim([-1.1 1.1]) %Grafica
Gráfica

En Tiempo Discreto
Amplitud (𝐴) 1
Frecuencia (𝑓) 0.125
Parámetros
Ancho (𝑤𝑖𝑑𝑡ℎ) 0.5
Tiempo (𝑛) 0 ≤ 𝑛 ≤ 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

Teoría de Señales y Sistemas – Lab01, Generación De Señales Básicas Con MATLAB®


(@Autor Ángelo Joseph Soto Vergel)

Página 11 de
28
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 𝑡 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 𝑡 en
el intervalo [-inf, inf] las funciones devuelven valores reales en el intervalo [-1,
1]. Para valores complejos de 𝑡 , las funciones devuelven valores complejos. Es
importante mencionar que todos los ángulos que pueda representar están en radianes.

Para la generación de una señal senoidal es necesario establecer parámetros


adicionales tales como: amplitud 𝐴 y frecuencia fundamental 𝑓 (𝐻𝑧); aunque también
es posible adicional algún desfase es radianes.
En tiempo Continuo
Amplitud (𝐴) 1
Frecuencia (𝑓) 100
Parámetros
Desfase (∅) 𝜋/2
Tiempo (𝑡) 0 ≤ 𝑡 ≤ 0.03
Comandos
%% Onda Senoidal Tiempo Continuo
A = 1; %Amplitud
f = 100; %Frecuencia Fundamental
Teoría de Señales y Sistemas – Lab01, Generación De Señales Básicas Con MATLAB®
(@Autor Ángelo Joseph Soto Vergel)

Página 12 de
28
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 (𝐴) 1
Frecuencia (𝑓) 0.125
Parámetros
Desfase (∅) 𝜋/2
Tiempo (𝑛) 0 ≤ 𝑛 ≤ 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

Teoría de Señales y Sistemas – Lab01, Generación De Señales Básicas Con MATLAB®


(@Autor Ángelo Joseph Soto Vergel)

Página 13 de
28
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 𝑒 𝑡 para cada elemento de un array 𝑡 . Para los
elementos complejos donde 𝑧 = 𝑥 + 𝑖𝑦 , devuelve la exponencial compleja 𝑒 𝑧 =
𝑒 𝑡 (cos 𝑦 + 𝑖 sin 𝑦).

Para generar una señal creciente los valores del vector 𝑡 deben ser positivos (exp(t))
y en para el caso de una señal exponencial decreciente los valores de 𝑡 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 𝑧 es puramente imaginaria la señal definida será una señal
compleja cuyas partes real e imaginaria son cos(𝜔0 𝑡) y sin(𝜔0 𝑡) respectivamente; y
tomando como base el teorema de Euler es posible definir:
𝐴 ∗ cos(𝜔0 𝑡 + 𝜑) = 𝐴 ∗ Re{𝑒 𝑗(𝜔0 𝑡+𝜑) } y 𝐴 ∗ sin(𝜔0 𝑡 + 𝜑) = 𝐴 ∗ Im{𝑒 𝑗(𝜔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
28
Donde 𝐴 es real y “Re” se lee “la parte real de” e “Im” 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 (𝑟) 1.5
Parámetros
Tiempo (𝑡) 0 ≤ 𝑡 ≤ 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 (𝑟) 1.5
Parámetros
Tiempo (𝑛) 0 ≤ 𝑛 ≤ 10
Comandos
%% Onda Exponencial en Tiempo Discreto
n = 0:10; %Tiempo de Simulación
x1 = exp(n); %Generación de Señal

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
28
subplot(2,1,1),stem(n,x1),grid on %Grafica
r = 1.5;
x2 = r.^(-n); %Generación de Señal
subplot(2,1,2),stem(n,x2),grid on %Grafica
Gráfica

Señal Exponencial Compleja en Tiempo Continuo


𝜋
𝑥(𝑡) = 𝑒 𝑗ቀ2𝑡+ 4 ቁ
Comandos
%% Onda Exponencial Compleja
Fs = 10000; %Frecuencia de Muestreo
t = -1.5*pi:1/Fs:1.5*pi; %Tiempo de Simulación
x = exp(1j.*(2.*t+(pi/4))); %Generación de Señal
xRE = real(x); %Cálculo de la parte Real de x(t)
xIM = imag(x); %Cálculo de la parte Imaginaria de x(t)
xMAG = abs(x); %Cálculo de la Magnitud de x(t)
xARG = atan(imag(x)./real(x)); %Cálculo del Argumento de x(t)
subplot(2,2,1),plot(t,xRE); grid on, ylim([-2 2])%Gráfica
xlabel('Tiempo (s)'),ylabel('Amplitud'), title('Parte Real de x(t)')
subplot(2,2,2),plot(t,xIM); grid on, ylim([-2 2])%Gráfica
xlabel('Tiempo (s)'),ylabel('Amplitud'), title('Parte Imaginaria de x(t)')
subplot(2,2,3),plot(t,xMAG); grid on, ylim([-2 2])%Gráfica
xlabel('Tiempo (s)'),ylabel('Amplitud'), title('Magnitud de x(t)')
subplot(2,2,4),plot(t,xARG); grid on, ylim([-2 2])%Gráfica
xlabel('Tiempo (s)'),ylabel('Amplitud'), title('Argumento de x(t)')

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
28
Gráfica

Señal Exponencial Compleja en Tiempo Discreto


𝜋
𝑥[𝑛] = 𝑒 𝑗ቀ2𝑛+ 4 ቁ
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.

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
28
Gráfica

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 𝑡 < 0 y valores iguales a 1 para 𝑡 > 0 y un valor
de 1/2 para 𝑡 = 0. Es posible cambiar el valor de heaviside para 𝑡 = 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').

Es posible definir un parámetro adicional como Amplitud (𝐴) si se desea generar un


escalón de amplitud diferente a 1.
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
28
NOTA: Es posible generar una señal escalón haciendo uso de matrices, para ello se
debe 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 (𝐴) 1
Parámetros
Tiempo (𝑡) 0 ≤ 𝑡 ≤ 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

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
28
En Tiempo Discreto
Amplitud (𝐴) 1
Parámetros
Tiempo (𝑛) 0 ≤ 𝑛 ≤ 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

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
28
Generación de una señal Impulso

Sintaxis
 ones(a,b) – zeros(a,b)
 udelta(t)

Descripción
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 (𝐴) 1
Parámetros
Tiempo (𝑛) 0≤𝑛≤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
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
28
xlabel('Tiempo (s)'),ylabel('Amplitud'),title('Escalón con ADSP Toolbox')
Gráfica

Generación de una señal Rampa

Sintaxis
 uramp(t)

Descripción
Para generar la señal rampa, es posible hacerlo mediante la composición de una recta
utilizando su ecuación característica 𝑦 = 𝑚𝑥 + 𝑏 . 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
𝑟(𝑡) = 𝑡 ∗ 𝑢(𝑡).
En tiempo Continuo
Amplitud (𝐴) 1
Parámetros
Tiempo (𝑡) 0 ≤ 𝑡 ≤ 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
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
28
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 (𝐴) 1
Parámetros
Tiempo (𝑡) 0 ≤ 𝑛 ≤ 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
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

Teoría de Señales y Sistemas – Lab01, Generación De Señales Básicas Con MATLAB®


(@Autor Ángelo Joseph Soto Vergel)

Página 23 de
28
Generación de una señal Rectangular

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 𝑡 = 0.
En tiempo Continuo
Amplitud (𝐴) 1
Parámetros
Tiempo (𝑡) −1 ≤ 𝑡 ≤ 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

Teoría de Señales y Sistemas – Lab01, Generación De Señales Básicas Con MATLAB®


(@Autor Ángelo Joseph Soto Vergel)

Página 24 de
28
En Tiempo Discreto
Amplitud (𝐴) 1
Parámetros
Tiempo (𝑡) −1 ≤ 𝑛 ≤ 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

Generación de una señal Triangular


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
28
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 𝑡 = 0.
En tiempo Continuo
Amplitud (𝐴) 1
Parámetros
Tiempo (𝑡) −2 ≤ 𝑡 ≤ 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 (𝐴) 1
Parámetros
Tiempo (𝑡) −2 ≤ 𝑛 ≤ 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

Teoría de Señales y Sistemas – Lab01, Generación De Señales Básicas Con MATLAB®


(@Autor Ángelo Joseph Soto Vergel)

Página 26 de
28
stem(n,x),grid on,ylim([-0.1 1.1]) %Grafica
xlabel('Tiempo (s)'),ylabel('Amplitud'), title('Triá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

6. EVALUACIÓN

Genere las siguientes señales tanto en tiempo continuo como en tiempo discreto:
𝜋
a. 𝑥 = −2 + 3 cos ቀ20𝜋𝑡 + 4 ቁ + sin(40𝜋𝑡)
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.

NOTA: Se deberá entregar un informe de los resultados en forma individual a la


siguiente semana de terminado la sesión de la práctica.

Teoría de Señales y Sistemas – Lab01, Generación De Señales Básicas Con MATLAB®


(@Autor Ángelo Joseph Soto Vergel)

Página 27 de
28
7. BIBLIOGRAFÍA

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/

Teoría de Señales y Sistemas – Lab01, Generación De Señales Básicas Con MATLAB®


(@Autor Ángelo Joseph Soto Vergel)

Página 28 de
28

También podría gustarte