MATLAB Answers

normxcorr2​により自己相関関数は​求まりますか?

12 views (last 30 days)
rin hayashi
rin hayashi on 8 Apr 2020
Commented: rin hayashi on 15 Jul 2020
normxcorr2を使用して自己相関関数を求めております。
操作として、normxcorr2の引数2つに同一のデータを使用しました。
具体的なコードは下記の通りです。
A = eye(10,10);
A2 = normxcorr2(A,A);
本来、A2(10,10)は引数の差異が0であり1になるはずですが、1.000000000000001のように誤差が生じる結果となりました。
この原因として、normxcorr2の使用方法に誤りがあると推測しています。
実際、normxcorr2のヘルプセンターのページで、
「意味のある正規化をするには、引数2が引数1よりも大きくなければならない」
と記載されています。
以上の計算誤差が生じる具体的な原因が何であるのかご回答をいただきたいです。
よろしくお願いします。

  0 Comments

Sign in to comment.

Accepted Answer

Etsuo Maeda
Etsuo Maeda on 13 Apr 2020
回答がついていないようなので
二次元相関係数をもとめるだけならcorr2でよいかとおもいます。
1.000000000000001 は浮動小数点数の誤差の累積ですね。
"意味のある正規化をするには、引数2が引数1よりも大きくなければならない" は正規化された相互相関係数をもとめるnormxcorr2において、templateよりもAが小さい場合何がおきるのか確かめてみてください。
以上、ご参考まで

  1 Comment

rin hayashi
rin hayashi on 15 Jul 2020
ご回答いただきありがとうございます.
ご返信が遅れてしまい申し訳ありません.
>二次元相関係数をもとめるだけならcorr2でよいかとおもいます。
算出した二次元相関係数を基に比較を行うため,正規化を行おうとしておりました.
corr2も使用してみようと思います.
>1.000000000000001 は浮動小数点数の誤差の累積ですね。
累積誤差なのですね...二次元自己相関係数を求めるために同じデータを引数2と引数1に代入していたことが1.000000000000001 の原因かと考えていました.
>"意味のある正規化をするには、引数2が引数1よりも大きくなければならない" は正規化された相互相関係数>をもとめるnormxcorr2において、templateよりもAが小さい場合何がおきるのか確かめてみてください。
承知しました.確認してみようと思います.

Sign in to comment.

More Answers (0)

Tags

Products

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!