ウィナーフィルタと適応フィルタ
-
Upload
toshihisa-tanaka -
Category
Engineering
-
view
3.786 -
download
2
Transcript of ウィナーフィルタと適応フィルタ
ウィナーフィルタと 適応フィルタ
~ 現代信号処理入門 ~
東京農工大学
田中聡久
1
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]
似た問題• 線形自己回帰
x[n] = Σk=1M h[k] x[n-k] • 多チャンネル信号の重みつき平均
y[n] = Σk=1M wk xk[n] • 回帰分析
y = Σk=1M wk fk(x)
3
理想出力(参照信号)• 理想の出力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]
−+
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
ウィナーフィルタ• 平均2乗誤差を最小にする(MMSE)フィルタを,ウィナーフィルタと呼ぶ.
• x[n] の確率密度関数 p(x) はわからないので,サンプル平均(経験平均)をとる:
J[h] ≒ (1/N) Σn=0N-1 |d[n] - hTx[n] |2
• 簡単のために,データの開始点をn=0に取った.
6
コスト関数を最小化• 考え方1: J[h]をhについて偏微分して0とおく.∂J[h] / ∂h = 0
• 考え方2: 幾何的な考え方.
•まずは,コスト関数を書き換えてみよう
• J[h] = || d - X h ||2 • d = [d[0], ..., d[N-1]]T
7
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
コスト関数の意味
9
• コスト J[h] = || d - X h||2
• J[h]が測っているのは,Xの列ベクトルの線形和 Xh と d との距離
x1
x2
d
Xh*
正規方程式• d と Xh が最短になる(J[h]が最小になる)のは,Xh が d の Xの列ベクトルの張る部分空間への正射影と一致するとき.
• このとき,X の列ベクトルと (d-Xh) が直交するため
XT(d-Xh) = 0 より XTXh = XTd
10
FIRウィナーフィルタの解• 正規方程式を解くことでウィナーフィルタが得られる.
• XTX が正則の場合
h* = (XTX)-1XTd • これは最小二乗法の一般的な解の形になっている.
11
一般的なウィナーフィルタ• 出力信号 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
センサアレイ• 1つの信号を複数のセンサ(アンテナ・マイクロフォンなど)で観測する.
• 信号の相関行列がわかっていれば,hi をウィナーフィルタとして構成できる.
13
センサ N 個
入力信号
h1 h2 hN
y=Σi hi xi
x1 x2 xN
回帰分析との関係• データ集合{(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
データサイエンス()
線形モデル
15
hx[n] y[n]
h* d[n]真の信号を生成するシステム(未知)
信号を推定するシステム
未知のシステムh*を推定する
相関行列がわからない場合• ウィナーフィルタの評価関数
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
適応フィルタ• 時々刻々とフィルタ係数 h を更新する.
• 代表的なもの
•確率勾配法(Least Mean Square; LMS)
•アフィン射影法(APA)
• Recursive Least Square (RLS)17
計算速い
収束速い
最急降下法(勾配法)• 関数 f(x) の最小値/最大値を数値的に求めるアルゴリズム.
xn+1 = xn - µ∇f(xn)
18
f(x)の等高線
xn
xn+1-µ∇f(xn)
確率勾配法(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
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
アフィン射影法• 信号モデル
• 参照信号は d[n] = h*Tx[n] で決まる.
• 未知数 h の解空間は d[n] = hTx[n] 21
hx[n] y[n]
h* d[n]
未知
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
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]
解直線への射影• 直線の方程式 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]
凸射影(Convex Projection)• 凸集合 Cn に対して射影Pnが決まる.
• P = PN PN-1・・・P2 P1 を定義すると
• [定理] 異なる凸集合への射影を繰り返すと,共通部分の元に収束する.
Pkh → h* ∈ C1∩C2∩・・・∩CN
• 直線(線形多様体)は凸集合25
更新則• αは
• したがって,アフィン射影法の更新則は
• 正規化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])
線形多様体への射影• 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
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)
例: ラインエンハンサ• 雑音の影響を受けた正弦波の推定
x[n] = sin (2πfn) + v[n] • v[n]: ガウス性雑音
• 参照信号 d[n] = x[n]
• 入力ベクトルを x[n] = [x[n-1], ..., x[n-L]]T
と定義する.29
受信信号
301000 1100 1200 1300 1400 1500 1600−1
−0.5
0
0.5
1
1.5
2
推定信号
310 50 100 150 200 250 300
−1.5
−1
−0.5
0
0.5
1
1.5