質問: 同じ情報を持つ2つの信号をどのようにマッチさせるか 私は同じ情報を含む2つの信号S1とS2を持っていますが、S2はS1に比べて未知の量だけずらしてスケーリングされています(しかし、シフトは1〜10サンプル程度です)。 S1に「一致」させるためにS2に適用するシフトおよびスケーリング係数を計算(または推定)する最良(=最も有効かつ単純です)方法は何ですか。 私は、FFTで位相情報を使用することを指しているいくつかの論文を読みましたが、スケーリングが本当に問題ではない信号に取り組んでいました(とにかく完全に理解していないことを認めなければなりません)。私はMatlabで実際にこれを実装する方法について少し失われています(実際に私はOctaveを使用しています)。 可能であれば、Matlab/Octaveコードを使って説明したいと思います。 助けてくれてありがとう。 スティーブ PS:私はそのようなテクニックが(例えばパノラマの)画像の自動ステッチングで使用されると思われるので、「画像処理」というタグを付け加えます。
回答: 特にシフトとスケールを見つける場合は、Matlabの相互相関関数を使用できます。 Matlab xcorr関数のいくつかの追加オプションは次のとおりです。 ``` x = xcorr(s1, s2, M, 'unbiased'); ``` ここで `M` は相互相関関数を計算するためのラグの最大数です。 入力引数 `unbiased` は、信号の有限長効果を処理します。バイアスされた推定器は、 $ n r [k] = \ frac {1} {N} \ sum_ {n = 1} ^ N s_1 [n] s_2 [n-k] $$ 不偏推定器は、 $ n r [k] = \ frac {1} {N-k} \ sum_ {n = 1} ^ N s_1 [n] s_2 [n-k] $$ $ s_1 $と$ s_2 $の関係が整数遅延よりも複雑で、ウィーナーフィルタ[ウィキペディア](https://en.wikipedia.org/wiki/>を計算するのが得策です。 Wiener_filter )を参照してください。関係が経時的に変化する場合、例えばlmsアルゴリズムを使用する適応フィルタが有用であり得る。