Graficar la coherencia de dos señales

Beginner

This tutorial is from open-source community. Access the source code

Introducción

Esta práctica demuestra cómo trazar la coherencia de dos señales utilizando la biblioteca Matplotlib de Python. La coherencia de dos señales es una medida de su relación lineal, con un valor de 1 que indica coherencia perfecta y un valor de 0 que indica ausencia de coherencia.

Consejos sobre la VM

Una vez finalizada la inicialización de la VM, haga clic en la esquina superior izquierda para cambiar a la pestaña Cuaderno y acceder a Jupyter Notebook para practicar.

En ocasiones, es posible que tenga que esperar unos segundos a que Jupyter Notebook termine de cargarse. La validación de las operaciones no se puede automatizar debido a las limitaciones de Jupyter Notebook.

Si tiene problemas durante el aprendizaje, no dude en consultar a Labby. Deje su retroalimentación después de la sesión y resolveremos rápidamente el problema para usted.

Importar bibliotecas

El primer paso es importar las bibliotecas necesarias. Vamos a utilizar NumPy y Matplotlib.

import matplotlib.pyplot as plt
import numpy as np

Generar señales

A continuación, generaremos dos señales con una parte coherente a 10 Hz y una parte aleatoria. También agregaremos ruido blanco a las señales.

## Fixing random state for reproducibility
np.random.seed(19680801)

dt = 0.01
t = np.arange(0, 30, dt)
nse1 = np.random.randn(len(t))                 ## white noise 1
nse2 = np.random.randn(len(t))                 ## white noise 2

s1 = np.sin(2 * np.pi * 10 * t) + nse1
s2 = np.sin(2 * np.pi * 10 * t) + nse2

Graficar señales

Ahora podemos graficar las dos señales en el dominio del tiempo utilizando Matplotlib.

fig, axs = plt.subplots(2, 1)
axs[0].plot(t, s1, t, s2)
axs[0].set_xlim(0, 2)
axs[0].set_xlabel('Time')
axs[0].set_ylabel('s1 and s2')
axs[0].grid(True)

Graficar coherencia

Ahora podemos graficar la coherencia de las dos señales utilizando la función cohere de Matplotlib.

cxy, f = axs[1].cohere(s1, s2, 256, 1. / dt)
axs[1].set_ylabel('Coherence')

Mostrar la gráfica

Finalmente, podemos mostrar la gráfica utilizando la función show de Matplotlib.

fig.tight_layout()
plt.show()

Resumen

Esta práctica mostró cómo graficar la coherencia de dos señales utilizando la biblioteca Matplotlib de Python. Generamos dos señales con una parte coherente a 10 Hz y una parte aleatoria, agregamos ruido blanco a las señales y graficamos las señales en el dominio del tiempo y su coherencia utilizando la función cohere de Matplotlib.