1.6 Señales representadas como Suma de Señales Basicas

Invítame a un Café

# 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)$

png

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)$

png

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)$

png

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)$

png

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)$

png

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)$

png

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)$

png

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)$

png

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)$

png

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');

png


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');

png

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

Anterior