# Importar librerias basicas
import numpy as np
import matplotlib.pyplot as plt
import sympy as sym
get_ipython().run_line_magic('matplotlib', 'inline')
plt.style.use('bmh') # estilo de las graficas
from IPython.display import Latex # para visualizar ecuaciones en jupyter
Las señales se pueden definir y escribir como la suma de las señales basicas
- Exponenciales reales
- Exponenciales periodicas
- Exponenciales complejas generales
- Impulsos Unitarios
- Escalon Unitario
- Rampa y la combinacion de todas estas
# función para graficar 2 subplots
def move_sympyplot_to_axes(p, ax):
backend = p.backend(p)
backend.ax = ax
backend.process_series()
backend.ax.spines['right'].set_color('none')
backend.ax.spines['bottom'].set_position('zero')
backend.ax.spines['top'].set_color('none')
plt.close(backend.fig)
display(Latex('$x(t) = 2e^{-2 t} \mu(t)$'))
# funciones
sym.var('t')
paso = sym.Heaviside(t)
expo = 2*sym.exp(-2*t)
x = expo*paso
# Grafica de las funciones
p1 = sym.plot(expo, (t, -2, 2),
ylim=[-0.2, 4], ylabel='$x(t)$', line_color='r', title='Señales Simples',
legend=True, show=False)
p12 = sym.plot(paso, (t, -2, 2),
ylim=[-0.2, 4], ylabel='$x(t)$', line_color='c', legend=True, show=False)
p1.extend(p12)
suma_final = sym.plot(x, (t, -2, 2), ylim=[-0.2, 4],
ylabel='$x(t)$', title='Suma de Señales', legend=True, show=False)
fig, (ax, ax2) = plt.subplots(figsize=(12, 4), ncols=2)
move_sympyplot_to_axes(suma_final, ax)
move_sympyplot_to_axes(p1, ax2)
$x(t) = 2e^{-2 t} \mu(t)$
display(Latex('$x(t) = 2e^{-2 t} \mu(t-1)$'))
# funciones
sym.var('t')
paso = sym.Heaviside(t-1)
expo = 2*sym.exp(-2*t)
x = expo*paso
# Grafica de funciones
p1 = sym.plot(expo, (t, -2, 2),
ylim=[-0.2, 4], ylabel='$x(t)$', line_color='r', title='Señales Simples',
legend=True, show=False)
p12 = sym.plot(paso, (t, -2, 2),
ylim=[-0.2, 4], ylabel='$x(t)$', line_color='c', legend=True, show=False)
p1.extend(p12)
suma_final = sym.plot(x, (t, -2, 2), ylim=[-0.2, 2], ylabel='$x(t)$',
legend=True, title='Suma de Señales', show=False)
fig, (ax, ax2) = plt.subplots(figsize=(12, 4), ncols=2)
move_sympyplot_to_axes(suma_final, ax)
move_sympyplot_to_axes(p1, ax2)
$x(t) = 2e^{-2 t} \mu(t-1)$
display(Latex('$x(t) = cos(4 \pi t) \mu(t+1)$'))
sym.var('t')
paso = sym.Heaviside(t+1)
coseno = sym.cos(4*sym.pi*t)
x = coseno*paso
# Grafica de funciones
p1 = sym.plot(coseno, (t, -2, 2),
ylim=[-1.5, 1.5], ylabel='$x(t)$', line_color='c', title='Señales Simples',
legend=True, show=False)
p12 = sym.plot(paso, (t, -2, 2),
ylim=[-1.5, 1.5], ylabel='$x(t)$', line_color='r', legend=True, show=False)
p1.extend(p12)
suma_final = sym.plot(x, (t, -2, 2), ylim=[-1.5, 1.5], ylabel='$x(t)$',
title='Suma de Señales', legend=True, show=False)
fig, (ax, ax2) = plt.subplots(figsize=(12, 4), ncols=2)
move_sympyplot_to_axes(suma_final, ax)
move_sympyplot_to_axes(p1, ax2)
$x(t) = cos(4 \pi t) \mu(t+1)$
display(Latex('$x(t) = \mu(t-1) - \mu(t+3)$'))
sym.var('t')
paso1 = sym.Heaviside(t-1)
paso2 = -1*sym.Heaviside(t-3)# esta función tiene amplitud negativa
x = paso1 + paso2
# Grafica de funciones
p1 = sym.plot(paso1, (t, -2, 5),
ylim=[-1.5, 1.5], ylabel='$x(t)$', line_color='r', title='Señales Simples',
legend=True, show=False)
p12 = sym.plot(paso2, (t, -2, 5),
ylim=[-1.5, 1.5], ylabel='$x(t)$', line_color='c', legend=True, show=False)
p1.extend(p12)
suma_final = sym.plot(x, (t, -2, 5), ylim=[-1.5, 1.5], ylabel='$x(t)$', title = 'Suma de Señales',legend=True, show = False)
fig, (ax, ax2) = plt.subplots(figsize=(12, 4), ncols=2)
move_sympyplot_to_axes(suma_final, ax)
move_sympyplot_to_axes(p1, ax2)
$x(t) = \mu(t-1) - \mu(t+3)$
display(Latex('$x(t) = r(t) \mu(-t+1)$'))
sym.var('t')
rampa = t*sym.Heaviside(t)
paso = sym.Heaviside(-t+1)
x = rampa*paso
# Grafica de funciones
p1 = sym.plot(rampa, (t, -2, 5),
ylim=[-1.5, 1.5], ylabel='$x(t)$', line_color='r', title='Señales Simples',
legend=True, show=False)
p12 = sym.plot(paso, (t, -2, 5),
ylim=[-1.5, 1.5], ylabel='$x(t)$', line_color='c', legend=True, show=False)
p1.extend(p12)
suma_final = sym.plot(x, (t, -2, 5), ylim=[-1.5, 1.5 ], ylabel='$x(t)$',title = 'Suma de Señales',legend=True, show = False);
fig, (ax, ax2) = plt.subplots(figsize=(12, 4), ncols=2)
move_sympyplot_to_axes(suma_final, ax)
move_sympyplot_to_axes(p1, ax2)
$x(t) = r(t) \mu(-t+1)$
display(Latex('$x(t) = r(t) - \mu(t-1)$'))
sym.var('t')
rampa1 = t*sym.Heaviside(t)
paso1 = -1*sym.Heaviside(t-1)
x = rampa1 + paso1
# Grafica de funciones
p1 = sym.plot(rampa1, (t, -2, 5),
ylim=[-1.5, 2], ylabel='$x(t)$', line_color='r', title='Señales Simples',
legend=True, show=False)
p12 = sym.plot(paso1, (t, -2, 5),
ylim=[-1.5, 2], ylabel='$x(t)$', line_color='c', legend=True, show=False)
p1.extend(p12)
suma_final = sym.plot( x, (t, -2, 5), ylim=[-0.2, 2], ylabel='$x(t)$', title='Suma de Señales', legend=True, show=False)
fig, (ax, ax2) = plt.subplots(figsize=(12, 4), ncols=2)
move_sympyplot_to_axes(suma_final, ax)
move_sympyplot_to_axes(p1, ax2)
$x(t) = r(t) - \mu(t-1)$
display(Latex('$x(t) = r(t) - \mu(t-1) - r(t-2)$'))
sym.var('t')
rampa1 = t*sym.Heaviside(t)
paso1 = -1*sym.Heaviside(t-1)
rampa2 = -1*(t-2)*sym.Heaviside(t-2)
x = rampa1 + paso1 + rampa2
# Grafica de funciones
p1 = sym.plot(rampa1, (t, -2, 5),
ylim=[-1.5, 3], ylabel='$x(t)$', line_color='r', title='Señales Simples',
legend=True, show=False)
p2 = sym.plot(paso1, (t, -2, 5),
ylim=[-1.5, 3], ylabel='$x(t)$', line_color='c', legend=True, show=False)
p3 = sym.plot(rampa2, (t, -2, 5),
ylim=[-1.5, 3], ylabel='$x(t)$', line_color='m', legend=True, show=False)
p1.extend(p2)
p1.extend(p3)
suma_final = sym.plot(x, (t, -2, 5), ylim=[-1.5, 3 ], ylabel='$x(t)$', title='Suma de Señales', legend=True, show=False);
fig, (ax, ax2) = plt.subplots(figsize=(12, 4), ncols=2)
move_sympyplot_to_axes(suma_final, ax)
move_sympyplot_to_axes(p1, ax2)
$x(t) = r(t) - \mu(t-1) - r(t-2)$
display(Latex('$x(t) = r(t) - \mu(t-1) - r(t-2) - \mu(t-2)$'))
sym.var('t')
rampa1 = t*sym.Heaviside(t)
paso1 = -1*sym.Heaviside(t-1)
rampa2 = -1*(t-2)*sym.Heaviside(t-2)
paso2 = -1*sym.Heaviside(t-2)
x = rampa1 + paso1 + rampa2 + paso2
# Grafica de funciones
p1 = sym.plot(rampa1, (t, -2, 5),
ylim=[-1.5, 3], ylabel='$x(t)$', line_color='r', title='Señales Simples',
legend=True, show=False)
p2 = sym.plot(paso1, (t, -2, 5),
ylim=[-1.5, 3], ylabel='$x(t)$', line_color='c', legend=True, show=False)
p3 = sym.plot(rampa2, (t, -2, 5),
ylim=[-1.5, 3], ylabel='$x(t)$', line_color='m', legend=True, show=False)
p4 = sym.plot(paso2, (t, -2, 5),
ylim=[-1.5, 3], ylabel='$x(t)$', line_color='y', legend=True, show=False)
p1.extend(p2)
p1.extend(p3)
p1.extend(p4)
suma_final = sym.plot(x, (t, -2, 5), ylim=[-1.5, 3 ], ylabel='$x(t)$', title='Suma de Señales', legend=True, show=False);
fig, (ax, ax2) = plt.subplots(figsize=(12, 4), ncols=2)
move_sympyplot_to_axes(suma_final, ax)
move_sympyplot_to_axes(p1, ax2)
$x(t) = r(t) - \mu(t-1) - r(t-2) - \mu(t-2)$
display(Latex('$x(t) = \mu(t) + r(t-1) - 3r(t-2)$'))
sym.var('t')
paso1 = sym.Heaviside(t)
rampa1 = (t-1)*sym.Heaviside(t-1) #r(t-1)
rampa2 = -3*(t-2)*sym.Heaviside(t-2) #-3r(t-2)
x = rampa1 + paso1 + rampa2
# Grafica de funciones
p1 = sym.plot(rampa1, (t, -2, 5),
ylim=[-5, 4], ylabel='$x(t)$', line_color='r', title='Señales Simples',
legend=True, show=False)
p2 = sym.plot(paso1, (t, -2, 5),
ylim=[-5, 4], ylabel='$x(t)$', line_color='c', legend=True, show=False)
p3 = sym.plot(rampa2, (t, -2, 5),
ylim=[-5, 4], ylabel='$x(t)$', line_color='m', legend=True, show=False)
p1.extend(p2)
p1.extend(p3)
suma_final = sym.plot(x, (t, -2, 5), ylim=[-5, 4 ], ylabel='$x(t)$', title='Suma de Señales', legend=True, show=False);
fig, (ax, ax2) = plt.subplots(figsize=(12, 4), ncols=2)
move_sympyplot_to_axes(suma_final, ax)
move_sympyplot_to_axes(p1, ax2)
$x(t) = \mu(t) + r(t-1) - 3r(t-2)$
Ejercicios
Obtener la ecuación de las siguientes señales como suma de funciones basicas:
sym.var('t')
# Tamaño de las graficas
plt.rcParams['figure.figsize'] = 12, 5
# Para graficar rapido voy a crear las funciones paso y rampa,
# crear la función paso
def paso(t):
return sym.Heaviside(t)
# crear la función rampa
def rampa(t):
return (t)*sym.Heaviside(t)
x = paso(t+2)-2*paso(t+1)+rampa(t)-rampa(t-1)+paso(t-1)-paso(t-2)
sym.plot(x, (t, -4, 5), ylim=[-2, 2 ], ylabel='$x(t)$', title='Suma de Señales');
x = rampa(t+1)-rampa(t)+paso(t-1)-3*paso(t-2)+rampa(t-2)-rampa(t-3)
sym.plot(x, (t, -4, 4), ylim=[-2, 3 ], ylabel='$x(t)$', title='Suma de Señales');
display(Latex('$\large x(t) = r(t-1) - r(t-2) - \mu(t-4)$'))
#x = rampa(t-1)-rampa(t-2)-paso(t-4)
#sym.plot(x, (t, 0, 6), ylim=[-2, 3 ], ylabel='$x(t)$', title='Suma de Señales');
$\large x(t) = r(t-1) - r(t-2) - \mu(t-4)$
display(Latex('$\large x(t)= 2r(t+3) - 4\mu(t-1) - 2r(t) + 2\mu(t-5) – \mu(-t-1)$'))
#x = 2*rampa(t+3) - 4*paso(t-1) - 2*rampa(t)+ 2*rampa(t-5)- paso(-t-1)
#sym.plot(x, (t, -5, 10), ylim=[-2, 7], ylabel='$x(t)$', title='Suma de Señales');
$\large x(t)= 2r(t+3) - 4\mu(t-1) - 2r(t) + 2\mu(t-5) – \mu(-t-1)$
display(Latex('$\large x(t) = \mu(t+2) – 2\mu(-t-1) + 2r(t-2)- 3r(t-4) + 2r(t+3)$'))
#x = paso(t+2) - 2*paso(-t-1) + 2*rampa(t-2) -3*rampa(t-4)+ 2*rampa(t+3)
#sym.plot(x, (t, -5, 10), ylim=[-3, 22], ylabel='$x(t)$', title='Suma de Señales');
$\large x(t) = \mu(t+2) – 2\mu(-t-1) + 2r(t-2)- 3r(t-4) + 2r(t+3)$
REFERENCIAS
Phd. Jose R. Zapata