• 締切済み

matlabで波形の相関をとるときの正規化について

基準となる波形といくつかのデータとしての波形があり、基準となる波形との相互相関係数からどの波形が一番基準の波形と似ているか知りたいときに、単純に畳み込み積分をすると、相関係数が振幅に左右されてしまいます。 波形の振幅に左右されずどの波形が一番基準の波形に似ているか知るにはどのように正規化したらよいでしょうか? すこしでもわかる方はよろしくお願いします。

みんなの回答

回答No.2

相関係数は普通2組のデータ間の相似性を求めるものなので、振幅は影響しません。 簡単な例として、y=x+bという関係がある(x,y)の組とy=2*x+cという関係がある(x,y)の組で相関係数を求める場合、データに乱れ(ノイズ)がなければどちらも相関係数は1となります。 (相関係数を求める段階で正規化しているので振幅は関係なし) つまり、2つのデータを(x,y)としてプロットし、それが直線に近ければ1又は-1に近い値になります。 1の場合はxが増えるとyも増える場合で-1はxが増えるとyが減る場合です。 相関係数が0というのは相関がない状態で、(x,y)でプロットした場合ばらばらな点になっている状態と考えてよいでしょう。

回答No.1

相関係数を求めるcorrcoefを使えばよいのでは? R=corrcoef(x,y); として、R(1,2)が相関係数です。

eru8r
質問者

お礼

回答ありがとうございます。corrcoefで相関係数を求めることができるのですが、正規化されていないので元の信号の振幅によって相関係数が変わってしまうようなことが起こると思うのですが、corrcoefではどうなのでしょうか?

関連するQ&A