Xcorr Acorr デモ

Beginner

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

はじめに

この実験の目的は、Python の Matplotlib ライブラリを使用して相関関数と自己相関関数のプロットの使用方法を示すことです。相関関数と自己相関関数は、2 つの信号間の類似性を測定するために使用される数学的ツールです。相関関数は 2 つの異なる信号間の類似性を測定し、自己相関関数は信号とそれ自体の時間遅延バージョン間の類似性を測定します。これらのツールは、信号処理、画像分析、時系列分析で一般的に使用されます。

VM のヒント

VM の起動が完了したら、左上隅をクリックしてノートブックタブに切り替え、Jupyter Notebook を使って練習しましょう。

時々、Jupyter Notebook が読み込み終了するまで数秒待つ必要がある場合があります。Jupyter Notebook の制限により、操作の検証を自動化することはできません。

学習中に問題に直面した場合は、Labby にお問い合わせください。セッション後にフィードバックを提供してください。すぐに問題を解決いたします。

ライブラリのインポート

まず、必要なライブラリをインポートする必要があります。この実験では、NumPy と Matplotlib を使用します。

import matplotlib.pyplot as plt
import numpy as np

ランダムなデータの生成

次に、NumPy を使って 2 つのランダムなデータの配列を生成します。これらの配列を使って相関関数と自己相関関数を示します。

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

相関関数のプロット

次に、Matplotlib のxcorr関数を使って 2 つの配列間の相関関数をプロットします。

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

xcorr関数は以下のパラメータをとります。

  • x: 最初のデータ配列
  • y: 2 番目のデータ配列
  • usevlines: 0 から相関値までの垂直線をプロットするかどうかを表すブール値
  • maxlags: 相関を計算する最大のラグ数を表す整数
  • normed: 相関値を正規化するかどうかを表すブール値
  • lw: プロットの線幅を表す整数

自己相関関数のプロット

次に、Matplotlib のacorr関数を使ってx配列の自己相関関数をプロットします。

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

acorr関数は以下のパラメータをとります。

  • x: 自己相関を計算するデータの配列
  • usevlines: 0 から相関値までの垂直線をプロットするかどうかを表すブール値
  • normed: 相関値を正規化するかどうかを表すブール値
  • maxlags: 相関を計算する最大のラグ数を表す整数
  • lw: プロットの線幅を表す整数

まとめ

この実験では、Python の Matplotlib を使って相関関数と自己相関関数のプロットを作成する方法を学びました。まず必要なライブラリをインポートし、次に NumPy を使ってランダムなデータを生成しました。そして、Matplotlib のxcorr関数とacorr関数を使ってデータの相関関数と自己相関関数をプロットしました。これらのツールは、2 つの信号間の類似性を測定するのに役立ち、信号処理、画像分析、時系列分析で一般的に使用されます。