- 締切済み
相互相関関数について
研究で信号解析をするのに相互相関が必要になり、勉強をしています。そこで質問なのですが、信号h(i)とg(i)についてのプログラムを作成したところ、相互相関関数が1をこえるものがでてきます。相互相関関数波形により時間や振幅の類似性を見ることはわかるのですが、相互相関関数自体の値の意味がわからなく困っています。 普通相関といったら、-1<=ρ<=1の間で相関関係を見ているので、プログラムが間違っているのでしょうか? どなたかご教授お願いします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- uyama33
- ベストアンサー率30% (137/450)
相互相関関数の定義は 3種類以上あります。 そのうちのどれを使用するかで、 値は違ってきます。 -1<=ρ<=1の間で相関関係を見る ためには、標準偏差で割ることで、正規化します。 正規化したとしても、 有限信号の処理では 1.信号をサイクリックに扱って不足分を補うか 2.信号の不足分は、0で埋めるか これによって 相互相関関数のグラフが 長方形になるか、紡錘形になるか が決まってきます。 どんな定義式を利用しましたか? 詳しく書いて下さい。
- siegmund
- ベストアンサー率64% (701/1090)
信号解析は全くの素人ですので,そのつもりでお読み下さい. 相関は h と g の積の何らかの平均 (1) <hg> そのものでしょうか? もしそうなら,自分自身との相関 (2) <h^2> は h の値自体がどれくらいの大きさかの影響を直接受けることになります. 当然,1を越える場合もあります. 大体,h は単位のある量でしょうから,大きさが1を越えるかどうかというのは 全く意味がありません. 単位を変えれば当然数値は変わりますから. 普通,相関係数は (3) <HG> / {√[V(H)] √[V(G)]} が定義です.H と G は,それぞれ h,g の平均値からのずれ (4) H = h - <h>, G = g - <g> です. V(H) と V(G)は分散 (5) V(H) = <H^2>, V(G) = <G^2> です.分散の平方根(正の方)が標準偏差です. つまり,(3)の分母があることにより,一種の規格化をしていて, 相関係数が -1 から +1 の範囲になるようにしているのです. <H> の次元と √[V(H)] の次元は同じですから, (3)は無次元の量,すなわち単位の取り方には関係ありません. したがって,数値自体が意味を持ちます. もしかして,(3)の分母に相当するところが抜けていませんでしょうか? なお,(1)を相関関数と呼ぶのは普通の呼び方です.
- ykkw_2001
- ベストアンサー率26% (267/1014)
>プログラムが間違っているのでしょうか? ・・・だと思います。 ためしに、入力のh(i)とg(i)を同じものにして、デバグしてはどうでしょうか?