適応フィルタ
デジタルフィルタ
信号をあるサンプリング周期でサンプリングした時系列信号$x_0,x_1,…,x_N$に対する処理をデジタルフィルタとよぶ.代表的なデジタルフィルタに線形フィルタがある.
線形フィルタ
FIR(有限インパルス応答)フィルタ
$$y_k=w_0x_k+w_1x_{k-1}+…+w_Nx_{k-N}$$ $w$がフィルタ係数
IIR(無限インパルス応答)フィルタ
$$y_k=w_0x_k+w_1x_{k-1}+…+w_Nx_{k-N}-v_1y_{k-1}-…-v_My_{k-M}$$
$w,v$がフィルタ係数
適応フィルタ
デジタルフィルタを学習によって構成する手法に適応フィルタがある.適応フィルタでは,FIRフィルタとIIRフィルタに対して同じ考え方でフィルタ設計を行うことができる.
適応フィルタの入出力
入力:$x_k=x(kT,k=0,1,2,…)$
出力:$y_k= w_0 x_k + w_1 x_{k-1}+\dots+w_{N-1}x_{k-N+1}$
誤差:$e_k = d_k-y_k$
フィルタ設計
目標値$d_k$に対して適応フィルタの出力$y_k$をできるだけ近づけるように,係数を決定することが,フィルタ設計である. $$W = [W_0,w_1,…,w_{N-1}]^t$$
$$X_k = [x_k,x_{k-1},…,x_{k-N+1}]^t$$
とおくとフィルタ誤差は以下のように表すことができる.
$$e_k=d_k-W^tX_k=d_k-X_k^tW$$
誤差の二乗規範$J_k$を最小化することを考える.($E$は期待値)
$$J_k \triangleq \frac{1}{2} E [e_k^2]$$
$$J_k =\frac{1}{2}(E[d_k^2]+W^tE[X_kX_k^t]W-2E[d_kX_k^t]W) =\frac{1}{2}(E[d_k^2]+W^tRW-2R_{dX}W)$$
$J_k$を$W_k$で微分した値を0とおく.
$$\frac{\delta J_k}{\delta W_k} = RW -R_{dX}=0$$
$J_k$を最小にする$W_k$を$W^o$とおく.
$$EW^o=R_{dX}$$
この関係式をWiener-Hopf方程式と呼び,$R$が逆行列を有する場合には以下のように最適値を求めることができる.
$$W^o = R^{-1}R_{dX}$$
フィルタ係数の逐次計算
逆行列の計算を行わないでWiener-Hopf法的式を満たす$W^o$を求める場合には,勾配を用いて逐次計算を行う.
$$\delta W= -\eta \frac{\delta J}{\delta W}=-\eta(RW(old)-R_{dX})$$
ここで$\eta$は学習率