ムカデノワラジ

ムカデノワラジ

ガジェット・Webサービス・プログラミング・エンタメについて書く雑記ブログ

MENU

python numpy を使った時間差の計測

相互相関係数の利用

相互相関係数

 

性質の似た(特に時系列の)2つの信号、波、ベクトルの類似度を計測する。

単純に二つの信号を比較するときはその信号の式をx(t)、y(t)とするとx(t)、y(t)の差の2乗の期待値を使う。

これをあれこれいじって(詳細は割愛)x、yベクトルの間の角度によって類似度を表せる。

 

信号の遅れ(ラグ)を検出するときは一方のグラフを平行移動しながらそれぞれ類似度を確認する。

 

   相互相関関数が最大値を取る値が二つの信号の遅延を確かめられる。

   誤差tでの類似度を確認するのを±∞までやってる。

   直観的に書くと

   誤差0の類似度 ○○

   誤差1の類似度 ○○

   、

   、

   、

   誤差nの類似度 ○○

   、

   、

   、

   

   このうち○○が最大になる誤差が二つの信号の時間差。

   

   相互相関係数は相互相関係数の最大値が1になるように調整されたもの。

numpy.correlate(a,b,mode)の利用

a,bは配列

 

時間差をもっている二つの波の時間差の計測

mode="full"ですると相互相関関数を返す。

matplotlibで描画できる。