最近、いつ泣きましたか?

波形解析について初心者の為、分かりづらいかもしれませんが宜しくお願い致します。

例えば、Excel等で単位の異なる二系列の折れ線グラフを描画したとします。

この二つのデータの波形が、どれくらい似ているかを調べるにはどの様な方法があるでしょうか。

解析ツール等を使うという方法ではなく、具体的な計算方法を教えて頂きたいのです。

二つの波形間を積分して、その面積を求めれば良いのか、フーリエ解析をすれば良いのか。。。等など通常はどのように解析しているのか、考えても良く分かりません。

どうぞ宜しくお願い致します。

A 回答 (1件)

時間的に伸縮はしていないと仮定して話をします。


二つの波形(ディジタル)を x(k),y(k) (k=0,1,2,...,N-1) とします。
二つの波形の相関は
R = Σ x(k)y(k) で定義されます。Σは 0 から (N-1) までを取ります。
R が大きければ二つの波形は似ているのですが、残念なことに一方の波形の振幅が大きいとき、似ていなくても R が大きくなります。
そこで、類似度
S = R / (PX PY)
を計算します。PX, PY は波形の二乗和の平方根です(自分自身との相関の平方根と言うこともできます)。
一般に 1 ≧ S ≧ -1 で、S = 1 になるのは、二つの波形が正定数係数を除いて一致するときです。したがって、S の大きさにより類似性が判定できます。

なお、以上は時間的にずれがない場合です。ずれがあり、しかも未知の場合は
R = Σ x(k)y(k)
の代わりに
R = Σ x(k-d)y(k)
をいろいろな d について計算し、R が最大になるような d が二つの波形のずれであると考えます。

二つの波形の間で時間的に伸縮のある場合は、長さを揃える(正規化)が必要です。

一番難しいのは、時間的に伸縮していて、しかもその伸縮が時間的に一様でないときです。音声認識でDTW(Dynamic Time Warping)と呼ばれる手法があり、技術として確立しています。動的計画法(Dynamic Programming)を使います。
    • good
    • 1
この回答へのお礼

ご丁寧なご回答、本当にありがとうございました!!

数学的にどう計算して良いのか、さっぱり分からずでしたので、とても助かりました。
この方法で調べてみようと思います。

お礼日時:2006/07/26 08:43

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています