Demostración de Xcorr y Acorr

Beginner

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

Introducción

El propósito de este laboratorio es demostrar el uso de gráficos de correlación cruzada y autocorrelación utilizando la biblioteca Matplotlib de Python. La correlación cruzada y la autocorrelación son herramientas matemáticas utilizadas para medir la similitud entre dos señales. La correlación cruzada mide la similitud entre dos señales diferentes, mientras que la autocorrelación mide la similitud entre una señal y una versión retrasada en el tiempo de sí misma. Estas herramientas se utilizan comúnmente en el procesamiento de señales, el análisis de imágenes y el análisis de series de tiempo.

Consejos sobre la VM

Una vez que se haya iniciado la VM, haga clic en la esquina superior izquierda para cambiar a la pestaña Cuaderno y acceder a Jupyter Notebook para practicar.

A veces, 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 preguntar a Labby. Deje comentarios después de la sesión y lo resolveremos rápidamente para usted.

Importar bibliotecas

Primero, necesitamos importar las bibliotecas necesarias. En este laboratorio, usaremos NumPy y Matplotlib.

import matplotlib.pyplot as plt
import numpy as np

Generar datos aleatorios

A continuación, generaremos dos arrays de datos aleatorios utilizando NumPy. Utilizaremos estos arrays para demostrar la correlación cruzada y la autocorrelación.

np.random.seed(19680801)
x, y = np.random.randn(2, 100)

Graficar la correlación cruzada

Ahora graficaremos la correlación cruzada entre los dos arrays utilizando la función xcorr en Matplotlib.

fig, ax = plt.subplots()
ax.xcorr(x, y, usevlines=True, maxlags=50, normed=True, lw=2)
ax.grid(True)
plt.show()

La función xcorr toma los siguientes parámetros:

  • x: el primer array de datos
  • y: el segundo array de datos
  • usevlines: booleano, indica si se deben graficar líneas verticales desde 0 hasta el valor de correlación
  • maxlags: entero, el número máximo de retrasos para calcular la correlación
  • normed: booleano, indica si se deben normalizar los valores de correlación
  • lw: entero, el ancho de línea para la gráfica

Graficar la autocorrelación

Ahora graficaremos la autocorrelación del array x utilizando la función acorr en Matplotlib.

fig, ax = plt.subplots()
ax.acorr(x, usevlines=True, normed=True, maxlags=50, lw=2)
ax.grid(True)
plt.show()

La función acorr toma los siguientes parámetros:

  • x: el array de datos para calcular la autocorrelación
  • usevlines: booleano, indica si se deben graficar líneas verticales desde 0 hasta el valor de correlación
  • normed: booleano, indica si se deben normalizar los valores de correlación
  • maxlags: entero, el número máximo de retrasos para calcular la correlación
  • lw: entero, el ancho de línea para la gráfica

Resumen

En este laboratorio, aprendimos cómo utilizar gráficos de correlación cruzada y autocorrelación en Python Matplotlib. Primero importamos las bibliotecas necesarias, luego generamos datos aleatorios utilizando NumPy. Luego graficamos la correlación cruzada y la autocorrelación de los datos utilizando las funciones xcorr y acorr en Matplotlib. Estas herramientas son útiles para medir la similitud entre dos señales y se utilizan comúnmente en el procesamiento de señales, análisis de imágenes y análisis de series de tiempo.