1

私は C++ でプログラムを書いていますが、相互相関を含む matlab のデータを使用しています。2 セットのデータに対して相関を行うと、それらが関連しているかどうかを示す単一の相関係数番号が得られることを理解しています。しかし、データ系列で相互相関を使用したいと考えています。Matlabで相互相関を実行すると、多くのデータが得られ、プロットすると三角形のように見えます...相関は+/- 1の間のどこかにあるはずですが、三角形の先端に向かうデータはそうではありません' t が同時に上がるなど。相互相関が私に与えているものと混乱していますか、それとも、相互相関が実際に各ポイント s(t)、p(t) の相関係数を与えるデータですか? 明確にするための助けをいただければ幸いです。

編集1(フォノンの応答後)

私の主な質問は次のとおりです。2 つのデータ系列を相互に相関させたときに得られるデータは、各ポイントの相関係数ですか。たとえば、(0,10) と (0,8) です。x=0 でこれらの 2 つのプロットの相関係数を取得しているデータはありますか?

4

3 に答える 3

2

Matlabではxcorr(x,x)、信号xの自己相関を示します。スケーリングされていません。これは、信号の内積とそれ自体のシフトされたバージョンのベクトルにすぎません。スケーリングするには、を使用しますxcorr(x,x,'coeff')。このコマンドは、信号のエネルギーによって自己相関をスケーリングします(つまり、各係数をゼロラグでの係数の値で除算します)。相互相関xcorr(x,y'coeff')実行している場合、スケーリングの実行方法が異なるため、値1とゼロラグは得られないことに注意してください。信号をそれ自体と相関させている場合は1になります(私があなたのためにそれを書き出すことができるように、私はSOがサポートする数式を望んでいます)。

于 2011-06-08T16:21:01.750 に答える
0

あなたはおそらくcorrcoef、そうではありませんxcorr

于 2011-06-08T16:40:37.393 に答える