第 3 章 リファレンス 55
3.3 WaveField クラス
3.3.20 誤差・効率などを計測するためのメンバー関数
オブジェクトがグローバル原点以外の位置に移動している場合も位相関係が狂うことなく計算される.しかし,
対象オブジェクトが傾いている場合は正しい計算結果が得られない.
3.3 WaveFieldクラス 111 double GetAbsoluteMax(void) const
double GetAmplitudeMax(void) const
戻り値 サンプル点の振幅値(絶対値)の最大値.
説 明 ウィンドウ領域内のサンプル点の振幅値(絶対値)の最大値を求める.
double GetAmplitudeMaxWhole(void) const
戻り値 サンプル点の振幅値(絶対値)の最大値.
説 明 ウィンドウ領域に関係なく,全てのサンプル点の振幅値(絶対値)の最大値を求める.
double GetAmplitudeVariance(void) const
戻り値 サンプル点の振幅値(絶対値)の分散値.
説 明 ウィンドウ領域内のサンプル点の振幅値(絶対値)の分散値を求める.
ComplexDouble GetScaleFactor(const WaveField& signal) const
戻り値 スケールファクター
説 明 signalオブジェクトに対する対象オブジェクトのスケールファクターを計算する.スケールファクターと
は,対象関数f(x, y)とシグナル関数fsig(x, y)に対して,総和
∑
(m,n)∈W
|f(xm, yn)−αfsig(xm, yn)|2
を最小にするような複素数αであり,
α=
∑
(m,n)∈W
f(xm, yn)fsig∗ (xm, yn)
∑
(m,n)∈W
|fsig(xm, yn)|2
で定義される.ここで,W はウィンドウ領域である.従って,計算は対象オブジェクトとsignalオブジェク トのウィンドウ領域に対して行われる.両者のウィンドウサイズが異なる場合には,両者のウィンドウ領域の左 下角を一致させ,signalオブジェクトのウィンドウサイズで計算が行われる(図3.4参照).
double GetSnr(const WaveField& signal, const ComplexDouble& scaleFactor) const
戻り値 S/N比
説 明 signalオブジェクトに対するS/N比を,スケールファクターscaleFactorを用いて計算する.計算は対 象オブジェクトとsignalオブジェクトのウィンドウ領域に対して行われる.両者のウィンドウサイズが異なる 場合には,両者のウィンドウ領域の左下角を一致させ,signalオブジェクトのウィンドウサイズで計算が行わ
れる(図3.4). Note
• スケールファクターの計算にはGetScaleFactor()メンバー関数を用いる.
図3.4 GetSnr()のウィンドウ領域
double GetEnergyRatioInWindow(void) const
戻り値 エネルギーの比率(最大1.0)
説 明 オブジェクトの全体のエネルギーに対するウィンドウ領域内エネルギーの比率を計算して戻す.
WaveField& CreateRealHistogram(int level = 512) const
戻り値 1次元WaveFieldオブジェクト
説 明 オブジェクトの実部サンプル値のヒストグラムをlevel段階で計算し,それを格納した1次元WaveField オブジェクトを生成して戻す.この関数は,2値振幅変調型ホログラム作成における閾値の決定を支援するため の関数である.
Note
• ヒストグラムを生成する元になったオブジェクトはそのまま変化せず,1次元WaveFieldオブジェクトが新規 に作成される.
• 生成した1次元WaveFieldオブジェクトのPxにはlevel値の逆数が設定される.
Example
W a v e F i e l d wf (512 , 5 1 2 ) ; // ヒ ス ト グ ラ ム 作 成 の 対 象 と な る オ ブ ジ ェ ク ト
wf . S e t S p h e r i c a l W a v e (0 , 0 , 10 e - 3 ) ; // 点 光 源 の 球 面 波 を セ ッ ト
W a v e F i e l d h i s t ; // ヒ ス ト グ ラ ム を 格 納 す る オ ブ ジ ェ ク ト
h i s t = wf . C r e a t e R e a l H i s t o g r a m (); // ヒ ス ト グ ラ ム の 作 成
f l o a t max = h i s t . R e a l (0 ,0); // 以 下 , ヒ ス ト グ ラ ム の 最 大 値 を 求 め る ル ー プ
int i ;
for ( i = 0; i < h i s t . Nx (); i ++) if ( max > h i s t . R e a l ( i , 0))
max = h i s t . R e a l ( i , 0);
3.3 WaveFieldクラス 113
double GetOverlapFactor(const WaveField& sig) const
戻り値 強度分布のオーバーラップ係数
説 明 オブジェクトとsigオブジェクトの全体を比較して,光強度分布の重なりの程度を示すオーバーラップ係 数を計算する.この係数が1のときは,光強度分布は完全に同一である.