問題タブ [cross-correlation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
4825 参照

c# - 畳み込みを使用して、連続したサウンド ストリーム内のリファレンス オーディオ サンプルを見つける

より大きなオーディオ サンプルでリファレンス オーディオ サンプルを見つけることに関する私の以前の質問では、畳み込みを使用する必要があると提案されました。DSPUtil
を使用して、これを行うことができました。少し遊んで、オーディオ サンプルのさまざまな組み合わせを試して、結果がどうなるかを確認しました。データを視覚化するために、生の音声を数値として Excel にダンプし、この数値を使用してグラフを作成しました。ピーク見えますが、これがどのように役立つかはよくわかりません。私はこれらの問題を抱えています:

  • ピークの位置から元のオーディオ サンプルの一致の開始位置を推測する方法がわかりません。
  • これをオーディオの連続ストリームに適用する方法がわからないので、参照オーディオ サンプルが発生するとすぐに反応できます。
  • 画像 2 と画像 4 (以下を参照) がなぜそんなに違うのか理解できませんが、どちらもそれ自体で畳み込まれた音声サンプルを表しています...

どんな助けでも大歓迎です。

次の図は、Excel を使用して分析した結果です。

  1. 末尾近くにリファレンス オーディオ (ビープ音) がある長いオーディオ サンプル:
  2. ビープ音はそれ自体に畳み込まれました:
  3. ビープ音と畳み込まれたビープ音のない長いオーディオ サンプル:
  4. ポイント 3 の長い音声サンプルは、それ自体と畳み込まれています。

更新と解決策:
Han の広範な支援のおかげで、目標を達成することができました。
FFT を使用せずに独自の遅い実装を行った後、高速な実装を提供するalglibを見つけました。私の問題には 1 つの基本的な前提があります。音声サンプルの 1 つが完全に別のサンプルに含まれているということです。
したがって、次のコードは、2 つのオーディオ サンプルのうち大きい方のサンプルのオフセットと、そのオフセットでの正規化された相互相関値を返します。1 は完全な相関を意味し、0 はまったく相関がないことを意味し、-1 は完全な負の相関を意味します。

報奨金:
新しい回答は必要ありません! ハンのこの質問への継続的な取り組みに対して賞金を授与するために、私はバウンティを開始しました!

0 投票する
1 に答える
1902 参照

visual-c++ - Opencvの相関関数

Opencvで相関関数を学ぶのを手伝ってください。

いくつかの参考文献を読みましたが、正しい考えを得ることができません。相関を使用すると、元の画像と別の画像の関係を考慮して、2 つの画像を照合し、それらに重みを割り当てることができます。? (100%同じではなく、同じような2つの画像を一致させたいため) テンプレートの一致の種類は...?

誰かがネットのどこかで c++ のサンプル コードを教えてくれませんか。

ありがとうございました

0 投票する
2 に答える
24723 参照

math - 相互相関と相関係数に関する質問

重複の可能性:
Matlab相互相関と相関係数の質問

aMATLABで2 つのデータ セットb(それぞれ 73 ポイントの長さ)を相互に関連付けてグラフにすると、145 ポイントの三角形のように表示されます。+/- 1 の範囲の相互相関出力をプロットすると、相関係数と三角形のようなグラフの間で混乱します。

0 投票する
3 に答える
49446 参照

matlab - 組み込み関数を使用せずにmatlabで相互相関しますか?

xcorr組み込み関数と相関係数を使用せずに、MATLAB で 2 つの音声信号 (それぞれ 40,000 サンプル) の相互相関を行う方法を教えてください。

前もって感謝します。

0 投票する
1 に答える
201 参照

groovy - GroovyのX位置でY値を選択するにはどうすればよいですか?

これは一種の厄介な質問です...

これの前に、ここで月次データの正規化について質問がありました: 引き伸ばされたグラフのX値を生成する方法は?

私は良い答えを得ました、そしてそれはうまくいきます、唯一の問題は今私が28で月のX値に対して31日で1ヶ月のX値をチェックする必要があるということです。

したがって、私の質問は次のようになります。次のような2つのパラメータセットがある場合:

ご覧のとおり、一般的な傾向はこれら2つのデータセットで同じです。ただし、これらの値を相互相関関数(一般的な目標)で実行すると、データセットのサイズが2つ異なるため、これを反映していないものが返されます。

これの実際の例は、たとえば、1日に何マイル走るかを追跡している場合です。

2月(28日)の最初の週は、毎日1マイル走ります。2週目は、毎日2マイル走ります。

3月(31日)も同じことをしますが、1マイルで8日間、2マイルで8日間、3マイルで8日間、4マイルで7日間走ります。

次の関数による相関係数は、ほぼ正確に1である必要があります。

データセットを見るだけで、1、2、3、4、5、6、7、8、9、および10の値を取得した場合、グラフはまったく同じになるように見えます。関数は次のようになります。より正確な結果を生成します。

ただし、長さが同じではないため、ゆがんでいます。

12値データセットの整数の値を特定する方法はありますか?私はそれを行う簡単な方法を見つけていませんが、これは信じられないほど役に立ちます。

前もって感謝します、

5

編集:リクエストに応じて、グラフのX値を生成するコードは次のとおりです。

編集:別のリクエストに従ってコードが機能していません:

o変数宣言の「march」を(1..31)に切り替えると、スクリプトは正常に実行されます。「march」を使用しようとすると、「java.lang.NullPointerException:nullオブジェクトでメソッドgetAt()を呼び出せません」が表示されます。

また、悪い習慣であるという理由だけでコードを直接コピーしないようにしています。そのため、変更した関数の1つは基本的に同じことを実行します。これは、私のバージョンです。最終的には残りのリファクタリングにも取り掛かります。しかし、それがわずかに異なる理由です。

0 投票する
4 に答える
6521 参照

matlab - サンプル遅延の数を決定するために、送信信号と受信信号を相互相関させるコードを作成しようとしています

相互相関は、既知の広帯域信号を送信し、送信された信号をレーダー受信アンテナを介して受信した着信信号と相関させることにより、航空機までの距離を測定するために使用されます。

送信信号 x(n) の長さは N=512 で、受信信号 y(n) の長さは N=2048 です。

y(n)=kx(nd)+w(n); ここで、'kx(nd)' は x(n) を d サンプルだけ遅延させ、係数 k で減衰させたもので、w(n) は受信ノイズです。

x(n) を y(n) と相互相関させて、サンプル遅延の数である d の値を決定する MATLAB プログラムを作成しようとしています。また、送受信データが光速で移動することを前提として、航空機までの距離が 50 km 以内で 50 m の精度で決定される場合、適切なサンプリング周波数を決定します。

0 投票する
1 に答える
333 参照

algorithm - 画像の動きのキャリブレーション

一定期間にわたって撮影されたほぼ同一の一連の画像があります。ただし、画像内のオブジェクトは時間の経過とともにドリフトするため、これを修正したいと思います。これを行うのは何が良いですか?

[編集] わかりました、なぜこれを行うのかを説明する必要があるかもしれません。さまざまな X 線エネルギーでオブジェクトの一連の X 線画像を撮影しました。オブジェクトをさまざまなエネルギーで比較したいのですが、ドリフトするので、最初にドリフトを修正する必要があります。オブジェクトには、鋭利なエッジや、そうでなければ位置合わせに簡単に使用できるものはありません。したがって、より一般的な方法を探しています

0 投票する
1 に答える
2205 参照

matlab - 信号の相関

こんにちは私は2つの複雑な関数(サイズ1x1x2501)を持っており、これらの間の相関(相互相関)を行う必要があります。

私はこのコマンドを使おうとしました:

ここで、Hmimo_tbとHmimo_tb1は私の2つの信号であり、唯一の違いは、それらが異なる位置で測定されているという事実です。これら2つの信号の差は最大で1.5e-13に等しいため、ノイズの影響のみを受けます。

xcorrを使用して、「c」を分析すると、複雑であることがわかります。

このようにして、ラグ0を中心に正規化された、すべての実数値が得られます。私の問題は、相関係数を持つ行列を作成する必要があることです。私は私がこのようなものを持っているべきであることを意味します:

ここで、1はマトリックスの上側の最初のcorr(Hmimo_tb、Hmimo_tb)であり、もう1つはcor(Hmimo_tb1、Hmimo_tb1)です。

xcorrコマンドを使用すると、結果の分析に大きな問題が発生します。まず、値1が1つだけで、0に非常に近い値がたくさん見つかります。これは、0.8付近のすべての値を期待していたため、私にとっては奇妙なことです。 、0.9または1 ....代わりに、0.001またはこの値に近い値がたくさん見つかったのはなぜですか?これらの値をどのように解釈できますか?理論から、相関パラメーターが-1 <= p <= 1として定義されていることはわかっていますが、プロットの差が小さい2つの関数(1.5e-13について話している)が相関していない可能性はありますか?

迅速な支援を見つけたいと思っています。ありがとうございました。

0 投票する
1 に答える
1904 参照

matlab - corrcoefとxcorrの違い

2つの複雑な関数(サイズ1x1x2501)があり、これらの間の相関(相互相関)を行う必要があります。

私はこのコマンドを使おうとしました:

唯一の違いは、それらが異なる位置で測定されたという事実である私の2つの信号はどこHmimo_tbにありますか。Hmimo_tb1これら2つの信号の差は最大で1.5e-13に等しいため、ノイズの影響のみを受けます。

結果として次のようになります。

私が相関させようとしている関数は複雑ですが、0.0000iは私にいくつかの疑問を残します....別の疑問は、1.5eの違いがある前に私が言ったように信号が実際には等しくないという事実です-二次対角線で報告されていない-13なぜですか?

corrcoefとxcorrの違いは何ですか?


はい、これは私が試した真実です:

長いgをフォーマットする

そして私は結果としてこれを手に入れました:

列1

列2

小さな複素数値をどのように解釈できますか?それは何を表していますか?ありがとうございました

0 投票する
2 に答える
3436 参照

matlab - 考えられるすべての組み合わせをループする

スクリプトにループを含めて、データのすべての可能な組み合わせの相関関係を見つけたいと思います。これは、次のコードによって手動で実行できます。

しかし、私はこれをループで実行したいと思います。私は開始しましたが、最初のハードルで失敗しました。動作しない私の試行したループを以下に示します。

反復ごとに値の異なる組み合わせをループするようにmatlabに指示する方法を知るのに苦労しています。

提供された助けをいただければ幸いです。