ウィナーフィルタと適応フィルタ

31
ウィナーフィルタと 適応フィルタ 現代信号処理入門 東京農工大学 田中聡久 1

Transcript of ウィナーフィルタと適応フィルタ

Page 1: ウィナーフィルタと適応フィルタ

ウィナーフィルタと 適応フィルタ

~ 現代信号処理入門 ~

東京農工大学

田中聡久

1

Page 2: ウィナーフィルタと適応フィルタ

FIRフィルタ• 出力は,現在と過去のサンプルの線形重み和

2

x[n] y[n]

z-1

h[0]

h[1]

z-1

z-1

z-1

h[2]

h[M-2]

h[M-1]

y[n] =M�1�

k=0

h[k]x[n� k]

Page 3: ウィナーフィルタと適応フィルタ

似た問題• 線形自己回帰

x[n] = Σk=1M h[k] x[n-k] • 多チャンネル信号の重みつき平均

y[n] = Σk=1M wk xk[n] • 回帰分析

y = Σk=1M wk fk(x)

3

Page 4: ウィナーフィルタと適応フィルタ

理想出力(参照信号)• 理想の出力d[n](参照信号)があるとき,誤差信号

e[n] = d[n] - y[n] を考える.

• 誤差最小となるようにフィルタ設計

4

x[n]y[n]

z-1

h[0]

h[1]

z-1

z-1

z-1

h[2]

h[M-2]

h[M-1]

e[n]

d[n]

−+

Page 5: ウィナーフィルタと適応フィルタ

2乗誤差基準• 誤差信号の2乗平均を最小にする.

J[h] = E |e[n]|2 = E |d[n] - y[n]|2 = E |d[n] - hTx[n] |2 → min ここで,

•h = [h[0], ..., h[M-1]]T •x[n] = [x[n], x[n-1], ..., x[n-(M-1)]]T

•E[・] は信号の期待値 ∫(・) p(x) dx5

Page 6: ウィナーフィルタと適応フィルタ

ウィナーフィルタ• 平均2乗誤差を最小にする(MMSE)フィルタを,ウィナーフィルタと呼ぶ.

• x[n] の確率密度関数 p(x) はわからないので,サンプル平均(経験平均)をとる:

J[h] ≒ (1/N) Σn=0N-1 |d[n] - hTx[n] |2

• 簡単のために,データの開始点をn=0に取った.

6

Page 7: ウィナーフィルタと適応フィルタ

コスト関数を最小化• 考え方1: J[h]をhについて偏微分して0とおく.∂J[h] / ∂h = 0

• 考え方2: 幾何的な考え方.

•まずは,コスト関数を書き換えてみよう

• J[h] = || d - X h ||2 • d = [d[0], ..., d[N-1]]T

7

Page 8: ウィナーフィルタと適応フィルタ

Xの定義

8

X =

����

x[0] x[�1] · · · x[�(M � 1)]x[1] x[0] · · · x[�(M � 2)]...

. . ....

x[N � 1] x[N � 2] · · · x[N �M ]

����

x1 x2 xM

Page 9: ウィナーフィルタと適応フィルタ

コスト関数の意味

9

• コスト J[h] = || d - X h||2

• J[h]が測っているのは,Xの列ベクトルの線形和 Xh と d との距離

x1

x2

d

Xh*

Page 10: ウィナーフィルタと適応フィルタ

正規方程式• d と Xh が最短になる(J[h]が最小になる)のは,Xh が d の Xの列ベクトルの張る部分空間への正射影と一致するとき.

• このとき,X の列ベクトルと (d-Xh) が直交するため

XT(d-Xh) = 0 より XTXh = XTd

10

Page 11: ウィナーフィルタと適応フィルタ

FIRウィナーフィルタの解• 正規方程式を解くことでウィナーフィルタが得られる.

• XTX が正則の場合

h* = (XTX)-1XTd • これは最小二乗法の一般的な解の形になっている.

11

Page 12: ウィナーフィルタと適応フィルタ

一般的なウィナーフィルタ• 出力信号 y = hTx (x ∈ CN),原信号 d ∈ C

• 評価関数 J[h] = Ex,d |d - hTx|2

• この最小解は,原信号を観測信号xの各要素が張る空間に射影したもの.

• 確率的直交条件 E[x (d - hTx)] = 0

• E[xxT]h = E[xd] より h=(E[xxT])-1E[xd]12

Page 13: ウィナーフィルタと適応フィルタ

センサアレイ• 1つの信号を複数のセンサ(アンテナ・マイクロフォンなど)で観測する.

• 信号の相関行列がわかっていれば,hi をウィナーフィルタとして構成できる.

13

センサ N 個

入力信号

h1 h2 hN

y=Σi hi xi

x1 x2 xN

Page 14: ウィナーフィルタと適応フィルタ

回帰分析との関係• データ集合{(xi, yi)}をモデリングする回帰式 y = ax + b

• y=[yi], X=[xi 1], h=[a, b]T とおくとウィナーフィルタと同じ解.

14

0

5

10

15

20

0 5 10 15 20

データサイエンス()

Page 15: ウィナーフィルタと適応フィルタ

線形モデル

15

hx[n] y[n]

h* d[n]真の信号を生成するシステム(未知)

信号を推定するシステム

未知のシステムh*を推定する

Page 16: ウィナーフィルタと適応フィルタ

相関行列がわからない場合• ウィナーフィルタの評価関数

J[h] = Ex,d|d - hTx|2 =E|d|2 - tr{2E[dxT]h - hTE[xxT]h} 相関行列Rdx=E[dxT],Rxx=E[xxT] が必要.

• 実際にはわからない.推定しなくては.

•方法1: 幾つか観測しておく(説明済)

•方法2: 適応フィルタ 16

Page 17: ウィナーフィルタと適応フィルタ

適応フィルタ• 時々刻々とフィルタ係数 h を更新する.

• 代表的なもの

•確率勾配法(Least Mean Square; LMS)

•アフィン射影法(APA)

• Recursive Least Square (RLS)17

計算速い

収束速い

Page 18: ウィナーフィルタと適応フィルタ

最急降下法(勾配法)• 関数 f(x) の最小値/最大値を数値的に求めるアルゴリズム.

xn+1 = xn - µ∇f(xn)

18

f(x)の等高線

xn

xn+1-µ∇f(xn)

Page 19: ウィナーフィルタと適応フィルタ

確率勾配法(LMS)• 評価関数

J[h] = 1/2[E|d|2 - tr{2E[dxT]h - hTE[xxT]h}] をhで偏微分する.

∂J/∂h = -E[xd] + E[xxT]h • これを ∂J/∂h = 0 とおけば解が得られるが,ここで期待値を瞬時値で置き換える.

• このとき ∂J/∂h ≒ -x[n]d[n] + x[n]x[n]Th[n]19

Page 20: ウィナーフィルタと適応フィルタ

LMSの逐次更新則• ∂J/∂h ≒ -x[n]d[n] + x[n]x[n]Th[n]

= -(d[n] - y[n]) x[n] = -e[n] x[n]

• この勾配を用いた最急降下法(確率勾配法)は

h[n+1] = h[n] + µ e[n] x[n] • µは小さい定数.(本当は範囲がある)

20

Page 21: ウィナーフィルタと適応フィルタ

アフィン射影法• 信号モデル

• 参照信号は d[n] = h*Tx[n] で決まる.

• 未知数 h の解空間は d[n] = hTx[n] 21

hx[n] y[n]

h* d[n]

未知

Page 22: ウィナーフィルタと適応フィルタ

2次元 h=[h1, h2]Tの場合• h が満たすべき方程式は

h1 x1[n] + h2 x2[n] = d[n] h1 x1[n+1] + h2 x2[n+1] = d[n+1]

22h1

h2

h*xTh = d

Page 23: ウィナーフィルタと適応フィルタ

L次元に一般化• 解は直線 xT[n] h = d[n] (n=0, ..., L-1) 上に存在する.

• h[n-1] を解空間(直線)に射影する.

23h1

h2

h* xT [n] h = d[n]

h[n-1]

h[n]

xT [n+1] h = d[n+1]

Page 24: ウィナーフィルタと適応フィルタ

解直線への射影• 直線の方程式 xT[n] h = d[n] より,射影方向は法線ベクトル x[n] に沿う.

• h[n] = h[n-1] + α x[n] よりαが決まる.

24h1

h2

xT [n] h = d[n]

h[n-1]

h[n]

x[n]

Page 25: ウィナーフィルタと適応フィルタ

凸射影(Convex Projection)• 凸集合 Cn に対して射影Pnが決まる.

• P = PN PN-1・・・P2 P1 を定義すると

• [定理] 異なる凸集合への射影を繰り返すと,共通部分の元に収束する.

Pkh → h* ∈ C1∩C2∩・・・∩CN

• 直線(線形多様体)は凸集合25

Page 26: ウィナーフィルタと適応フィルタ

更新則• αは

• したがって,アフィン射影法の更新則は

• 正規化LMS(Normalized LMS)

26

� =d[n]� xT [n]h[n� 1]

�x[n]�2

h[n] = h[n� 1] +x[n]

�x[n]�2 (d[n]� xT [n]h[n� 1])

h[n] = h[n� 1] + µx[n]

�x[n]�2 + �(d[n]� xT [n]h[n� 1])

Page 27: ウィナーフィルタと適応フィルタ

線形多様体への射影• hnはH上の最もhn-1

に近い点.

hn = Xa + PN(XT)hn-1 • XT(Xa)=dより

a=(XTX)-1d • また

PN(XT)=I-X(XTX)-1XT27N(XT)=R(X)⊥: XTh=0

H: XTh=d

hn-1

R(X): Xの列ベクトルが張る空間

O

hnXa

PN(XT)hn-1

Page 28: ウィナーフィルタと適応フィルタ

APAの更新式• 結局

を得る.

• ここで,Mをメモリのデータ数として,

X = [x[n], x[n-1], ..., x[n-M]]

28

hn = (I �X(XTX)�1XT )hn�1 +X(XTX)�1d

= hn�1 +X(XTX)�1(d�XThn�1)

Page 29: ウィナーフィルタと適応フィルタ

例: ラインエンハンサ• 雑音の影響を受けた正弦波の推定

x[n] = sin (2πfn) + v[n] • v[n]: ガウス性雑音

• 参照信号 d[n] = x[n]

• 入力ベクトルを x[n] = [x[n-1], ..., x[n-L]]T

と定義する.29

Page 30: ウィナーフィルタと適応フィルタ

受信信号

301000 1100 1200 1300 1400 1500 1600−1

−0.5

0

0.5

1

1.5

2

Page 31: ウィナーフィルタと適応フィルタ

推定信号

310 50 100 150 200 250 300

−1.5

−1

−0.5

0

0.5

1

1.5