アルゴリズム (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%のデータポイントの平均を計算します。
- これら2点を通る直線を形成し、入力データからこの直線を減算します。
- 最後のステップで取得したデータセットにFFTを実行します。
- 最終段階で得られたデータにパラボリックローパスフィルタを適用します。カットオフ値より高い周波数のフーリエ成分を除外します。カットオフ周波数は:
\(f_{cutoff} = \frac {1}{2n\Delta t}\)
のように定義されます。nはウィンドウ内のポイント数を指定し、\(\Delta t\)は、任意の2点の時間(または、横軸)です。nを大きな値に設定すると、カットオフ周波数は低くなり、スムージングの値は大きくなります。変換されたデータは片側のウィンドウと乗算されるので、上の式はさらに2で除算し、両側ウィンドウを考慮します。
高い周波数の成分を取り除くには、周波数ゼロで最大値1を、カットオフ周波数で0を取るパラボラを利用します。 - フィルタリングしたスペクトルデータへのIFFTの実行
- 最後のステップで取り込んだデータセットに基線を追加します。
|
Note:
|
LowessとLoess
Lowess と Loess は"locally weighted scatterplot smoothing" (局所加重散布図スムージング)と"locally weighted least squares"(局所加重最小二乗)の略語です。ここで「局所」と使うのは、ある範囲内でを隣り合ったポイントを元に各スムージング値を計算するためです。この方法は一般的に次の手順で実行されます。
-
まず、中心点である\(x_i\)の重みを計算します。次に立方体積比重関数で、その範囲内にある隣り合ったポイント全ての重みを計算します。
- \[w_i(x)=(1-(\frac{|x-x_i|}{d_i})^3)^3\]
-
加重最小二乗回帰を実行します。
- Lowessでは、加重した線形回帰が使用されます。
- Loessでは、2次多項式回帰が使用されます。
- ステップ2で与えられた予測値である\((x_i,\hat{y}_i)\) から、を\(x_i\)導きます。
- 次のポイント\(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\)が増加すると、カットオフ周波数は減少します。