Demonstração de Xcorr e Acorr

Beginner

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

Introdução

O objetivo deste laboratório é demonstrar o uso de gráficos de correlação cruzada (cross-correlation) e autocorrelação (auto-correlation) utilizando a biblioteca Python Matplotlib. Correlação cruzada e autocorrelação são ferramentas matemáticas usadas para medir a similaridade entre dois sinais. A correlação cruzada mede a similaridade entre dois sinais diferentes, enquanto a autocorrelação mede a similaridade entre um sinal e uma versão dele mesmo com um atraso temporal. Essas ferramentas são comumente usadas em processamento de sinais, análise de imagens e análise de séries temporais.

Dicas para a VM

Após a inicialização da VM, clique no canto superior esquerdo para mudar para a aba Notebook e acessar o Jupyter Notebook para praticar.

Às vezes, pode ser necessário aguardar alguns segundos para que o Jupyter Notebook termine de carregar. A validação das operações não pode ser automatizada devido a limitações no Jupyter Notebook.

Se você enfrentar problemas durante o aprendizado, sinta-se à vontade para perguntar ao Labby. Forneça feedback após a sessão, e resolveremos o problema prontamente para você.

Importar Bibliotecas

Primeiramente, precisamos importar as bibliotecas necessárias. Neste laboratório, usaremos NumPy e Matplotlib.

import matplotlib.pyplot as plt
import numpy as np

Gerar Dados Aleatórios

Em seguida, geraremos dois arrays de dados aleatórios usando NumPy. Usaremos esses arrays para demonstrar a correlação cruzada e a autocorrelação.

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

Plotar Correlação Cruzada

Agora, plotaremos a correlação cruzada entre os dois arrays usando a função xcorr em Matplotlib.

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

A função xcorr recebe os seguintes parâmetros:

  • x: o primeiro array de dados
  • y: o segundo array de dados
  • usevlines: booleano, se deve plotar linhas verticais de 0 ao valor da correlação
  • maxlags: inteiro, o número máximo de lags para calcular a correlação
  • normed: booleano, se deve normalizar os valores da correlação
  • lw: inteiro, a largura da linha para o gráfico

Plotar Autocorrelação

Agora, plotaremos a autocorrelação do array x usando a função acorr em Matplotlib.

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

A função acorr recebe os seguintes parâmetros:

  • x: o array de dados para calcular a autocorrelação
  • usevlines: booleano, se deve plotar linhas verticais de 0 ao valor da correlação
  • normed: booleano, se deve normalizar os valores da correlação
  • maxlags: inteiro, o número máximo de lags para calcular a correlação
  • lw: inteiro, a largura da linha para o gráfico

Resumo

Neste laboratório, aprendemos como usar gráficos de correlação cruzada e autocorrelação em Python Matplotlib. Primeiro, importamos as bibliotecas necessárias e, em seguida, geramos dados aleatórios usando NumPy. Depois, plotamos a correlação cruzada e a autocorrelação dos dados usando as funções xcorr e acorr em Matplotlib. Essas ferramentas são úteis para medir a similaridade entre dois sinais e são comumente usadas em processamento de sinais, análise de imagens e análise de séries temporais.