Tracer la cohérence de deux signaux

Beginner

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

Introduction

Ce laboratoire montre comment tracer la cohérence de deux signaux à l'aide de la bibliothèque Matplotlib de Python. La cohérence de deux signaux est une mesure de leur relation linéaire, avec une valeur de 1 indiquant une cohérence parfaite et une valeur de 0 indiquant aucune cohérence.

Conseils sur la VM

Une fois le démarrage de la VM terminé, cliquez dans le coin supérieur gauche pour basculer vers l'onglet Notebook pour accéder à Jupyter Notebook pour la pratique.

Parfois, vous devrez peut-être attendre quelques secondes pour que Jupyter Notebook ait fini de charger. La validation des opérations ne peut pas être automatisée en raison des limitations de Jupyter Notebook.

Si vous rencontrez des problèmes pendant l'apprentissage, n'hésitez pas à demander à Labby. Donnez votre feedback après la session, et nous résoudrons rapidement le problème pour vous.

Importation des bibliothèques

La première étape consiste à importer les bibliothèques nécessaires. Nous utiliserons NumPy et Matplotlib.

import matplotlib.pyplot as plt
import numpy as np

Générer des signaux

Ensuite, nous allons générer deux signaux avec une partie cohérente à 10 Hz et une partie aléatoire. Nous ajouterons également du bruit blanc aux signaux.

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

Tracer les signaux

Nous pouvons maintenant tracer les deux signaux dans le domaine temporel à l'aide de 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 et s2')
axs[0].grid(True)

Tracer la cohérence

Nous pouvons maintenant tracer la cohérence des deux signaux à l'aide de la fonction cohere de Matplotlib.

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

Afficher le tracé

Enfin, nous pouvons afficher le tracé à l'aide de la fonction show de Matplotlib.

fig.tight_layout()
plt.show()

Sommaire

Ce laboratoire a démontré comment tracer la cohérence de deux signaux à l'aide de la bibliothèque Matplotlib de Python. Nous avons généré deux signaux avec une partie cohérente à 10 Hz et une partie aléatoire, ajouté du bruit blanc aux signaux et tracé les signaux dans le domaine temporel et leur cohérence à l'aide de la fonction cohere de Matplotlib.