2011-01-21 26 views
3

2つの異なるセンサーからのデータを2つの別々のベクトルにロードしました。これらのセンサは同じ加速度を測定し、したがってそれらのパターンは同じです。ただし、測定ノイズのため、両方の値が若干異なります。また、サンプリング周波数と遅延が異なるため、1つのベクトルの長さは他のベクトルの長さよりも長くなります。MATLABで長さの異なる2つのベクトルを一致させる

私の質問は、これら2つのベクトルをどのように等しくするかです。つまり、vectorBの特定の読みに対応するvectorAの読みを見つける必要があります。私はfindpeaks()関数を使って極値を比較しようとしましたが、どのように正確にそれについて行くのか分かりません。

ありがとうございます!

+6

いくつかの注釈(実際の答えを出すにはあまりにも怠惰です):ベクトルの1つを他のものと同じサンプリング周波数に補間し、それらを同じ長さに切り取り、相互相関関数のピークを見つけて相対オフセット。このオフセットを元のサンプリング周波数に再スケーリングします。 –

+0

返信いただきありがとうございます!私は質問があります、もし私がセンサーのサンプリング周波数を知らないのであれば?私はWM +とスマートフォンのコンパスを使用しており、私はサンプリング周波数の正確な尺度を見つけることができません。特定の時間内のサンプル数のために周波数が異なることがわかります。また、平均サンプリング期間分析を行うと、ネットワーク/プロセス遅延などによる誤差を考慮することはできません。元のサンプリング周波数を提供せずに、別のベクトルに「収束」できるMATLAB関数はありますか? – Imelza

+0

は、一定の周波数で各センササンプリングしていますか? – Jonas

答えて

3

元のサンプルレートを使わずに "一致"する方法はありません。これは、データが実際には時間と大きさの両方であるためです。時間切れにした場合、サンプルがいつ発生したかを知ることができないため、発生したサンプルと異なるサンプルがあるかどうかを知ることができません(別の時間に発生した可能性があります)。

データが比較的近い場合は、サンプル周波数の相対的な差異を推定して再サンプリングすることができますが、サンプリングの精度によってはうまくいかない場合があります。

サンプルレートがほぼ一定であると想定できますか? R以上 - あなたがする探しているもの

は、関数に

int型(G(T)||^2 || F(R * tを))を最小化です。

本質的には、fの時間軸をgに一致するまでスケーリングします。同じ割合が一定でない場合、rはtの関数である。これは、minが一意ではない可能性が高いので問題を難しくします(ただし、rの最小限の有界バリエーションがあるかもしれません)。

たとえば、さまざまなrについてその式を計算し、rのある範囲の最小値を見つけることができます。式がある範囲内にない場合、それを「一致」として拒否することができます。

カルマンフィルタを使用するなど、より高度な操作を行うことで、結果をさらに絞り込むことができます。

あなたのデータがどれほど正確で、結果がどれくらい正確であるかは、本当に誰かを殺す偽陽性ですか?

あなたは同じデータであると言いますから、あなたは出発点を持っています。これは、上記の最小化問題であなたにユニークなrを与えるはずです。サンプルレートはほぼ一定であると仮定しなければならない(または最小化問題を適応させる)必要があります。

もっと良い方法は、代わりにサンプリングレート/タイムポイントを取得することですか? (その後、問題はほとんど些細になります)。

3

いくつかのデータを収集できると仮定すると、両方のセンサーのサンプリング周波数を較正できます。 2つの加速度計の場合、携帯電話をバケツの内側の壁にテープで固定し、床に沿って転がすなど、何か不思議なことを意味する可能性があります。結果のデータを見ると、両方のセンサーからの相関信号が得られるはずです。両方のセンサデータのFFTを取ることで、サンプリングレートのマッチング方法を確認することができます。携帯電話を枕や折り畳み式の毛布に落とすなど、突然の加速イベントを起こすことによって、期間内のオフセットを説明することができます。

2つのセンサーのサンプリング周波数が較正されたら、それらの2つのセンサーのサンプリング周波数を一致させてベクトルを一致させることができます。残念ながら、センサが互いに任意の方法で初期化されていれば、これは役に立ちません。独立した周辺機器を備えたマルチタスクOSでは、このアプローチは2つのトレースの間のオフセットを得るのにあまり効果的ではないかもしれません。しかし、少なくとも、各センサーのサンプリングレートが何であるかを知るのに役立つはずです。信号が同じレートでリサンプリングされた場合、コンボリューションをとると(上で示唆したように)、収集されたデータからリアルタイムでオフセットを判断できます。

関連する問題