サビツキー・ゴレイフィルタ

Algorithm to smooth data points
Savitzy-Golay平滑化が適用され、データは移動窓のように左から右へと通過します。赤い線は、データのサブセットをフィッティングするために使用されている局所多項式を表しています。そこから、移動窓の中心点で多項式を評価することで、平滑化された値(紫色の線で示されています)が導出されます。

サビツキー・ゴレイフィルタは、デジタルデータポイントの集合に適用することでデータを平滑化し、信号の傾向を歪めることなくデータの精度を高めるデジタルフィルタです。これは、畳み込みと呼ばれるプロセスで、隣接するデータポイントの連続するサブセットを線形最小二乗法を用いて低次多項式で近似することで実現されます。データポイントが等間隔に配置されている場合、最小二乗方程式の解析解は、すべてのデータサブセットに適用できる単一の「畳み込み係数」セットの形で得られ、各サブセットの中心点における平滑化信号(または平滑化信号の導関数)の推定値を得ることができます。この方法は、確立された数学的手順に基づいており、[1] [2] 、 1964年にさまざまな多項式とサブセットのサイズに対する畳み込み係数の表を発表したアブラハム・サビツキーとマルセル・J・E・ゴレイによって普及しました。[ 3 ] [ 4 ]表のいくつかのエラーは修正されています。[5]この方法は、2次元および3次元データの処理に拡張されています。

サヴィツキーとゴレイの論文は、分析化学誌[6]で最も多く引用されている論文の一つであり、同誌では「コンピュータ制御の分析機器の黎明期はこの論文に遡ることができる」と評され、「10の重要な論文」の一つに分類されている[7] 。

ガウス分布のピークを持つノイズ信号に、離散畳み込みと境界における多項式フィッティングによる平滑化を適用する。上に示した逐次的な直接多項式フィッティングと比較して、この方法はより効率的に実現できる。フィルタのエッジにおける急激な0への低下は不連続性を引き起こし、Savitzky-Golayフィルタのノイズ抑制能力を実際に制限する。

アプリケーション

データは点の集合から成り、ここでは独立変数、は観測値である。これらは、畳み込み係数の集合 を用いて、式 に従って 処理される 。選択された畳み込み係数は、以下の表に示されている。例えば、5点の二次多項式による平滑化の場合、 番目に平滑化されたデータ点 は、次のように与えられる 。 { ( x j , y j ) } j = 1 n {\displaystyle \left\{(x_{j},y_{j})\right\}_{j=1}^{n}} x j {\displaystyle x_{j}} y j {\displaystyle y_{j}} m {\displaystyle m} C i {\displaystyle C_{i}} Y j = i = s s C i y j + i , s + 1 j n s , s = m 1 2 {\displaystyle Y_{j}=\sum _{i=-s}^{s}C_{i}\,y_{j+i},\qquad s+1\leq j\leq n-s,\;\;s={\frac {m-1}{2}}} m = 5 , i = 2 , 1 , 0 , 1 , 2 {\displaystyle m=5,i=-2,-1,0,1,2} j {\displaystyle j} Y j {\displaystyle Y_{j}}

Y j = 1 35 ( 3 y j 2 + 12 y j 1 + 17 y j + 12 y j + 1 3 y j + 2 ) , {\displaystyle Y_{j}={\frac {1}{35}}\left(-3y_{j-2}+12y_{j-1}+17y_{j}+12y_{j+1}-3y_{j+2}\right),}

ここで、、などです。平滑化には、アルゴリズム チェーンを通じてノイズが伝播するのを防ぐなど、さまざまな用途があります。また、単にデータのノイズが実際よりも少なく見えるようにする場合もあります。 C 2 = 3 / 35 , C 1 = 12 / 35 {\displaystyle C_{-2}=-3/35,C_{-1}=12/35}

以下はデータの数値微分法の応用である。[8] n次の導関数を計算する場合、絶対値を得るために、計算されたすべてのデータポイントに の追加のスケーリング係数を適用することができる(詳細については、以下の の式を参照)。 n ! h n {\displaystyle {\frac {n!}{h^{n}}}} d n Y d x n {\displaystyle {\frac {d^{n}Y}{dx^{n}}}}

  1. 実験データ曲線における最大値と最小値の位置。これがサビツキーの着想の源となった応用である。[4]関数の一次導関数は、最大値または最小値においてゼロとなる。この図は、合成ロレンツ曲線に属するデータ点にノイズ(青いダイヤモンド)を加えたものを示している。データは、ピーク最大値をゼロとして、その値を基準に半値幅のスケールでプロットされている。平滑化された曲線(赤線)と一次導関数(緑)は、7点3次サビツキー・ゴレイフィルタを用いて計算された。ゼロ交差の両側における一次導関数値を線形補間することで、ピーク最大値の位置が得られる。この目的には三次導関数も使用できる。
  2. 滴定曲線における終点の位置。終点とは、関数の2次導関数がゼロとなる変曲点である。 [9]マロン酸の滴定曲線はこの方法の威力を示している。4mlの最初の終点はほとんど見えないが、2次導関数の値から線形補間によってゼロ交差を容易に求めることができる
  3. ベースラインの平坦化。分析化学では、湾曲したベースラインに対して吸収帯の高さを測定する必要がある場合があります。 [10]ベースラインの曲率は吸収帯の曲率よりもはるかに小さいため、2次微分はベースラインを実質的に平坦化します。吸収帯の高さに比例する微分高さの3つの指標は、「ピークから谷まで」の距離h1とh2、およびベースラインからの高さh3です。[11]
  4. 分光法における分解能の向上。分光曲線の2次微分におけるバンドは、スペクトルのバンドよりも狭く、半値幅が狭くなります。これにより、部分的に重なり合うバンドを別々の(負の)ピークに「分解」することができます。[12]図は、ピークから谷までの距離を測定することで、化学分析にもこの手法が応用できることを示しています。この場合、谷はロレンツ曲線の2次微分の特性です。(x軸の位置は、半値幅と半値高のスケールにおけるピーク最大値の位置を基準としています。)
  5. 4次微分(正のピーク)による分解能の向上。最小値はロレンツ関数の4次微分の特性です。

移動平均

「移動平均フィルタ」は、時系列データにおいて短期的な変動を平滑化し、長期的なトレンドやサイクルを強調するためによく用いられるサビツキー・ゴレイフィルタの単純な例です。データセットの各サブセットは、高次多項式ではなく、直線の水平線で近似されます。重み付けなしの移動平均フィルタは、最も単純な畳み込みフィルタです。

移動平均線は、株価、収益率、取引量といった金融データの迅速なテクニカル分析によく用いられます。また、経済学では、国内総生産(GDP)、雇用、その他のマクロ経済の時系列データを分析するためにも用いられます。

すべての係数値が という値で同一であるため、Savitzky-Golay 畳み込み係数の一部の表には含まれませんでした 1 m {\displaystyle {\frac {1}{m}}}

畳み込み係数の導出

データ ポイントが等間隔になっている場合、最小二乗方程式の解析解を求めることができます。 [2]この解法は、数値平滑化および微分化の畳み込み法の基礎となります。データがn個のポイント ( x jy j ) ( j = 1、...、n ) のセットで構成されているものとします。ここで、x jは独立変数、y jはデータ値です。線形最小二乗法によって、それぞれ間隔hで区切られたm (奇数) 個の隣接するデータ ポイントのセットに多項式を近似します。最初に、変数の変更が行われます。 ここで、 は中心点の値です。z は、次の値を取ります(例: m = 5 → z = −2、−1、0、1、2)。[注 1] k次多項式は次のように定義されます。[注 2] 係数a 0a 1などは、正規方程式を解くことで得られます(太字のaベクトル、太字のJは行列を表します)。 z = x x ¯ h {\displaystyle z={\frac {x-{\bar {x}}}{h}}} x ¯ {\displaystyle {\bar {x}}} s , , 0 , , s {\displaystyle -s,\dots ,0,\dots ,s} s = m 1 2 {\displaystyle s={\tfrac {m-1}{2}}} Y = a 0 + a 1 z + a 2 z 2 + + a k z k . {\displaystyle Y=a_{0}+a_{1}z+a_{2}z^{2}+\dots +a_{k}z^{k}.}

a = ( J T J ) 1 J T y , {\displaystyle \mathbf {a} =\left(\mathbf {J} ^{\mathsf {T}}\mathbf {J} \right)^{-1}\mathbf {J} ^{\mathsf {T}}\mathbf {y} ,} ここで、 はヴァンデルモンド行列で、 の-行目には値があります J {\displaystyle \mathbf {J} } i {\displaystyle i} J {\displaystyle \mathbf {J} } 1 , z i , z i 2 , {\displaystyle 1,z_{i},z_{i}^{2},\dots }

たとえば、5 つの点に近似された3 次多項式、 z  = −2、−1、0、1、2 の場合、正規方程式は次のように解きます。

J = ( 1 2 4 8 1 1 1 1 1 0 0 0 1 1 1 1 1 2 4 8 ) {\displaystyle \mathbf {J} ={\begin{pmatrix}1&-2&4&-8\\1&-1&1&-1\\1&0&0&0\\1&1&1&1\\1&2&4&8\end{pmatrix}}}

J T J = ( m z z 2 z 3 z z 2 z 3 z 4 z 2 z 3 z 4 z 5 z 3 z 4 z 5 z 6 ) = ( m 0 z 2 0 0 z 2 0 z 4 z 2 0 z 4 0 0 z 4 0 z 6 ) = ( 5 0 10 0 0 10 0 34 10 0 34 0 0 34 0 130 ) {\displaystyle {\begin{aligned}\mathbf {J} ^{\mathsf {T}}\mathbf {J} &={\begin{pmatrix}m&\sum z&\sum z^{2}&\sum z^{3}\\\sum z&\sum z^{2}&\sum z^{3}&\sum z^{4}\\\sum z^{2}&\sum z^{3}&\sum z^{4}&\sum z^{5}\\\sum z^{3}&\sum z^{4}&\sum z^{5}&\sum z^{6}\end{pmatrix}}\\[1ex]&={\begin{pmatrix}m&0&\sum z^{2}&0\\0&\sum z^{2}&0&\sum z^{4}\\\sum z^{2}&0&\sum z^{4}&0\\0&\sum z^{4}&0&\sum z^{6}\end{pmatrix}}\\[1ex]&={\begin{pmatrix}5&0&10&0\\0&10&0&34\\10&0&34&0\\0&34&0&130\end{pmatrix}}\end{aligned}}}

さて、正規方程式は行と列を並べ替えることで、2つの別々の方程式に分解することができます。

J T J even = ( 5 10 10 34 ) a n d J T J odd = ( 10 34 34 130 ) {\displaystyle \mathbf {J} ^{\mathsf {T}}\mathbf {J} _{\text{even}}={\begin{pmatrix}5&10\\10&34\\\end{pmatrix}}\quad \mathrm {and} \quad \mathbf {J} ^{\mathsf {T}}\mathbf {J} _{\text{odd}}={\begin{pmatrix}10&34\\34&130\\\end{pmatrix}}} これらの各行列の逆行列の式はクラメールの定理 を使って得ることができる 。正規方程式は、 そして 共通因数を掛け算して取り除くと、 ( J T J ) even 1 = 1 70 ( 34 10 10 5 ) a n d ( J T J ) odd 1 = 1 144 ( 130 34 34 10 ) {\displaystyle \left(\mathbf {J} ^{\mathsf {T}}\mathbf {J} \right)_{\text{even}}^{-1}={\frac {1}{70}}{\begin{pmatrix}34&-10\\-10&5\\\end{pmatrix}}\quad \mathrm {and} \quad \left(\mathbf {J} ^{\mathsf {T}}\mathbf {J} \right)_{\text{odd}}^{-1}={\frac {1}{144}}{\begin{pmatrix}130&-34\\-34&10\\\end{pmatrix}}} ( a 0 a 2 ) j = 1 70 ( 34 10 10 5 ) ( 1 1 1 1 1 4 1 0 1 4 ) ( y j 2 y j 1 y j y j + 1 y j + 2 ) {\displaystyle {\begin{pmatrix}a_{0}\\a_{2}\end{pmatrix}}_{j}={\frac {1}{70}}{\begin{pmatrix}34&-10\\-10&5\end{pmatrix}}{\begin{pmatrix}1&1&1&1&1\\4&1&0&1&4\end{pmatrix}}{\begin{pmatrix}y_{j-2}\\y_{j-1}\\y_{j}\\y_{j+1}\\y_{j+2}\end{pmatrix}}} ( a 1 a 3 ) j = 1 144 ( 130 34 34 10 ) ( 2 1 0 1 2 8 1 0 1 8 ) ( y j 2 y j 1 y j y j + 1 y j + 2 ) {\displaystyle {\begin{pmatrix}a_{1}\\a_{3}\end{pmatrix}}_{j}={\frac {1}{144}}{\begin{pmatrix}130&-34\\-34&10\end{pmatrix}}{\begin{pmatrix}-2&-1&0&1&2\\-8&-1&0&1&8\end{pmatrix}}{\begin{pmatrix}y_{j-2}\\y_{j-1}\\y_{j}\\y_{j+1}\\y_{j+2}\\\end{pmatrix}}} a 0 , j = 1 35 ( 3 y j 2 + 12 y j 1 + 17 y j + 12 y j + 1 3 y j + 2 ) a 1 , j = 1 12 ( y j 2 8 y j 1 + 8 y j + 1 y j + 2 ) a 2 , j = 1 14 ( 2 y j 2 y j 1 2 y j y j + 1 + 2 y j + 2 ) a 3 , j = 1 12 ( y j 2 + 2 y j 1 2 y j + 1 + y j + 2 ) {\displaystyle {\begin{aligned}a_{0,j}&={\frac {1}{35}}\left(-3y_{j-2}+12y_{j-1}+17y_{j}+12y_{j+1}-3y_{j+2}\right)\\[1ex]a_{1,j}&={\frac {1}{12}}\left(y_{j-2}-8y_{j-1}+8y_{j+1}-y_{j+2}\right)\\[1ex]a_{2,j}&={\frac {1}{14}}\left(2y_{j-2}-y_{j-1}-2y_{j}-y_{j+1}+2y_{j+2}\right)\\[1ex]a_{3,j}&={\frac {1}{12}}\left(-y_{j-2}+2y_{j-1}-2y_{j+1}+y_{j+2}\right)\end{aligned}}}

これらの式におけるyの係数は畳み込み係数と呼ばれ、行列の要素である。 一般に、 行列表記ではこの例は次のように表される。 C = ( J T J ) 1 J T {\displaystyle \mathbf {C} =\left(\mathbf {J} ^{\mathsf {T}}\mathbf {J} \right)^{-1}\mathbf {J} ^{\mathsf {T}}} ( C y ) j   = Y j = i = s s C i y j + i , s + 1 j n s , s = m 1 2 {\displaystyle (C\otimes y)_{j}\ =Y_{j}=\sum _{i=-s}^{s}C_{i}\,y_{j+i},\qquad s+1\leq j\leq n-s,\;\;s={\frac {m-1}{2}}} ( Y 3 Y 4 Y 5 ) = 1 35 ( 3 12 17 12 3 0 0 0 3 12 17 12 3 0 0 0 3 12 17 12 3 ) ( y 1 y 2 y 3 y 4 y 5 y 6 y 7 ) {\displaystyle {\begin{pmatrix}Y_{3}\\Y_{4}\\Y_{5}\\\vdots \end{pmatrix}}={\frac {1}{35}}{\begin{pmatrix}-3&12&17&12&-3&0&0&\cdots \\0&-3&12&17&12&-3&0&\cdots \\0&0&-3&12&17&12&-3&\cdots \\\vdots &\vdots &\vdots &\vdots &\vdots &\vdots &\vdots &\ddots \end{pmatrix}}{\begin{pmatrix}y_{1}\\y_{2}\\y_{3}\\y_{4}\\y_{5}\\y_{6}\\y_{7}\\\vdots \end{pmatrix}}}

1964年に、Savitzky–Golay平滑化フィルタの畳み込み係数の表が、 mが25まで同じ方法で計算されて公開されました。 [3] [5]中心点の値z = 0は、係数の単一のセット(平滑化の場合は0、1次導関数の場合は1など)から得られます。数値導関数はY微分することによって得られます。つまり、導関数は平滑化されたデータ曲線に対して計算されます。3 次多項式の場合 Y = a 0 + a 1 z + a 2 z 2 + a 3 z 3 = a 0  at  z = 0 , x = x ¯ d Y d x = 1 h ( a 1 + 2 a 2 z + 3 a 3 z 2 ) = 1 h a 1  at  z = 0 , x = x ¯ d 2 Y d x 2 = 1 h 2 ( 2 a 2 + 6 a 3 z ) = 2 h 2 a 2  at  z = 0 , x = x ¯ d 3 Y d x 3 = 6 h 3 a 3 {\displaystyle {\begin{aligned}Y&=a_{0}+a_{1}z+a_{2}z^{2}+a_{3}z^{3}=a_{0}&{\text{ at }}z=0,x={\bar {x}}\\[1ex]{\frac {dY}{dx}}&={\frac {1}{h}}\left({a_{1}+2a_{2}z+3a_{3}z^{2}}\right)={\frac {1}{h}}a_{1}&{\text{ at }}z=0,x={\bar {x}}\\[1ex]{\frac {d^{2}Y}{dx^{2}}}&={\frac {1}{h^{2}}}\left({2a_{2}+6a_{3}z}\right)={\frac {2}{h^{2}}}a_{2}&{\text{ at }}z=0,x={\bar {x}}\\[1ex]{\frac {d^{3}Y}{dx^{3}}}&={\frac {6}{h^{3}}}a_{3}\end{aligned}}}

一般に、次数(0と1)、[注3] (2と3)、(4と5)などの多項式は、平滑化係数と偶数階微分係数が同じになります。次数(1と2)、(3と4)などの多項式は、奇数階微分係数が同じになります。

代数式

サビツキー・ゴレイ表を常に用いる必要はない。行列J T Jの和は閉じた形で評価できるため 畳み込み係数の代数式を導出することができる。[13] [注 4]変曲点を持つ曲線に適した関数は以下の通りである。 z = s s z 2 = m ( m 2 1 ) 12 , s = m 1 2 z z 4 = m ( m 2 1 ) ( 3 m 2 7 ) 240 z z 6 = m ( m 2 1 ) ( 3 m 4 18 m 2 + 31 ) 1344 {\displaystyle {\begin{aligned}\sum _{z=-s}^{s}z^{2}&={m(m^{2}-1) \over 12},&s={\frac {m-1}{2}}\\\sum _{z}z^{4}&={m(m^{2}-1)(3m^{2}-7) \over 240}\\\sum _{z}z^{6}&={m(m^{2}-1)(3m^{4}-18m^{2}+31) \over 1344}\end{aligned}}}

  • 平滑化、多項式次数2,3: ( iの値の範囲は以下の式にも適用されます) C 0 i = ( 3 m 2 7 20 i 2 ) / 4 m ( m 2 4 ) / 3 ; 1 m 2 i m 1 2 {\displaystyle C_{0i}={\frac {\left({3m^{2}-7-20i^{2}}\right)/4}{m\left({m^{2}-4}\right)/3}};\quad {\frac {1-m}{2}}\leq i\leq {\frac {m-1}{2}}}
  • 1次導関数:多項式次数3,4 C 1 i = 5 ( 3 m 4 18 m 2 + 31 ) i 28 ( 3 m 2 7 ) i 3 m ( m 2 1 ) ( 3 m 4 39 m 2 + 108 ) / 15 {\displaystyle C_{1i}={\frac {5\left({3m^{4}-18m^{2}+31}\right)i-28\left({3m^{2}-7}\right)i^{3}}{m\left({m^{2}-1}\right)\left({3m^{4}-39m^{2}+108}\right)/15}}}
  • 2次導関数:多項式次数2,3 C 2 i = 12 m i 2 m ( m 2 1 ) m 2 ( m 2 1 ) ( m 2 4 ) / 30 {\displaystyle C_{2i}={\frac {12mi^{2}-m\left({m^{2}-1}\right)}{m^{2}\left({m^{2}-1}\right)\left({m^{2}-4}\right)/30}}}
  • 3次導関数:多項式次数3,4 C 3 i = ( 3 m 2 7 ) i + 20 i 3 m ( m 2 1 ) ( 3 m 4 39 m 2 + 108 ) / 420 {\displaystyle C_{3i}={\frac {-\left({3m^{2}-7}\right)i+20i^{3}}{m\left({m^{2}-1}\right)\left({3m^{4}-39m^{2}+108}\right)/420}}}

変曲点を持たない曲線で使用できるより単純な式は次のとおりです。

  • 平滑化、多項式次数0,1(移動平均): C 0 i = 1 m {\displaystyle C_{0i}={\frac {1}{m}}}
  • 1次導関数、多項式次数1,2: C 1 i = i m ( m 2 1 ) / 12 {\displaystyle C_{1i}={\frac {i}{m(m^{2}-1)/12}}}

より高次の導関数を得ることも可能です。例えば、2次導関数を2回実行することで4次導関数を得ることができます。[14]

直交多項式の使用

m 個のデータ ポイントを補助変数zの単純な多項式でフィッティングする代わりに、直交多項式を使用することもできます ここで、 P 0、...、  P kは、次数 0、...、 kの互いに直交する多項式の集合です 。直交多項式の表現方法と係数baの関係の詳細は、Guest によって提供されています。[2] 畳み込み係数の表現は簡単に得られます。なぜなら、任意の 2 つの直交多項式の積は相互に直交するため 0 になるので、正規方程式行列J T Jは対角行列だからです。したがって、その逆行列の非ゼロ要素はそれぞれ、正規方程式行列の対応する要素の逆数にすぎません。計算は、再帰を使用して直交グラム多項式を構築することでさらに簡略化されます。計算全体は、再帰を含む計算に適したコンピュータ言語であるPASCALの数行でコーディングできます。 [15] Y = b 0 P 0 ( z ) + b 1 P 1 ( z ) + b k P k ( z ) . {\displaystyle Y=b_{0}P^{0}(z)+b_{1}P^{1}(z)\cdots +b_{k}P^{k}(z).}

最初と最後のポイントの扱い

Savitzky–Golayフィルタは、単一の畳み込み係数を用いて、中心点(z = 0)における平滑化値または微分値を求めるために最も一般的に用いられます。この方法では、系列の始点と終点の( m  − 1)/2点を計算することはできません。この不便さを回避するために、様々な手法が利用可能です。

  • データは、最初の( m −1)/2点のコピーを逆順に 先頭に追加し、最後の( m  −1)/2点のコピーを末尾に追加することで、人為的に拡張することができます。例えば、m = 5の場合、データy 1 , ..., y n の先頭と末尾に2点が追加されます
y 3y 2 y 1、...、 y n y n −1y n −2
  • フィッティング多項式をもう一度見てみると、単一の多項式a 0 .. a kのすべての畳み込み係数セットを使用して、 zのすべての値に対してデータを計算できることは明らかです
    3次多項式の場合 Y = a 0 + a 1 z + a 2 z 2 + a 3 z 3 d Y d x = 1 h ( a 1 + 2 a 2 z + 3 a 3 z 2 ) d 2 Y d x 2 = 1 h 2 ( 2 a 2 + 6 a 3 z ) d 3 Y d x 3 = 6 h 3 a 3 {\displaystyle {\begin{aligned}Y&=a_{0}+a_{1}z+a_{2}z^{2}+a_{3}z^{3}\\{\frac {dY}{dx}}&={\frac {1}{h}}(a_{1}+2a_{2}z+3a_{3}z^{2})\\{\frac {d^{2}Y}{dx^{2}}}&={\frac {1}{h^{2}}}(2a_{2}+6a_{3}z)\\{\frac {d^{3}Y}{dx^{3}}}&={\frac {6}{h^{3}}}a_{3}\end{aligned}}}
  • 欠落している最初と最後の点の畳み込み係数も簡単に得ることができます。[15]これは、最初の( m  +1)/2点を同じ多項式でフィッティングすることと同等であり、最後の点についても同様です。

データの重み付け

上記の処理では、データ点にはすべて等しい重みが与えられていることが暗黙的に示されています。技術的には、 最小二乗法で最小化される目的関数は単位重み、つまり w i  = 1を持ちます。重みがすべて同じでない場合、正規方程式は次のようになります。 U = i w i ( Y i y i ) 2 {\displaystyle U=\sum _{i}w_{i}\left(Y_{i}-y_{i}\right)^{2}}

a = ( J T W J ) 1 J T W y , W i , i 1 {\displaystyle \mathbf {a} =\left(\mathbf {J} ^{\mathsf {T}}\mathbf {W} \mathbf {J} \right)^{-1}\mathbf {J} ^{\mathsf {T}}\mathbf {W} \mathbf {y} ,\qquad W_{i,i}\neq 1}

この記事の冒頭で述べたノイズ信号に重み付きSavitzky-Golayフィルタを適用した例です。Hannウィンドウを用いることで、同じウィンドウ長と多項式次数を持つ重みなし(均一重み付き)Savitzky-Golayフィルタと比較して、平滑化された曲線の品質が向上します。一方で、残留ノイズは減少し、他方ではより高いデータ忠実度が得られます(重みがより大きな偏差を優先する境界を除く)。

すべてのデータサブセットに同じ対角重みのセットを用いると、正規方程式の解析解を書き下すことができる。例えば、二次多項式では、 W = diag ( w 1 , w 2 , . . . , w m ) {\displaystyle W={\text{diag}}(w_{1},w_{2},...,w_{m})}

J T W J = ( w i       w i z i w i z i 2 w i z i w i z i 2 w i z i 3 w i z i 2 w i z i 3 w i z i 4 ) {\displaystyle \mathbf {J} ^{\mathsf {T}}\mathbf {W} \mathbf {J} ={\begin{pmatrix}\sum w_{i}~~~&\sum w_{i}z_{i}&\sum w_{i}z_{i}^{2}\\\sum w_{i}z_{i}&\sum w_{i}z_{i}^{2}&\sum w_{i}z_{i}^{3}\\\sum w_{i}z_{i}^{2}&\sum w_{i}z_{i}^{3}&\sum w_{i}z_{i}^{4}\end{pmatrix}}}

この行列の逆行列の明示的な表現はクラメールの定理を用いて得られる。畳み込み係数の集合は次のように導出される。

C = ( J T W J ) 1 J T W . {\displaystyle \mathbf {C} =\left(\mathbf {J} ^{\mathsf {T}}\mathbf {W} \mathbf {J} \right)^{-1}\mathbf {J} ^{\mathsf {T}}\mathbf {W} .}

あるいは、係数Cをスプレッドシートで計算し、組み込みの逆行列計算ルーチンを用いて正規方程式の逆行列を求めることもできます。この係数セットは、一度計算して保存すれば、同じ重み付けスキームが適用されるすべての計算で使用できます。重み付けスキームごとに異なる係数セットが必要です。

サビツキー・ゴレイフィルタは、フィッティング区間の両端で重みが減少するように導入することで改善できることが示された。[16]

2次元畳み込み係数

2次元の平滑化と微分化は、ピクセルの長方形グリッドで構成される写真画像の輝度値などのデータ値のテーブルにも適用できます。[17] [18]このようなグリッドはカーネルと呼ばれ、カーネルを構成するデータポイントはノードと呼ばれます。ポイントは、ノードのインデックスを単純に順序付けることで、長方形カーネルを1行に変換することです。1次元フィルタ係数は、補助変数zの多項式をm個のデータポイントの集合に当てはめることによって求められますが、2次元係数は、補助変数vwの多項式をm × n個のカーネルノードの値の集合に当てはめることによって求められます。次の例は、総次数3、m = 7、n = 5の2変数多項式の場合で、上記の1次元の場合のプロセスと並行したプロセスを示しています。[19] 35個のデータ値d 1  −  d 35 v = x x ¯ h ( x ) ; w = y y ¯ h ( y ) {\displaystyle {\begin{aligned}v&={\frac {x-{\bar {x}}}{h(x)}};&w&={\frac {y-{\bar {y}}}{h(y)}}\end{aligned}}} Y = a 00 + a 10 v + a 01 w + a 20 v 2 + a 11 v w + a 02 w 2 + a 30 v 3 + a 21 v 2 w + a 12 v w 2 + a 03 w 3 {\displaystyle Y=a_{00}+a_{10}v+a_{01}w+a_{20}v^{2}+a_{11}vw+a_{02}w^{2}+a_{30}v^{3}+a_{21}v^{2}w+a_{12}vw^{2}+a_{03}w^{3}}

v
−3 −2 −1 0 1 2 3
−2 d 1 d 2 d 3 d 4 d 5 d 6 d 7
−1 d 8 d 9 d 10 d 11 d 12 d 13 d 14
0 15 16 d 17 18 d 19 20 21
1 22 23 24 25 26 27 28
2 29 30 31 32 33 34 35

行を次々に配置するとベクトルになります。

d = ( d 1 ... d 35 ) T

ヤコビアンには、パラメータa 00  −  a 03ごとに1列ずつ、合計10列と、 v値とw値の各ペアごとに1行ずつ、合計35行があります。各行の形式は、 畳み込み係数です。畳み込み係数は次のように計算されます。 C の最初の行には35個の畳み込み係数が含まれており、それぞれ35個のデータ値と乗算して、カーネルの中心ノード(つまり、上記の表の18番目のノード)における平滑化された値である多項式係数を取得できます。同様に、Cの他の行に35個の値を乗算して他の多項式係数を取得し、それを使用して、異なるノードにおける平滑化された値と、異なる平滑化された偏導関数を取得できます。 J row = ( 1 v w v 2 v w w 2 v 3 v 2 w v w 2 w 3 ) {\displaystyle J_{\text{row}}={\begin{pmatrix}1&v&w&v^{2}&vw&w^{2}&v^{3}&v^{2}w&vw^{2}&w^{3}\end{pmatrix}}} C = ( J T J ) 1 J T {\displaystyle \mathbf {C} =\left(\mathbf {J} ^{\mathsf {T}}\mathbf {J} \right)^{-1}\mathbf {J} ^{\mathsf {T}}} a 00 {\displaystyle a_{00}}

ニキタスとパパ・ルイジは、使用される多項式の形式に応じて、平滑化の品質が大きく変わる可能性があることを示した。[20]彼らは、次のような形式の多項式を使用することを推奨している 。

Y = i = 0 p j = 0 q a i j v i w j {\displaystyle Y=\sum _{i=0}^{p}\sum _{j=0}^{q}a_{ij}v^{i}w^{j}}

このような多項式は、カーネルの中心領域と境界近傍領域の両方で良好な平滑化を実現できるため、サンプリング領域の内部データ点と境界近傍データ点の両方で平滑化を行う際に安心して使用できます。最小二乗問題を解く際の悪条件を回避するために、p < mおよびq < nとします。2次元係数を計算するソフトウェアと、このようなCのデータベースについては、以下の多次元畳み込み係数のセクションを参照してください。

多次元畳み込み係数

2次元畳み込み係数の考え方は、カーネルノードを一列に多次元的に配置することで、より高次元の空間次元にも容易に拡張できる[17] [21]。前述のNikitasとPappa-Louisiによる2次元の場合の知見[20]に基づき、多次元の場合は以下の形式の多項式の使用が推奨される。

Y = i 1 = 0 p 1 i 2 = 0 p 2 i D = 0 p D ( a i 1 i 2 i D × u 1 i 1 u 2 i 2 u D i D ) {\displaystyle Y=\sum _{i_{1}=0}^{p_{1}}\sum _{i_{2}=0}^{p_{2}}\cdots \sum _{i_{D}=0}^{p_{D}}(a_{i_{1}i_{2}\cdots i_{D}}\times u_{1}^{i_{1}}u_{2}^{i_{2}}\cdots u_{D}^{i_{D}})}

ここで、Dは空間の次元、は多項式の係数、uは異なる空間方向の座標です。任意の次数の偏微分(混合次数であろうとなかろうと)の代数式は、上記の式から容易に導出できます。[21] Cは、ヤコビアンを作成する際に、カーネルノードの並び方と、上記の多項式の展開形の各項の並び方に依存することに 注意してください。 a {\displaystyle a}

コンピュータプログラミング言語で利用できる標準的な浮動小数点数の精度が十分ではなくなったため、多次元の場合のCの正確な計算は困難になっています。精度が不十分だと、浮動小数点の切り捨て誤差がC要素の大きさに匹敵するようになり、精度が著しく低下して役に立たなくなります。Chandra Shekhar は、これらの精度の問題を適切に処理する 2 つのオープンソースソフトウェア、Advanced Convolution Coefficient Calculator (ACCC) と Precise Convolution Coefficient Calculator (PCCC) を発表しました。ACCC は、浮動小数点数を使用して反復的に計算を実行します。[22]浮動小数点数の精度は、GNU MPFRを使用して各反復で徐々に増加します。2 回の連続する反復で得られたCの有効桁数が、事前に指定された距離まで同じになると、収束に達したと想定されます。距離が十分に大きい場合、計算によって非常に正確なCが生成されます。 PCCCは、 GNU Multiple Precision Arithmetic Libraryを使用して有理数計算を行い有理数形式で完全に正確なCを生成します。[23]最終的に、これらの有理数は、事前に指定された有効桁数になるまで浮動小数点数に変換されます。

ACCCを用いて対称カーネルお​​よび対称・非対称多項式について、1次元、2次元、3次元、4次元空間において、単位空間カーネルノード上でACCCを用いて計算されたCのデータベースが公開されている。[24] Chandra Shekharもまた、単位空間カーネルノード上で計算されたCを用いて、非一様空間カーネルノード上でフィルタリングや偏微分(様々な次数)を実行する数学的枠組みを提示しており、 [21]前述のデータベースで提供されているCの利用を可能にしている。この手法は近似値しか得られないが、カーネルノードの非一様性が弱い限り、ほとんどの工学応用において許容できる。

畳み込みのいくつかの性質

  1. 平滑化のための畳み込み係数の合計は1である。奇数導関数の係数の合計は0である。[25]
  2. 平滑化のための畳み込み係数の二乗和は中心係数の値に等しい。[26]
  3. 関数を平滑化しても、関数の下の領域は変化しません。[25]
  4. 対称関数の偶微分係数の畳み込みは対称中心を保存する。 [25]
  5. 微分フィルタの特性[27]

信号の歪みとノイズの低減

畳み込み処理において信号が歪むことは避けられません。上記の性質3から、ピークを持つデータを平滑化すると、ピークの高さは低下し、半値幅は拡大します。歪みの程度とS/N(信号対雑音比)は共に向上します。

  • 多項式の次数が増加するにつれて減少する
  • 畳み込み関数のmが増加するにつれて増加する
標準偏差1の無相関ノイズを持つデータポイントに対する平滑化の効果

例えば、すべてのデータポイントのノイズが無相関で一定の標準偏差σを持つ場合、ノイズの標準偏差はm点平滑化関数との畳み込みによって[26] [注5]まで減少する。

  • 多項式次数0または1: (移動平均) 1 m σ {\displaystyle {\sqrt {\frac {1}{m}}}\sigma }
  • 多項式の次数2または3: 3 ( 3 m 2 7 ) 4 m ( m 2 4 ) σ {\displaystyle {\sqrt {\frac {3(3m^{2}-7)}{4m(m^{2}-4)}}}\sigma }

これらの関数は右のグラフに示されています。例えば、9点の線形関数(移動平均)ではノイズの3分の2が除去されますが、9点の2次/3次平滑化関数ではノイズの約半分しか除去されません。残りのノイズの大部分は低周波ノイズです(下記の「畳み込みフィルタの周波数特性」を参照)。

移動平均関数はノイズ低減効果に優れていますが、m点以上の曲率を持つデータの平滑化には適していません。また、二次フィルタ関数は変曲点を持つデータ曲線の微分を得るのに適していません。これは、二次多項式には変曲点がないためです。多項式の次数と畳み込み係数の数の最適な選択は、ノイズ低減と歪みの間の妥協点となります。[28]

マルチパスフィルター

歪みを軽減し、ノイズ除去を改善する方法の一つは、フィルタ幅の狭いフィルタを用いて、複数回の畳み込みを行うことである。同じフィルタを2回通過させると、元のフィルタ自身を畳み込んだフィルタを1回通過させるのと同等となる。[29]例えば、係数(1/3, 1/3, 1/3)を持つフィルタを2回通過させると、係数(1/9, 2/9, 3/9, 2/9, 1/9)を持つフィルタを1回通過させるのと同等となる。

マルチパスの欠点は、-点関数のパスにおける等価フィルタ幅が広くなるため、マルチパスはより大きなエンドエフェクトの影響を受けることです。しかしながら、マルチパスは大きな利点として利用されてきました。例えば、信号対雑音比がわずか5のデータに対して40~80回のパス処理を行ったところ、有用な結果が得られました。[30] 上記のノイズ低減式は適用できません。これは、計算されたデータポイント間の相関がパスごとに増加するためです。 n {\displaystyle n} m {\displaystyle m} n ( m 1 ) + 1 {\displaystyle n(m-1)+1}

畳み込みフィルタの周波数特性

9点の2次/3次平滑化関数のフーリエ変換

畳み込みはフーリエ 余領域における乗算に写像される畳み込みフィルタの離散フーリエ変換は実数値関数であり、次のように表される。

F T ( θ ) = j = s s C j cos ( j θ ) , s = m 1 2 {\displaystyle FT(\theta )=\sum _{j=-s}^{s}C_{j}\cos(j\theta ),\qquad s={\tfrac {m-1}{2}}}

θ は 0 度から 180まで変化し、それを超えると関数は単に同じ動作を繰り返す。9 点の 2 次/3 次平滑化関数のグラフは典型的なものである。非常に低い角度ではグラフはほぼ平坦であり、データの低周波成分は平滑化操作によって実質的に変化しないことを意味する。角度が増加するにつれて値は減少し、高周波成分はますます減衰する。これは畳み込みフィルタがローパスフィルタとして記述できることを示す。除去されるノイズは主に高周波ノイズであり、低周波ノイズはフィルタを通過する。[31]大きな角度でのフーリエ変換の波動が示すように、一部の高周波ノイズ成分は他の成分よりも減衰する。これにより平滑化されたデータに小さな振動[32]や位相反転が生じる可能性がある。つまり、データ内の高周波振動は Savitzky–Golay フィルタリングによって反転される。[33]

畳み込みと相関

畳み込みはデータ内の誤差間の相関に影響を与えます。畳み込みの効果は線形変換として表現できます。

Y j   = i = s s C i y j + i , s = m 1 2 {\displaystyle Y_{j}\ =\sum _{i=-s}^{s}C_{i}\,y_{j+i},\qquad s={\tfrac {m-1}{2}}}

誤差伝播の法則によりデータの分散共分散行列Aは、次のように B に変換されます。これが実際にどのように適用されるかを確認するには、データポイントの分散が等しく、データポイント間に相関関係がないと仮定して 、最初の3つの計算ポイントY 2  −  Y 4における3点移動平均の影響を考えてみましょう。A、各ポイントにおける分散である定数σ 2を乗じた単位行列になります B = C A C T {\displaystyle \mathbf {B} =\mathbf {C} \mathbf {A} \mathbf {C} ^{\mathsf {T}}}

B = σ 2 9 ( 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 ) ( 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 ) ( 1 0 0 1 1 0 1 1 1 0 1 1 0 0 1 ) = σ 2 9 ( 3 2 1 2 3 2 1 2 3 ) {\displaystyle {\begin{aligned}\mathbf {B} &={\frac {\sigma ^{2}}{9}}{\begin{pmatrix}1&1&1&0&0\\0&1&1&1&0\\0&0&1&1&1\end{pmatrix}}{\begin{pmatrix}1&0&0&0&0\\0&1&0&0&0\\0&0&1&0&0\\0&0&0&1&0\\0&0&0&0&1\end{pmatrix}}{\begin{pmatrix}1&0&0\\1&1&0\\1&1&1\\0&1&1\\0&0&1\end{pmatrix}}\\&={\frac {\sigma ^{2}}{9}}{\begin{pmatrix}3&2&1\\2&3&2\\1&2&3\end{pmatrix}}\end{aligned}}}

この場合 計算された点ijの間の相関係数は、 ρ i j = B i j B i i B j j ,   ( i j ) {\displaystyle \rho _{ij}={\frac {B_{ij}}{\sqrt {B_{ii}B_{jj}}}},\ (i\neq j)}

ρ i , i + 1 = 2 3 = 0.66 , ρ i , i + 2 = 1 3 = 0.33 {\displaystyle \rho _{i,i+1}={2 \over 3}=0.66,\;\rho _{i,i+2}={1 \over 3}=0.33}

一般的に、観測値が相関していなくても、計算値は相関している。相関は、一度にm  − 1個の計算点に及ぶ。 [34]

マルチパスフィルター

マルチパス処理がデータセットのノイズと相関に与える影響を説明するために、3点移動平均フィルタの2回目のパスの効果を考えてみましょう。2回目のパス[注6]では、

C B C T = σ 2 81 ( 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 ) ( 3 2 1 0 0 2 3 2 0 0 1 2 3 0 0 0 0 0 0 0 0 0 0 0 0 ) ( 1 0 0 1 1 0 1 1 1 0 1 1 0 0 1 ) = σ 2 81 ( 19 16 10 4 1 16 19 16 10 4 10 16 19 16 10 4 10 16 19 16 1 4 10 16 19 ) {\displaystyle {\begin{aligned}\mathbf {C} \mathbf {B} \mathbf {C} ^{\mathsf {T}}&={\frac {\sigma ^{2}}{81}}{\begin{pmatrix}1&1&1&0&0\\0&1&1&1&0\\0&0&1&1&1\end{pmatrix}}{\begin{pmatrix}3&2&1&0&0\\2&3&2&0&0\\1&2&3&0&0\\0&0&0&0&0\\0&0&0&0&0\end{pmatrix}}{\begin{pmatrix}1&0&0\\1&1&0\\1&1&1\\0&1&1\\0&0&1\end{pmatrix}}\\&={\frac {\sigma ^{2}}{81}}{\begin{pmatrix}19&16&10&4&1\\16&19&16&10&4\\10&16&19&16&10\\4&10&16&19&16\\1&4&10&16&19\end{pmatrix}}\end{aligned}}} 2回のパス後、中心点の標準偏差は に減少しました。これは、1回のパスでは 0.58 σでした。ノイズの低減効果は、同じ条件下で5点移動平均を1回実行した場合よりもわずかに小さく、平滑化された点の標準偏差は 0.45 σと小さくなります 19 81 σ = 0.48 σ {\displaystyle {\sqrt {\tfrac {19}{81}}}\sigma =0.48\sigma }

相関係数を持つ4つの連続したポイントの範囲に相関が拡張されました

ρ i , i + 1 = 16 19 = 0.84 , ρ i , i + 2 = 10 19 = 0.53 , ρ i , i + 3 = 4 19 = 0.21 , ρ i , i + 4 = 1 19 = 0.05 {\displaystyle {\begin{aligned}\rho _{i,i+1}&={\frac {16}{19}}=0.84,&\rho _{i,i+2}&={\frac {10}{19}}=0.53,\\[1ex]\rho _{i,i+3}&={\frac {4}{19}}=0.21,&\rho _{i,i+4}&={\frac {1}{19}}=0.05\end{aligned}}}

より狭いスムージング関数を使用して 2 回のパスを実行することによって得られる利点は、計算されたデータに生じる歪みが少なくなることです。

他のフィルターや代替品との比較

他の平滑化フィルタ、例えばガウス畳み込みやマルチパス移動平均フィルタなどと比較して、Savitzky–Golayフィルタは、特に近似多項式の高次数において、周波数領域において初期応答がより平坦で遮断が鋭い特性を示す(周波数特性を参照)。信号帯域幅が制限されたデータの場合、これはSavitzky–Golayフィルタが他の多くのフィルタよりも優れた信号対雑音比を提供できることを意味する。例えば、スペクトルのピーク高さは、同様のノイズ抑制効果を持つ他のフィルタよりも良好に保持される。Savitzky–Golayフィルタの欠点は、一部の高周波数の抑制が比較的乏しいこと(阻止帯域抑制が乏しい)と、最初と最後の点に多項式近似を用いた際にアーティファクトが生じることである。[16]

サビツキー・ゴレイフィルタの利点を共有し、少なくともいくつかの欠点を軽減する代替の平滑化手法としては、適切に選択された代替フィッティングウェイトを使用したサビツキー・ゴレイフィルタ、ウィテカー・ヘンダーソン平滑化ホドリック・プレスコットフィルタ(平滑化スプラインに密接に関連する同等の手法)、およびウィンドウ付き sinc関数を使用した畳み込みがあります。[16]

プログラミング言語での実装

MATLAB

  • sgolayfiltSignal Processing Toolboxから。バージョンR2006bより前で利用可能。

パイソン

  • flattenモジュールLightkurveより。Lightkurveは、ケプラーおよびTESS望遠鏡のデータを解析するための公式ライブラリです。
  • scipy.signal.savgol_filterモジュールSciPyより。SciPy は学術界で科学計算に広く使用されている堅牢なライブラリです。

参照

付録

選択された畳み込み係数の表

データ点集合 ( x j , y j ) 1 j n {\displaystyle (x_{j},y_{j})_{1\leq j\leq n}} を考えてみましょう。Savitzky–Golay表は、ステップ x j x j 1 {\displaystyle x_{j}-x_{j-1}} が一定hの場合を指します。3次多項式とウィンドウサイズm (5点)を用いた、いわゆる畳み込み係数の使用例を以下に示します。

スムージング
Y j = 1 35 ( 3 y j 2 + 12 y j 1 + 17 y j + 12 y j + 1 3 y j + 2 ) {\displaystyle Y_{j}={\frac {1}{35}}\left(-3y_{j-2}+12y_{j-1}+17y_{j}+12y_{j+1}-3y_{j+2}\right)}  ;
1次導関数
Y j = 1 12 h ( y j 2 8 y j 1 + 0 y j + 8 y j + 1 y j + 2 ) {\displaystyle Y'_{j}={\frac {1}{12h}}\left(y_{j-2}-8y_{j-1}+0y_{j}+8y_{j+1}-y_{j+2}\right)}  ;
2階微分
Y j = 1 7 h 2 ( 2 y j 2 y j 1 2 y j y j + 1 + 2 y j + 2 ) {\displaystyle Y''_{j}={\frac {1}{7h^{2}}}\left(2y_{j-2}-y_{j-1}-2y_{j}-y_{j+1}+2y_{j+2}\right)}

1次、2次、3次、4次、5次の多項式の畳み込み係数の選択された値が次の表に示されている[注7]。値はGorryで提供されているPASCALコードを使用して計算された。[15]

平滑化係数
多項式の
次数
2次
または3 次

4 次または5次
ウィンドウサイズ 5 7 9 7 9
−4 −21 15
−3 −2 14 5 −55
−2 −3 3 39 −30 30
−1 12 6 54 75 135
0 17 7 59 131 179
1 12 6 54 75 135
2 −3 3 39 −30 30
3 −2 14 5 −55
4 −21 15
正規化 35 21 231 231 429
1次導関数の係数
多項式の
次数
線形または二次関数
1 または 2
立方または四次
3または4
ウィンドウサイズ 3 5 7 9 5 7 9
−4 −4 86
−3 −3 −3 22 −142
−2 −2 −2 −2 1 −67 −193
−1 -1 −1 −1 −1 −8 −58 −126
0 0 0 0 0 0 0 0
1 1 1 1 1 8 58 126
2 2 2 2 −1 67 193
3 3 3 −22 142
4 4 −86
正規化 2 10 28 60 12 252 1,188
2次導関数の係数
多項式の
次数
2次
または3 次

4 次または5次
ウィンドウサイズ 5 7 9 5 7 9
−4 28 −126
−3 5 7 −13 371
−2 2 0 −8 −1 67 151
−1 −1 −3 −17 16 −19 −211
0 −2 −4 −20 −30 −70 −370
1 −1 −3 −17 16 −19 −211
2 2 0 −8 −1 67 151
3 5 7 −13 371
4 28 −126
正規化 7 42 462 12 132 1716
3次導関数の係数
多項式の
次数
立方または四次
3または4
五度法または六度法
5 または 6
ウィンドウサイズ 5 7 9 7 9
−4 −14 100
−3 −1 7 1 −457
−2 −1 1 13 −8 256
−1 2 1 9 13 459
0 0 0 0 0 0
1 −2 −1 −9 −13 −459
2 1 −1 −13 8 −256
3 1 −7 −1 457
4 14 −100
正規化 2 6 198 8 1144
4次導関数の係数
多項式の
次数

4 次または5次
ウィンドウサイズ 7 9
−4 14
−3 3 −21
−2 −7 −11
−1 1 9
0 6 18
1 1 9
2 -7 −11
3 3 −21
4 14
正規化 11 143

注記

  1. ^ mが偶数値の場合 z は1 − mからm − 1まで 2 ずつ変化する 。
  2. ^ 単純移動平均は、 k = 0、 Y = a 0の特殊なケースです。この場合、すべての畳み込み係数は 1/ mに等しくなります。
  3. ^ 移動平均を用いた平滑化は、等間隔の点を用いた局所的なフィッティング(傾斜した直線)と同等である。
  4. ^ ここで示されている式は、変数m' = (m − 1)/2で表されるMaddenの式とは異なります。
  5. ^ 平方根記号の下の式は、 z  = 0の畳み込み係数の式と同じである。
  6. ^ 係数(1/9、2/9、3/9、2/9、1/9)と恒等分散共分散行列を持つ等価フィルタを1回通過させることで、同じ結果が得られます。
  7. ^ より詳細な表と追加係数の計算方法は、もともとサヴィツキーとゴレイによって提供されました。[3]

参考文献

  1. ^ Whittaker, ET; Robinson, G (1924). 『観察の微積分』 Blackie & Son. pp. 291–6. OCLC  1187948.「多項式を当てはめて得られる卒業式」
  2. ^ abc Guest, PG (2012) [1961]. 「第7章 多項式係数の推定」. 数値的曲線フィッティング法. ケンブリッジ大学出版局. pp. 147–. ISBN 978-1-107-64695-7
  3. ^ abc Savitzky, A. ; Golay, MJE (1964). 「簡易最小二乗法によるデータの平滑化と微分化」.分析化学. 36 (8): 1627–39 . Bibcode :1964AnaCh..36.1627S. doi :10.1021/ac60214a047.
  4. ^ ab Savitzky, Abraham (1989). 「歴史的な共同研究」.分析化学. 61 (15): 921A – 3A . doi :10.1021/ac00190a744.
  5. ^ ab Steinier, Jean; Termonia, Yves; Deltour, Jules (1972). 「簡略化された最小二乗法によるデータの平滑化と微分化」.分析化学. 44 (11): 1906–9 . doi :10.1021/ac60319a045. PMID  22324618.
  6. ^ Larive, Cynthia K.; Sweedler, Jonathan V. (2013). 「ACS分析化学部門75周年記念:1938年から2012年までに出版された最も引用数の多い分析化学論文の特別コレクション」.分析化学. 85 (9): 4201–2 . doi :10.1021/ac401048d. PMID  2364714​​9.
  7. ^ リオードン、ジェームズ;ズブリツキー、エリザベス;ニューマン、アラン (2000). 「トップ10論文」.分析化学. 72 (9): 24 A–329 A. doi : 10.1021/ac002801q .
  8. ^ Talsky, Gerhard (1994-10-04). 微分分光法. Wiley. ISBN 978-3527282944
  9. ^ Abbaspour, Abdolkarim; Khajehzadeha, Abdolreza (2012). 「指示薬を使用しないスキャノメトリー法による沈殿滴定の終点検出」. Anal. Methods . 4 (4): 923– 932. doi :10.1039/C2AY05492B.
  10. ^ Li, N; Li, XY; Zou, XZ; Lin, LR; Li, YQ (2011). 「標準添加法に基づく微分スペクトルのための新規ベースライン補正法と植物油サンプル中のベンゾ[a]ピレンの定量分析への応用」. Analyst . 136 (13): 2802–10 . Bibcode :2011Ana...136.2802L. doi :10.1039/c0an00751j. PMID  21594244.
  11. ^ Dixit, L.; Ram, S. (1985). 「微分電子分光法による定量分析」.応用分光レビュー. 21 (4): 311– 418. Bibcode :1985ApSRv..21..311D. doi :10.1080/05704928508060434.
  12. ^ Giese, Arthur T.; French, C. Stacey (1955). 「微分分光法による重複スペクトル吸収帯の解析」. Appl. Spectrosc . 9 (2): 78– 96. Bibcode :1955ApSpe...9...78G. doi :10.1366/000370255774634089. S2CID  97784067.
  13. ^ Madden, Hannibal H. (1978). 「デジタルデータの最小二乗法による平滑化と微分化のためのSavitzky–Golay畳み込み法に関するコメント」(PDF) . Anal. Chem . 50 (9): 1383–6 . doi :10.1021/ac50031a048.
  14. ^ Gans 1992, pp. 153–7, 「繰り返し平滑化と微分化」
  15. ^ abc A., Gorry (1990). 「畳み込み(Savitzky–Golay)法による一般最小二乗平滑化と微分化」.分析化学. 62 (6): 570–3 . doi :10.1021/ac00205a007.
  16. ^ abc Schmid, Michael; Rath, David; Diebold, Ulrike (2022). 「Savitzky–Golayフィルタを置き換えるべき理由とその方法」ACS Measurement Science Au . 2 (2): 185– 196. doi :10.1021/acsmeasuresciau.1c00054. PMC 9026279. PMID  35479103 . 
  17. ^ ab Thornley, David J. 平滑化、微分化、再構成のための異方性多次元Savitzky Golayカーネル(PDF) (技術レポート). インペリアル・カレッジ・コンピューティング学部. 2066/8.
  18. ^ Ratzlaff, Kenneth L.; Johnson, Jean T. (1989). 「2次元多項式最小二乗畳み込み平滑化整数の計算」. Anal. Chem . 61 (11): 1303–5 . doi :10.1021/ac00186a026.
  19. ^ Krumm, John. 「2D画像用Savitzky–Golayフィルタ」Microsoft Research、レドモンド。
  20. ^ ab Nikitas and Pappa-Louisi (2000). 「データの2次元平滑化に関するコメント」Analytica Chimica Acta . 415 ( 1– 2): 117– 125. doi :10.1016/s0003-2670(00)00861-8.
  21. ^ abc Shekhar, Chandra (2015). 多次元Savitzky-Golayフィルタと微分器の簡略化された応用について. 科学技術における応用数学の進歩. AIP会議論文集. 第1705巻. p. 020014. Bibcode :2016AIPC.1705b0014S. doi :10.1063/1.4940262.
  22. ^ チャンドラ、シェカール (2017-08-02)。 「高度な畳み込み係数計算機」。ゼノド土井:10.5281/zenodo.835283。
  23. ^ チャンドラ、シェカール (2018-06-02)。 「高精度畳み込み係数計算機」。ゼノド土井:10.5281/zenodo.1257898。
  24. ^ Shekhar, Chandra. 「多次元最小二乗フィルタの畳み込み係数データベース」
  25. ^ abc Gans 1992、付録7
  26. ^ ab Ziegler, Horst (1981). 「デジタル平滑化多項式(DISPO)フィルタの特性」.応用分光法. 35 (1): 88– 92. Bibcode :1981ApSpe..35...88Z. doi :10.1366/0003702814731798. S2CID  97777604.
  27. ^ Luo, Jianwen; Ying, Kui; He, Ping; Bai, Jing (2005). 「Savitzky–Golayデジタル微分器の特性」(PDF) .デジタル信号処理. 15 (2): 122– 136. doi :10.1016/j.dsp.2004.09.008.
  28. ^ Gans, Peter; Gill, J. Bernard (1983). 「分光データの数値的平滑化および微分化のための畳み込み法の理論と実践における検証」.応用分光法. 37 (6): 515– 520. Bibcode :1983ApSpe..37..515G. doi :10.1366/0003702834634712. S2CID  97649068.
  29. ^ ガンズ 1992, 153ページ
  30. ^ プロクター、アンドリュー;シャーウッド、ピーター MA (1980). 「拡張スライディング最小二乗法によるデジタルX線光電子スペクトルの平滑化」Anal. Chem . 52 (14): 2315–21 . doi :10.1021/ac50064a018.
  31. ^ ガンズ 1992、207ページ
  32. ^ Bromba, Manfred UA; Ziegler, Horst (1981). 「Savitzky–Golayデジタル平滑化フィルタの応用ヒント」Anal. Chem . 53 (11): 1583–6 . doi :10.1021/ac00234a011.
  33. ^ Marchand, P.; Marmet, L. (1983). 「二項式平滑化フィルタ:最小二乗多項式平滑化の落とし穴を回避する方法」Review of Scientific Instruments . 54 (8): 1034– 1041. doi :10.1063/1.1137498.
  34. ^ ガンズ 1992, 157ページ
  • ガンズ、ピーター(1992)『化学科学におけるデータフィッティング:最小二乗法による』Wiley. ISBN 9780471934127
  • 多次元最小二乗フィルタ用の高度な畳み込み係数計算機(ACCC)
  • 統計学の基礎におけるサビツキー・ゴレイフィルタ
  • データセットのサイズ、適合次数、中心点からのオフセットの範囲に応じて、より広い範囲の係数が利用可能
Retrieved from "https://en.wikipedia.org/w/index.php?title=Savitzky–Golay_filter&oldid=1318961807"