fit_overlap_init



機能:
重畳波形の個数判別(初期係数出力)

書式:
fit_overlap_init([ix],[iy],[oc],0:ガウス/1:ローレンツ)

解説:
2次と3次微分波形を利用した初期係数決定法で、数値組[ix],[iy]によって与えたデータ点列を、次の式で表現されるn個のガウスまたはローレンツの孤立ピーク波形に分解し、初期係数を出力します(h1、u1、w1、h2、u2、w2、.....hn、un、wn、Cは求めたい3n+1個の係数)。
n個のガウス(正規分布)波形の合成式:
  {Σhi * exp(-ln(2) * (x - ui)^2 / wi^2) } + C ( i = 1, 2,... n )
n個のローレンツ(コーシー分布)波形の合成式:
  {Σhi / (1 + (x - ui)^2 / wi^2) } + C ( i = 1, 2,... n )
hi ・・・・・・・・・・・・・ ピーク高さ
ui ・・・・・・・・・・・・・ ピーク横位置
wi ・・・・・・・・・・・・・ ピーク半値における横半幅
C ・・・・・・・・・・・・・ ベースライン成分(オフセットor 直流成分)
高さhi、位置ui、半値半幅wiの三つのパラメータでは、ガウス波形またはローレンツ波形を直感的に表現できる特徴があり、式表現を書き換えれば、標準の正規分布やコーシー分布の表現に変換可能です。
本関数で求められた係数[oc]は、推測値ですので、関数fit_overlap1()の初期入力係数として使用できます。
重畳波形分離では、初期係数の個数(孤立ピーク波形個数n)を正しく決定することが一番重要で、初期係数の個数が間違っていると、後の当てはめ近似計算ではピーク波形個数の調整が不可能なため、どんなに計算しても挽回することはできません。
本関数の出力結果のグラフを見て明らかに孤立ピーク波形個数nが正しくない場合、次の二つの対策方法が考えられます。
◎ノイズが大きい場合、あらかじめ関数smooth_fft()等で平滑化処理を施すこと
初期係数決定には、2次と3次微分波形が利用されるから、ノイズなど細かな変化もピーク波形として検出されます。入力波形によっては、本関数内部の平滑化処理でノイズが除去されないため、多すぎたピーク波形が検出されることがあります。この場合、関数smooth_fft()等で妥当な平滑化処理でノイズを除去してから本関数の入力として使うと効果的です。但し、fit_overlap1()による計算の時の入力波形は、必ず無平滑化処理の元の原始波形を使用して下さい。
◎本関数の出力係数[oc]の個数や値を直接に手直す
fit_overlap1()による計算の前に、本関数の出力係数[oc]に手動操作で、セル数増減や値変更等の修正を加えることが可能です。終始端の値が非零の入力波形では、両端に明らかに不当な孤立ピークが検出されることがあります。このような場合、該当ピークを表す3セルを係数[oc]から削除すると良いです。
孤立ピーク波形の形式は、引数でガウスとローレンツいずれかを指定します。
また、戻り値として求めた孤立ピーク波形個数nを返します。
結果[oc]による分離波形の合成計算などは、関数val_overlap()を使うと便利です。

     [ix],[iy] ・・・・・・・・・・・・・・・ 近似点列のXY座標の入力数値組([ix]は@で代替可能)

     [oc] ・・・・・・・・・・・・・・・ 求めた係数の出力数値組(h1、u1、w1、h2、u2、w2、.....hn、un、wn、Cの順で計3n+1個セル)

     0:ガウス/1:ローレンツ ・・・・・・・・・・・・・・・ 孤立ピーク波形の形式の指定(0:ガウス波、1:ローレンツ波)

例:fit_overlap_init([11],[12],[21],0);


return