アルゴリズム (Smooth)


隣接平均、Savitzky-Golayまたはパーセンタイルフィルタ法での移動ウィンドウ

スムージング法が移動平均、Savitzky-Golay、パーセンタイルフィルタの場合、各スムージングポイントは、移動ウィンドウ内データポイントで計算されます。\left\{f_i| i = 1,2,...,N\right\} は入力データポイント、\left\{g_i|i = 1,2,...,N\right\} は出力データポイントを表します。各g_i\left\{f_m|i - floor(npts/2) < m < i + floor(npts/2)\right\}から計算されます。

ここでnptsは、変数のウィンドウのポイント数です。

しかし、スムージング法がFFTフィルタの場合、移動ウィンドウは使われません。代わりに、信号全体が処理されます。

隣接平均法

隣接平均法は、簡単な平均計算を行います。各g_iは移動ウィンドウ内のデータポイントの平均です。重み付け平均オプションにチェックが付いている場合、平均は加重平均を使って計算されます。この場合、パラボリック加重が使われ、重みの領域は1に正規化されます。中心が i にあるようなウィンドウ(つまり、i 番目の平均点を計算します)に対して、 j 番目のポイント(j=0, 1, …, npts-1) に対応する重みは次のようになります。

w_j=1-(\frac{(j-i)}{(N+1)/2})^2

ここでNは、ウィンドウのポイント数です。

Savitzky-Golay法

Savitzky-Golay法によるフィルタリングは、移動ウィンドウ内のデータポイントに多項式回帰を実行します。そしてg_iは、i の位置で多項式の値として計算します。

パーセンタイルフィルタ法

パーセンタイルフィルタに対しては、移動ウィンドウ内のデータポイントのp番目の四分位がg_iとして割り当てられます。 p は、 パーセンタイルパラメータで指定されます。 p番目の四分位(または100 p番目のパーセンタイル)は、平均を持つ経験分布関数から計算されます。

npts\cdot p/100=j+gのようにします。

ここで j は、 npts\cdot p/100の整数部であり、 g は の小数部分です。

そして、p番目の四分位を計算でき、これは次式のようにyで表されます。

y=
\begin{cases} 
  x_j,  & \mbox{if }g=0 \\
  x_{j+1}, & \mbox{if }g>0 
\end{cases}

ここで、x_jは、移動ウィンドウの j(j=0, 1, ...npts-1)番目のポイント

FFTフィルタ法

FFTフィルタ法が選択されていると、Originは次のように実行します。

  1. 最初の1%のデータポイントの平均と最後の1%のデータポイントの平均を計算します。
  2. これら2点を通る直線を形成し、入力データからこの直線を減算します。
  3. 最後のステップで取得したデータセットにFFTを実行します。
  4. 最終段階で得られたデータにパラボリックローパスフィルタを適用します。カットオフ値より高い周波数のフーリエ成分を除外します。カットオフ周波数は:
    f_{cutoff} = \frac {1}{2n\Delta t}
    のように定義されます。nウィンドウ内のポイント数を指定し、\Delta tは、任意の2点の時間(または、横軸)です。nを大きな値に設定すると、カットオフ周波数は低くなり、スムージングの値は大きくなります。変換されたデータは片側のウィンドウと乗算されるので、上の式はさらに2で除算し、両側ウィンドウを考慮します。
    高い周波数の成分を取り除くには、周波数ゼロで最大値1を、カットオフ周波数で0を取るパラボラを利用します。
  5. フィルタリングしたスペクトルデータへのIFFTの実行
  6. 最後のステップで取り込んだデータセットに基線を追加します。

Note:

  • ここで使われるローパスパラボリックフィルタは、 FFTフィルタ ツールでのローパスパラボリックフィルタと同じです。
  • スクリプトでこの関数を使う場合には、より多くの変数が利用できます。詳細は、 Xファンクションヘルプ- smoothをご覧下さい。

LowessとLoess

LowessLoess は"locally weighted scatterplot smoothing" (局所加重散布図スムージング)と"locally weighted least squares"(局所加重最小二乗)の略語です。ここで「局所」と使うのは、ある範囲内でを隣り合ったポイントを元に各スムージング値を計算するためです。この方法は一般的に次の手順で実行されます。

  1. まず、中心点であるx_iの重みを計算します。次に立方体積比重関数で、その範囲内にある隣り合ったポイント全ての重みを計算します。
    w_i(x)=(1-(\frac{|x-x_i|}{d_i})^3)^3
    ここで、xは現在の中心点x_iに関連した範囲内の隣り合ったポイントを、d_iはその範囲内のx_iから最も距離がある隣り合ったポイントの横座標距離を表わします。
  2. 加重最小二乗回帰を実行します。
    • Lowessでは、加重した線形回帰が使用されます。
    • Loessでは、2次多項式回帰が使用されます。
  3. ステップ2で与えられた予測値である(x_i,\hat{y}_i) から、をx_i導きます。
  4. 次のポイントx_{i+1}まで移動し、ステップ1から3を実行して推定値(x_{i+1},\hat{y}_{i+1})を入手します。全てのポイントの計算が終わると計算は終了します。

2項法

2項フィルタは重み付け隣接平均フィルタで、 {x_n} が入力ソースデータ、{y_n}がスムージング出力データです。

y_n=\sum_{k=-N_p}^{Np}b_kx_{n-k}

スムージング係数の順番b_kは下記のように与えられます。

b_k=\begin{pmatrix} 2N_p\\  N_p+k \end{pmatrix}/4^{N_p}\; \; (k=0,1,...N_p)

および、

b_{-k}=b_{k}

N_pは、次数です。

カットオフ周波数

カットオフ周波数fcは次式で計算されます。


fc=\frac{2}{\pi}arccos(Ac^{1/2N_p})\frac{fs}{2}


fs=\frac{1}{dt}

dtサンプリング間隔です。Acは、-6dBのカットオフ振幅でAc=0.5です。次数N_pが増加すると、カットオフ周波数は減少します。