1.4 Señales Periódicas y No periódicas (aperiódicas)



señal periódica y aperiódica

1. Señal Periódica

Referencia: Oppenheim 1.2.2 p11, Hsu Cap1.2,F p4, Lathi 1.3.3. p79

señal periódica marcar un periodo

Una señal periódica contínua tiene la propiedad que su valor se repite luego de un desplazamiento de tiempo T. El valor de T es conocido como el "periodo de la señal" que es el tiempo en el que se vuelve a repetir la forma de onda a partir de un punto de referencia.

x(t) = x(t+T)

La relación entre el periodo T y la frecuencia f se da por la ecuación:

f = \frac{1}{T} \text{, en Hz} \omega = 2 \pi f = \frac{2 \pi}{T} \text{, en rad/s}

otra forma de escribir la ecuación es:

x(t) = x(t + mT)

para cualquier valor de t y cualquier número entero m. El periodo fundamental T0 de x(t) es el valor positivo más pequeño que hace posible la ecuación descrita.

1.1 Algoritmo en Python para señal periódica

Las instrucciones son semejantes a graficar señales contínuas. Para el ejemplo se analiza la señal coseno(t), con periodo T=2π para un en un intervalo de dos periodos m=2 y 51 muestras. Se crea el vector ti para el intervalo de observación y se calcula la señal.

# Señales periodicas
import numpy as np

# INGRESO
T = 2*np.pi
f = 1/T
w = 2*np.pi*f
fx = lambda t: np.cos(w*t)
t0 = 0   # intervalo tiempo [t0,tn]
m  = 2   # incluir m periodos en grafica
muestras  = 51
desde = T/4 # marcar periodo [desde,hasta]

# PROCEDIMIENTO
tn = m*T   # vector de tiempo
ti  = np.linspace(t0,tn,muestras)
# dt = ti[1]-ti[0]
dt = (tn-t0)/(muestras-1)

senal = fx(ti)

# marcar un periodo en [desde, hasta]
hasta = desde + T + dt
tperiodo = np.arange(desde,hasta,dt)
periodo  = fx(tperiodo)

1.2 Gráfica para señal periódica

La gráfica se conforma de dos partes:

  • la señal calculada
  • la señal marcada en un periodo
# SALIDA

# GRAFICA
import matplotlib.pyplot as plt

plt.plot(ti,senal)

# entorno de gráfica
plt.xlabel('t')
plt.ylabel('señal x(t)')
plt.grid()
plt.axhline(0, color='gray')
plt.axvline(0, color='gray')

# marcar un periodo
plt.title('marcando un periodo')

plt.fill_between(tperiodo,0, periodo,facecolor='green')

plt.tight_layout()

plt.show()


2. Señal periódica discreta

señal periódica muestras gráfica

Se define semejante a las señales periódicas contínuas como una secuencia discreta en el tiempo x[n]. La señal es periódica con periodo N si existe un número entero positivo para el que:

x[n + N] = x[n] \text{, para todo n} x[n + mN] = x[n]

para todo n y cualquier entero m

El periodo fundamental N0 de x[n] es el valor positivo mas pequeño para que se cumpla la ecuación en la secuencia de datos de la señal.

Como ejemplo se usa una señal muestreada del coseno.

2.1 Algoritmo señal periódica discreta

Semejante al algoritmo del ejercicio anterior, se genera la nueva gráfica en forma discreta.

# Señales periodicas Discretas
import numpy as np

# INGRESO parametros
N  = 8
w  = 2*np.pi/N
fx = lambda n: np.cos(w*n)
n0 = 0   # intervalo [n0,n0+muestras]
m  = 4   # incluir m periodos en grafica

# PROCEDIMIENTO
muestras = m*N+1
ni = np.arange(n0,n0+muestras,1)
senal = fx(ni)

# SALIDA

# GRAFICA
import matplotlib.pyplot as plt

plt.stem(ni,senal)

# entorno gráfica
plt.xlabel('n')
plt.ylabel('x[n]')
plt.grid()
plt.tight_layout()

plt.show()


3. Señal No periódica o Aperiódica

señal aperiódica

En éste caso, los valores de la señal x(t) no se repiten para ningún valor de T.

También para algunos problemas se considera que T → ∞.

Un ejemplo del tipo de señal es: x(t)=t^2

3.1 Algoritmo señal aperiódica

Usando lo realizado para señales periódicas contínuas, cambiando la función fx y quitando las marcas de un periodo.

# Señales NO periodicas contínuas
import numpy as np

# INGRESO
T = 2*np.pi
f = 1/T
w = 2*np.pi*f
fx = lambda t: t**2
t0 = 0   # intervalo tiempo [t0,tn]
m  = 2   # incluir m periodos en grafica
muestras  = 51

# PROCEDIMIENTO
tn = m*T   # vector de tiempo
ti  = np.linspace(t0,tn,muestras)

senal = fx(ti)

# SALIDA
# GRAFICA
import matplotlib.pyplot as plt

plt.plot(ti,senal)

# entorno de gráfica
plt.xlabel('t')
plt.ylabel('señal x(t)')
plt.grid()
plt.axhline(0, color='gray')
plt.axvline(0, color='gray')
plt.tight_layout()

plt.show()

Para el caso de señal discreta, considere el punto de partida del algoritmo correspondiente y modifique:

yn = lambda n: n**2

# SALIDA - Gráfica
plt.stem(ni,yi)

plt.xlabel('n')
plt.ylabel('y[n]')
plt.tight_layout()

plt.show()
señal aperiódica discreta gráfica


Tarea

Pruebe con otras funciones contínuas para x(t) como:

  • t^3
  • e^t
  • \frac{1}{t}

en Python, el exponente se escribe como: t**3 y en la otra función np.exp(t)

Realizar el mismo paso para sus formas discretas.




Unidades SS