第1章 周波数領域での導出
Frequency Domain Derivation
1. 問題設定
未知の原信号 $X(\omega)$ にフィルタ $H(\omega)$ がかかり、さらにノイズ $N(\omega)$ が加わった劣化信号 $Y(\omega)$ が観測される:
\begin{equation} Y(\omega) = H(\omega)X(\omega) + N(\omega) \label{eq:Y} \end{equation}この劣化信号 $Y(\omega)$ にフィルタ $G(\omega)$ をかけて、原信号 $X(\omega)$ を復元したい。 復元誤差のパワースペクトルの期待値を最小化するフィルタ $G(\omega)$ を求める:
\begin{equation} \varepsilon = E\left[|X(\omega) - G(\omega)Y(\omega)|^2\right] \to \min \label{eq:objective_freq} \end{equation}2. 仮定
導出に必要な仮定
- 信号 $X$ とノイズ $N$ が無相関:$E[NX^*] = E[N^*X] = 0$
- パワースペクトル $P_S(\omega)$, $P_N(\omega)$ が既知
「定常性」がよく仮定されるのは、パワースペクトルが「周波数だけの関数」になることを保証し、固定のフィルタで対応できるようにするためである。
3. 記号の定義
- 原信号のパワースペクトル:$P_S = E[|X|^2] = E[XX^*]$
- ノイズのパワースペクトル:$P_N = E[|N|^2] = E[NN^*]$
4. 目的関数の展開
煩雑さを避けるため $(\omega)$ を省略し、式\eqref{eq:Y}を式\eqref{eq:objective_freq}に代入して展開する:
\begin{align} \varepsilon &= E[|X - GY|^2] \nonumber\\ &= E[|X - G(HX + N)|^2] \nonumber\\ &= E[|(1 - GH)X - GN|^2] \end{align}一般に $|z|^2 = zz^*$ なので、信号とノイズが無相関という仮定より $E[NX^*] = E[N^*X] = 0$ を使うと:
\begin{align} \varepsilon &= |1-GH|^2 P_S + |G|^2 P_N \label{eq:eps_expanded} \end{align}5. 直交性原理による導出
推定信号を $\hat{X} = GY$、推定誤差を $E = X - \hat{X} = X - GY$ とする。 直交性原理は次のように述べられる:
直交性原理(周波数領域)
最適フィルタ $G$ において、推定誤差 $E$ は観測信号 $Y$ と直交(無相関)する:
\begin{equation} E[E \cdot Y^*] = 0 \label{eq:orthogonality_freq} \end{equation}式\eqref{eq:orthogonality_freq}を展開すると:
\begin{equation} E[(X - GY) \cdot Y^*] = 0 \end{equation}$G$ は確率変数ではないので:
\begin{equation} E[XY^*] - G \cdot E[YY^*] = 0 \end{equation}ここで、$Y = HX + N$ より:
\begin{align} E[XY^*] &= E[X(HX + N)^*] = H^*E[XX^*] + E[XN^*] = H^* P_S \\ E[YY^*] &= E[(HX+N)(HX+N)^*] = |H|^2 P_S + P_N \end{align}ここで $E[XN^*] = 0$(信号とノイズの無相関)および $E[NX^*] = 0$ を用いた。
直交条件 $E[XY^*] = G \cdot E[YY^*]$ より:
Wienerフィルタ(直交性原理による導出)
\begin{equation} G = \frac{H^* P_S}{|H|^2 P_S + P_N} \end{equation}6. 平方完成による導出
式\eqref{eq:eps_expanded}をさらに展開する:
\begin{align} \varepsilon &= (|H|^2P_S + P_N)|G|^2 - P_S(GH + G^*H^*) + P_S \label{eq:eps_quadratic} \end{align}複素数の平方完成の恒等式:
\begin{equation} a|G|^2 + bG + b^*G^* + c = a\left|G + \frac{b^*}{a}\right|^2 + c - \frac{|b|^2}{a} \label{eq:identity} \end{equation}を適用すると:
\begin{equation} \varepsilon = (|H|^2P_S + P_N)\left|G - \frac{H^*P_S}{|H|^2P_S + P_N}\right|^2 + \frac{P_S P_N}{|H|^2P_S + P_N} \label{eq:eps_completed} \end{equation}最適解
式\eqref{eq:eps_completed}において、誤差 $\varepsilon$ が最小となるのは $|\cdot|^2$ の中身がゼロのとき:
Wienerフィルタ(周波数領域)
\begin{equation} G(\omega) = \frac{H^*(\omega) P_S(\omega)}{|H(\omega)|^2 P_S(\omega) + P_N(\omega)} \label{eq:wiener_freq} \end{equation}このとき残留誤差パワーは:
\begin{equation} \varepsilon_{\min} = \frac{P_S P_N}{|H|^2 P_S + P_N} \end{equation}7. Wirtinger微分による導出
Wirtinger微分を使えば機械的に最適解を求められる。$\varepsilon$ は実数値関数であり、$G$ と $G^*$ の両方に依存する。 $\dfrac{\partial \varepsilon}{\partial G^*} = 0$ を解くと:
\begin{equation} -H^*P_S + G|H|^2P_S + GP_N = 0 \end{equation}$G$ について解くと:
\begin{equation} G = \frac{H^*P_S}{|H|^2P_S + P_N} \end{equation}これは式\eqref{eq:wiener_freq}と完全に一致する。
Wirtinger微分の利点
- 計算が機械的で間違いにくい
- 複素数の構造を活かした簡潔な導出
- 機械学習(複素ニューラルネット等)でも標準的に使用される
Wirtinger微分の詳細はWirtinger微分(複素解析 上級)を参照。