import numpy as np
import matplotlib.pyplot as plt
def descomponer_senal(senal):
# Descomposición en componentes par e impar
componente_par = (senal + np.flip(senal)) / 2
componente_impar = (senal - np.flip(senal)) / 2
return componente_par, componente_impar
# Ejemplo de señal
tiempo = np.linspace(0, 1, 1000, endpoint=False) # 1000 puntos en 1 segundo
senal_original = np.sin(2 * np.pi * 5 * tiempo) + 0.5 * np.random.normal(size=1000)
# Descomposición de la señal
componente_par, componente_impar = descomponer_senal(senal_original)
# Gráficos de las señales originales y descompuestas
plt.figure(figsize=(12, 6))
plt.subplot(3, 1, 1)
plt.plot(tiempo, senal_original)
plt.title('Señal original')
plt.subplot(3, 1, 2)
plt.plot(tiempo, componente_par)
plt.title('Componente par')
plt.subplot(3, 1, 3)
plt.plot(tiempo, componente_impar)
plt.title('Componente impar')
plt.tight_layout()
plt.show()