3 ウィーナーフィルタ

3.1 ウィーナーフィルタ

線形フィルタの出力$ \hat{d}_k$は入力信号$ \{x_k\}$とインパルス応答 $ \{h_i\}$の畳み込み(convolution)を用いて次のように書ける。

$\displaystyle \hat{d}_k = h_k * x_k = \sum_{i=-\infty}^{\infty}h_i x_{k-i}, \quad \sum_{i=-\infty}^{\infty}\vert h_i\vert < \infty$ (1)

つまり、線形フィルタの特性はインパルス応答$ \{h_i\}$が決めている。 ここで、インパルス応答$ h_i$をz変換した物は伝達関数(transfar function)を表す。

$\displaystyle H(z) = \sum_{k} h(k) \cdot z^{-k}$ (2)

Wienerフィルタは所望の信号$ d_k$との平均2乗誤差

$\displaystyle J = E{(d_k - \hat{d}_k)^2} \quad\left( = \lim_{N \rightarrow \infty } \frac{1}{N} \sum_{k=-N/2}^{N/2}(d_k - \hat{d}_k)^2\right)$ (3)

を最小にする最適推定値$ \hat{d}_k$を出力するフィルタである。 Wienerフィルタにおいて入力信号と所望の信号にそれぞれ何を想定するかで表 1のように様々な働きを持ったフィルタが構成できる。

図 2: 平均二乗誤差$ J$の最小値。
\begin{figure}\begin{center}
%
\unitlength 0.1in
\begin{picture}( 32.6000, 27.7...
...8.0000){\makebox(0,0)[lb]{誤差曲面}}%
\end{picture}%
\end{center}
\end{figure}


表 1: Wienerフィルタの一般的な実現状況。ここで$ s_n$は観測系列に含まれる信号系列、$ v_n$は雑音系列を表す。
問題 入力信号$ x_n$ 所望信号$ d_n$
雑音中の信号のフィルタリング $ s_n + v_n$ $ s_n$
雑音中の信号の予測 $ s_n + v_n$ $ s_{n+p} \quad p>0$
雑音中の信号の平滑化 $ s_n + v_n$ $ s_{n-q} \quad q>0$
線形予測 $ s_{n-1}$ $ s_n$
一般非線形問題 $ G(s_n, v_n)$ $ s_n$

例えば、入力信号は源信号とノイズの和

$\displaystyle x_n = s_n + v_n \qquad n = 0, \pm 1, \pm 2, \cdots$ (4)

で表すと図 3のようなブロック図が書ける。

図 3: Wienerフィルタの構成例。ここでは雑音中の信号のフィルタリングする場合を示す。
\begin{figure}\begin{center}
%
\unitlength 0.1in
\begin{picture}( 46.0500, 14.0...
...\special{pa 5200 1600}%
\special{fp}%
\end{picture}%
\end{center}
\end{figure}

以上より、Wienerフィルタの設計問題は式(3)を最小にするインパルス応答$ \{h_i\}$を探すことであり、最小値の求め方によりいくつかのアルゴリズムが提案されている。

最終的に次の相関関数に関するWiener-Hopf方程式として表される。、

$\displaystyle R_{dy} [ m ] = \sum_{i=-\infty }^{\infty } h_i^{\rm op} r_{yy} [ m-i ] = h_i^{\rm op} * r_{yy} [ m ] ,\qquad m \in \mathbb{Z}$ (5)

この方程式を満たす解(Wiener解)をインパルス応答

3.1.1 アルゴリズム

3.2 因果的ウィーナーフィルタ

ウィーナーフィルタは過去から未来に至るまでのすべての入力データ $ \{y_{-\infty} ,\cdots , y_k, \cdots, y_\infty \}$を必要としている。ところが、未来のデータを知ることは出来ないため、過去から現在までのデータ $ \{y_{-\infty} ,\cdots , y_k \}$を用いて所望信号$ d_k$の最適推定値$ \hat{d}_k$を求めなければならない。

$\displaystyle \hat{d}_k = \sum_{i=0}^{\infty }h_i^{op}y_{k-i} \qquad h_i = 0, i < 0$ (6)

最終的に次の相関関数に関するWiener-Hopf方程式として表される。、

$\displaystyle R_{dy} [ m ] = \sum_{i=0 }^{\infty } h_i^{\rm op} r_{yy} [ m-i ] = h_i^{\rm op} * r_{yy} [ m ] ,\qquad m \in \mathbb{Z}$ (7)

3.3 適応フィルタ

因果的ウィーナーフィルタ(近似解)では、信号の統計量(相関関数)を事前に求める必要があるため、実時間処理には適さない。また、信号の統計量が設計段階と異なると、そのフィルタ係数は最適ではなくなる。

そこで、フィルタ係数をある初期値から適応的に少しずつ自己調整し、最終的に最適フィルタを実現するフィルタが考案された。このようなフィルタ係数の自己調整機能(適応アルゴリズム)を持ったデジタルフィルタを適応フィルタ(adaptive filter)と呼ぶ。

3.3.1 最急降下法

ここでは時間のかかる逆行列の計算などの代わりに、適当な初期値から出発し、最急降下法を用いて反復的に最小値を求める。

平均2乗誤差 $ J(\{h_i\})$は最小値$ J_{min}$を用いて次のように表現できる。

$\displaystyle J = J_{min} + (\hat{\bm{h}}_k - \bm{h}_{op})^T \bm{R_{yy}} (\hat{\bm{h}}_k - \bm{h}_{op})$ (8)

これより平均2乗誤差 $ J(\{h_i\})$は単峰性だと分かる。よって最急降下方向 $ -\nabla J(\hat{\bm{h}}_k)$に反復的に係数$ \{h_i\}$を更新していけばいずれWiener解 $ \{h_i^{op}\}$に収束すると考えられる。

図 4: 最急降下法
\includegraphics{graph/gradient.eps}

そこで、フィルタ係数 $ \hat{\bm{h}}_k$をある初期値 $ \hat{\bm{h}}_0$から次の漸化式に従って更新する。

$\displaystyle \hat{\bm{h}}_{k+1} = \hat{\bm{h}}_k - c\nabla J(\{h_i\})$ (9)

この計算には逆行列の計算が含まれない。 ここで$ c$はステップサイズを表し、更新による修正量を決定する。

3.3.2 LMSアルゴリズム

最急降下法を用いて逆行列の計算を省くことに成功した。LMSアルゴリズム(Least Mean Square algorithm)ではさらに期待値演算を除いた勾配を用いる。これは最急降下法における勾配を瞬時値で置換した方法と解釈できる。

LMSアルゴリズムでは最急降下法で用いた勾配 $ -\nabla J(\hat{\bm{h}}_k)$に代わって期待値演算を除いた次の勾配を用いる。

$\displaystyle \nabla J^\prime (\{h_i\}) = \frac{\partial e^2}{\partial \hat{\bm...
...-2e_k {\bm y}_k, \qquad e_k = d_k - \hat{d}_k = d_k - \bm{y}_k^T \hat{\bm{h}}_k$ (10)

大胆な扱いだが、その平均値(期待値)は最急降下法の勾配と一致し、フィルタ係数の期待値は最終的にWiener解と一致する。

Copyright © 2004-2011 RandomWalker All Rights Reserved.
yfa68798 atto nifty.com