多かれ少なかれ繰り返される信号があります(1つから次へと完全に同じではありません。左のプロットを参照してください)。自己相関を使用すると、最大値の数(右のプロット)が得られますが、相関が高い場所(どのサンプル番号)がわかりません。ラグは発生しますが、位置、つまり信号が発生する元のデータのサンプル番号に関する情報が失われます。たとえば、自動コアで。プロットでは、サンプル500の2番目のピークは、データプロットの約サンプル750の信号に対応している必要があります。データトレース上を移動して最大値を見つける小さなウィンドウを使用してこれを行うことができますが、時間がかかりすぎます。matlabでこれを行うより速い方法はありますか?ありがとう。
2 に答える
1
あなたは自己相関を誤解していると思います。5000での相関ピークは、時系列内の単一の場所によるものではなく、5000サンプルでオフセットされた場合に、時系列全体がそれ自体に類似しているという事実によるものです。そのピークの多くは、7500の時系列ピークと同様に、18000の時系列ピークによるものです。たとえば、真に周期的な時系列がない場合(つまり、次の場合)、自己相関は非常に奇妙になります。パルス間の間隔は不均一です)。
パルスの1つの例を分離し、必要な場所をt = 0として選択できる場合、その1つのパルスと時系列との相関により、必要なものが得られます。各パルスは、それが発生した時間位置で明確に点灯します。次に、ピークファインダーが必要です。
于 2012-11-28T13:56:55.167 に答える
0
はい、を使用して最大振幅の要素のインデックスを取得できます
treshold = max(a)/2
ind = find(a>=treshold)
ここで、aは相関結果を含む行列です。
于 2012-11-28T09:00:52.803 に答える