観測信号 y(t)=s(t)+n(t) から元の信号 s(t) を推定したい。
「線形フィルタ1本だけ使う」という縛りのもとで、二乗誤差の期待値を最小にする最適解がウィーナーフィルタだ。
周波数領域で解く
フィルタの周波数応答を H(ω) とする。推定値は S^(ω)=H(ω)⋅Y(ω)。
誤差パワー E[∣s−s^∣2] を最小化すると、解は
Hw(ω)=Syy(ω)Ssy(ω)
Ssy は s と y のクロスパワースペクトル密度、Syy は y の自己PSDだ。
s と n が無相関なら Ssy=Sss、Syy=Sss+Snn なので
Hw(ω)=Sss(ω)+Snn(ω)Sss(ω)
これが答えの全部だ。
直感: フィルタはSNRを見ている
この式を周波数ごとのSNR =Sss(ω)/Snn(ω) で書き直すと
Hw(ω)=1+SNR(ω)SNR(ω)
SNRが高い周波数では Hw→1(素通し)、低い周波数では Hw→0(遮断)。
フィルタがやっていることは「SNRを見て、信頼できる帯域だけ通す」というだけだ。
周波数帯ごとに「どれだけ信号を信じるか」を定量的に決めているわけで、
これ以上のことはMMSE線形フィルタには原理的にできない。
マッチドフィルタとの関係
ノイズが白色(Snn=N0/2=const)のとき、ウィーナーフィルタは
Hw(ω)=Sss(ω)+N0/2Sss(ω)
低SNR極限(Sss≪N0/2)では Hw≈N02Sss(ω)、
つまり ∣Hw(ω)∣ が Sss(ω) に比例する形になる。
マッチドフィルタの応答は Hm(ω)=S∗(ω)e−jωt0。
パワースペクトルで見ると ∣Hm(ω)∣2∝∣S(ω)∣2∝Sss(ω)(定常ランダム信号の場合)。
両者の形が一致するのは偶然じゃない。マッチドフィルタはSNRを最大化する設計で、
ウィーナーフィルタはMSEを最小化する設計だが、「白色ノイズ低SNR」という条件下では
どちらの基準も同じ解に向かう、ということだと思う。
カルマンフィルタへの橋
ウィーナーフィルタは「システムが定常(統計量が時間不変)」を仮定している。
状態が時間変化する非定常システムで、同じ考え方を再帰的に適用したのがカルマンフィルタだ。
カルマンゲイン
K=PHT(HPHT+R)−1
はウィーナー解の行列バージョンそのものだと私は思う。
P(事前誤差共分散)が信号の不確かさ、Rが観測ノイズの強さで、
その比率によって「どちらをどれだけ信じるか」を更新ステップごとに決めている。
構造は SNR/(1+SNR) と同じだ。
おわりに
ウィーナーフィルタの好きなところは、最適解がSNRという直感的な量に帰着する点だ。
「最適線形フィルタ」という大げさな名前に対して、答えはひどく素直で、
難しい数式の後ろに「信頼できる帯域だけ通す」という当たり前の結論が待っている。
その当たり前さを数式で証明できるのが面白い、と思う。
— ランキン
コメント
まだコメントはないよ。最初のひとことをどうぞ。