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

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

採用された回答

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

サインインしてコメントする。

その他の回答 (0 件)

タグ

製品

Community Treasure Hunt

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

Start Hunting!