1.線形シフト不変システムとz変換
ここで言う「システム」とは? T[ ] 入力数列 出力数列 一意変換(演算子) 概念的には, , x −2 , x −1 , x 0 , x 1 , x 2 , を入力すると , y −2 , y −1 , y 0 , y 1 , y 2 , が出力される. 線形システム: 線形システムの例 y n=x nx n−1 2 線形でないシステムの例 y n= x n2 y n={
x n x n0 0 otherwise なぜ線形システム? ● 簡単だから ● いろいろな性質がわかっている ● 設計しやすさ 実際に使われる非線形システム ● 整流 ● ニューラルネット シフト不変システム y n=T [ x n] のとき yn−k=T [ x n−k] ※ここで言う x n , y n は {, x −1 , x 0 , x 1 , }, { , y −1 , y 0 , y 1 ,} のことをさすことに注意 シフト不変システムの例 y n=T [ x n]= x n− x n−1 x ' n=x n−1 , y ' n=T [ x ' n] とすると, y ' n=T [ x ' n]= x ' n−x ' n−1=x n−1−x n−2 y n−1=x n−1−x n−2 より T [ xn−1]= y n−1 シフト不変でないシステムの例 y n=T [ x n]=x n−x 0 x ' n=x n−1 , y ' n=T [ x ' n] とすると, y ' n=T [ x ' n]= x ' n−x ' 0=x n−1− x −1 だが, y n−1=x n−1−x 0 より T [ xn−1]≠ yn−1なぜシフト不変システム? ● 簡単だから ● 入力の時間ずれをあまり気にしなくて良い 線形でシフト不変なシステムの場合,次の式でシステムが表現できる y n=T [ x n]=
∑
k=−∞ ∞ h k x n−k =∑
k=−∞ ∞ hn−k x k h:インパルス応答 単位インパルス n : n=0 で 1,それ以外で 0 T [ n]=∑
k=−∞ ∞ h k x n−k =h n 因果性: y n は , x n−1 , x n のみに依存 ● n が時間を表す時,実世界で起きる現象に対する制約 ● 時系列の処理には重要 ● 画像などの場合はあまり重要でない(n は時間ではないので) このとき,システムは次の形 T [ x n ]=∑
k=0 ∞ h k x n−k 安定性: x n が有界の時, y n も有界∑
k =−∞ ∞ ∣h k ∣∞ ⇔システムが安定 証明:h(k)の無限和が有限ならばシステムが安定であることの証明 x n が有界なので ∣x n∣M となる M が存在する.したがって∣
∑
k=−∞ ∞ h k x n−k ∣
≤∑
k=−∞ ∞ ∣h k x n−k ∣ ∑
k=−∞ ∞ ∣h k M∣=M∑
k=−∞ ∞ ∣h k ∣∞ システムが安定ならば h(k)の無限和が有限であることの証明 x n が有界の時, y n も有界である.ここで x n=∣h −n∣ h −n h n≠0 , 0 h n=0 とおけば,明らかに x n は有界である.ここで, h n≠0 のとき, h n x−n=h n⋅∣h n∣hn =∣h n∣ h n=0 のとき, h n x−n=0=∣hn∣ となる.ここで, ∣y 0∣=∣
∑
k=−∞ ∞ hk x −k ∣
=∣
∑
k=−∞ ∞ ∣h k ∣∣
∞ より,∑
k =−∞ ∞ ∣h k ∣∞ である.安定でないシステムの例: y n= x n y n−1 入力 x n=u n (単位ステップ)のとき, y n=n1 であり, yn は発散する. z変換:離散系列でのラプラス変換のようなもの 形式的には次のとおり(z は複素数) X z =Z [ x n]=
∑
n=−∞ ∞ x n z−n (本によっては zn を掛ける定義もある) 無限級数なので収束しないかもしれない:収束性が問題 例1: x n=anu n X z =∑
n=−∞ ∞ anu n z−n =∑
n=0 ∞ az−1n= 1 1−az−1= z z −a ∣
az −1∣
1 z =a に極を持つ ∣a∣∣z∣ で収束 例2: x n=−anu−n−1 X z =∑
n=−∞ ∞ −anu −n−1 z−n =∑
n=1 ∞ −a−nzn = −a −1z 1−a−1z= z z−a ∣
a −1z∣
1 z =a に極を持つ ∣z∣∣a∣ で収束 z変換の関数の形と収束領域を合わせないと元の x(n)が特定できない 例3: x n=anu n−bnu −n−1 X z = z z −a z z−b ∣a∣∣z∣∣b∣ a a 収束領域は 極を含まない 因果性信号の 収束領域は 無限遠点を含む 反因果性信号の 収束領域は 原点を含む収束領域と因果性 因果性をz領域で見ると? ⇒原点から最も遠い極の外側が収束領域 因果的な信号・システムだけを問題にする場合はこのタイプだけ考えればよい 収束領域と安定性 安定性をz領域で見ると? ⇒収束領域が単位円を含む ・単位円は z =ej すなわち周波数領域 収束領域が単位円を含む=離散フーリエ変換が可能 安定でないシステムの周波数応答例 y n= x n y n−1 z領域では Y z = 1 1− z−1 X z 極は z=1 なので収束領域は単位円を含まない z=ej とおくと,
∣
H ej ∣
=
21−cos1 a b aスペクトルを見ればわかるように、このシステムは直流信号に対して発散する それ以外では安定 演習: x n=−1nu n の場合, y n はどうなる? X z =
∑
n=0 ∞ −z −n = 1 1z−1 Y z = 1 1− z−1 1 1z−1= 1 21−z−1 1 21 z−1 y n=1−1 nu n 2 極が単位円の外側にある例 Y z = 1 1−2z−1 X z 時間領域では y n=2y n−1 x n 過去に向かえば収束,未来に向かえば発散 安定で因果的⇒すべての極が単位円の内側にある 演習:次のシステムを因果的と仮定したとき,安定かどうかを調べよ. (a) y n=0.5y n−1−0.5y n−2 x nz 変換すると Y z =z −1 2 Y z − z−2 2 Y z X z 2− z−1z−2 2 Y z= X z Y z = 2 2−z−1z−2 X z = 2z2 2z2−z1 X z 極は 1± j
7 4 その絶対値は 1
2 より,安定.(b) y n=−32 y n−2−32 y n−112x n z 変換すると Y z =−3 2z −2Y z −3 2z −1Y z 1 2X z 23z−13z−2Y z = X z Y z = 1 23z−13z−2 X z = z2 2z23z3 X z 極は −3± j
15 4 絶対値は
3 2 なので安定ではない. 単位ステップ応答 -2.5 0 2.5 5 7.5 10 12.5 15 17.5 20 22.5 25 27.5 30 32.5 35 37.5 40 42.5 45 -1500 -1250 -1000 -750 -500 -250 0 250 500 750 1000 1250 1500 1750 2000 z2 2z23z3 z z −1 = z z−z1 z z −z2 z z−1z1=−3 j
15 4 z2= −3− j
15 4 =15 j
15 80 =15− j
15 80 =1 8 y n= z1nu n z2nu n1 8u n =6 n / 2 40
15 sin n15 cos n
u n 1 8u n ただし =tan−1
15 3 −
z変換とラプラス変換 ラプラス変換 X s=∫
−∞ ∞ x t e−st dt ここで y t=∑
k=−∞ ∞ x t t−k のラプラス変換は, Y s =∫
−∞ ∞∑
k =−∞ ∞ x t t−k e−stdt =∑
k=−∞ ∞ x k e−sk es=z とおけば Y z =∑
k=−∞ ∞ x k z−k s平面とz平面の関係 s= j とおくと, es =z より z =e⋅ej 2.FIR フィルタと IIR フィルタ
FIR フィルタ y n=∑
k=0 N −1 h k x n−k Y z =
∑
k=0 N −1 h k z−k
X z FIR フィルタの特徴 ● 必ず安定 ● 直線位相にできる ● 極は z=0 のみ,それ以外は零点 → 零点だけで周波数特性を作る直線位相のFIRフィルタ
z
4z
4z
3z*
3z
3z*
3z
21/z
2z
21/z
2z
1z*
11/z
11/z*
1z
1z*
11/z
11/z*
1単位円および軸に対して対称
FIR フィルタの構成 インパルス応答からフィルタを構成する y n=∑
k=0 N −1 h k x n−k N 点のインパルス応答からフィルタを構成する 周波数特性からフィルタを構成するh n の離散フーリエ変換 H
e 2 jk N
がわかっているとする W =e −2 j N とすると h n= 1 N∑
k=0 N −1 H
W−k
W−kn H z =∑
n=0 N −1 h n z−n =1 N∑
n=0 N −1∑
k=0 N −1 H W−k W−knz−n = 1 N∑
k=0 N −1 H W−k ∑
n=0 N −1 W−k z−1n = 1 N∑
k=0 N −1 H W−k 1−W −k z−1N 1−W−k z−1 =1−z −N N∑
k=0 N −1 H W−k 1−W−k z−1 つまり,周波数軸上( 0~2 )での N 点における周波数特性がわかっていれば, N 点 FIR フィルタのシステム関数が構成できる IIR フィルタ y n=∑
k=0 ∞ h k x n−k Y z =
∑
k=0 ∞ h k z−k
X z 無限を有限に:次の形のシステム関数が用いられることが多い Y z =∑
k =0 M −1 akz−k 1−∑
k =1 N −1 bkz−k X z 特徴 ● うまく設計しないと不安定 ● うまく設計すれば少ない次数で鋭い特性 ● 非直線位相 IIR フィルタの設計 ● インパルス応答は無限に長い⇒インパルス応答からの設計は不可能 ● アナログフィルタからの設計 適当なアナログフィルタ(s領域)→ディジタルフィルタ(z領域) ● 直接設計 z領域で極配置を決定する アナログフィルタからの設計の例 バタワース低域フィルタ 振幅特性∣
H ej ∣
= 1
1
/c
2N = 1
1−1N
j /c
2N (アナログ)バタワースフィルタの伝達関数 H s の極= 1−1Ns/ c2N の根 N が偶数の時 s=ce 2k1 2N j N が奇数の時 s=ce k N j 2N 個の極のうち,s平面の左半分(実数部が負)を選ぶ(安定性のため) ⇒ p1,, pN 伝達関数は H s=∏ k=1 N −p k s− pk バタワースフィルタの伝達特性の分母:バタワース多項式 1: s1 2: s2
2 s1 3: s2s1 s14: s4As3Bs2As1 A=
21sin38 cos3 8 B=
22 (アナログ)バタワースフィルタの設計 1. 遮断周波数 c [rad/s]を決める 2. 阻止域端周波数 s [rad/s]を決める 3. 阻止域減衰量 As [dB]を決める 4. −10 log10∣
H e j s∣
≥A s となるように次数 N を決める ⇒ N ≥1 2 log1010As/10−1 log10s/c アナログからディジタルへ 単純な方法: アナログバタワースフィルタ Has =∏
k =1 N 1 s− pk=∑
k=1 N A k s− pkそのインパルス応答 hat =
∑
k Ake −pktu t インパルス応答をサンプリング h n=∑
k Ake−pknu n z変換 H z =∑ k Ak 1−e−pkz−1 問題点: アナログフィルタの特性はナイキスト周波数で切れているわけではない →本当は hat をサンプリングしてはいけない(折り返し歪みが発生) 双1次z変換 周波数 −∞ , ∞ でのアナログフィルタの周波数特性 →周波数 [−, ] に写像してしまう LPF の場合,どうせ端の値は小さいので大して問題にならない 変換式 s=2⋅1−z−1 1z−1 導出: まず s= j 次に =2 tan−12 とおく. =2 tan2 である. z=ej とすれば, −≤≤ となる. 21−z −1 1z−1=2 1−e−j 1e−j =2 ej /2−e−j /2 ej /2 e−j /2=2 2 jsin / 2 2 cos/ 2 =2 j tan 2=j =s 例:2次のバタワース低域フィルタ,遮断周波数 /2 [rad/s] 1. アナログフィルタでの遮断周波数は 2 tan/ 4=2 2. バタワースフィルタの極は 2×−
21± j 2 =−
2 1± j 3. 伝達関数は H s=
21 j s
2 1 j
21− j s
2 1− j= 4 s22
2 s44. H
21−z−1 1z−1
= z12
22 z2−
22 5. 最終的に H z = 12z−1z−2
22−
2−2 z−2= 1
22 12z−1z−2 1−
2−2
22 z −2x(n)
y(n)
z
-1+
z
-1 0.2929 0.2929 0.5858+
z
-1z
-1 -0.17163.線形予測
システムの出力だけを見てシステムが推定できるか? (例)音声信号 株価・為替 推定手順 ● システムの「形」を設定する(モデル化) ● 出力系列 y(n) を最もよく説明するようにシステムパラメータを推定 y n= f , y n−1e n e n が入力 x n に相当(するが,本当のところはわからない) ● 何が「最も良い」のか? 自明な解: y n=e n でもあまり意味はない 「最も良い」モデル化のための仮定 ● 現在の出力 y n は過去の出力値に依存して決まる ● e n をできるだけ小さくする すなわち E [ y n− f , y n−1] を最小化 推定すると何が良いのか? ● 未来の予測ができる(=儲かる) ● システムがマクロレベルで変わるとき,それを見つけることができる (音声のモデル化,音声認識) →音声信号の圧縮(符号化),認識の特徴量など f として線形関数を仮定→線形予測モデル y n=−∑
k =1 p aky n−k e n ak :線形予測係数(LPC)→観測データから推定 p:予測次数→あらかじめ決めておく 注:必ずしも線形である必要はない(ニューラル予測モデル,カーネル予測モデルなど) 非線形の場合,e(n)を小さくするのは容易だが,パラメータ推定が難しく,また汎化能力 が低い(過学習) 線形予測で表されるシステムはどんなものか? 上式をz変換 Y z =−∑
k akz−kY z E z Y z = 1 1∑
k=1 p akz−k E z IIR フィルタの特殊なケース(分子が1) ※分子が1なら全極モデル,自己回帰モデルまたは AR モデル ※分母が1なら全零モデル,移動平均モデルまたは MA モデル※どちらも1でなければ極零(ARMA)モデル ※ちなみに経済学ではわざと安定でないモデルを使うことがある(ARIMA モデル) 線形予測係数の推定 e(n)の2乗和が最小になるように係数を決定する
∑
n e n2=∑
n∣
y n∑
k =1 p aky n−k ∣
2 min 行列表現 線形予測係数の p 次元ベクトル A=a1,, apT 出力系列の(N-p)次元ベクトル V = y p , y p1 , , y N −1T 出力系列の N − p× p 次元行列 F =
y p−1 y p−2 ⋯ y 0 y p y p−1 ⋯ y 1 ⋮ ⋯ ⋮ y N −2 y N −3 ⋯ y N − p−1
このとき∣V FA∣2 を最小化→ dAd V FATV FA=O d
dAV
TV ATFTV VT FA ATFTF A=O
2 FTV 2 FTF A=O FTF A=−FTV A=− FTF −1FTV 実際の解き方 FTF A=−FTV を分解してみる。まず FTF =
y p−1 y p ⋯ y N −2 y p−2 y p−1 ⋯ y N −3 ⋮ ⋯ ⋮ y 0 y 1 ⋯ y N − p−1
y p−1 y p−2 ⋯ y 0 y p y p−1 ⋯ y 1 ⋮ ⋯ ⋮ y N −2 y N −3 ⋯ y N − p−1
=
∑
k=0 N − p−1 y p−1k 2∑
k=0 N − p−1 y p−1k y p−2k ⋯∑
k=0 N − p−1 y p−1k y k ∑
k=0 N − p−1 y p−2k y p−1k ∑
k =0 N − p −1 y p−2k 2 ⋯∑
k=0 N− p−1 y p−2k y k ⋮ ⋮ ⋱ ⋮∑
k=0 N − p−1 y k y p−1k ∑
k=0 N − p−1 y k y p−1k ⋯∑
k=0 N − p−1 y k 2
そこで FTF =ij とおけば 1≤i , j≤ p , ij=∑
n= p N −1 y n−i y n− j またFTV =
∑
k =0 N − p 1 y pk y p−1k ∑
k =0 N − p1 y pk y p−2k ⋮∑
k =0 N − p1 y pk y k
より FTV =
01 02 ⋮ 0p
したがって全体ではこうなる( ij=ji )
11 12 ⋯ 1p 21 22 ⋯ 2p ⋮ ⋮ ⋱ ⋮ p1 p2 ⋯ pp
a1 a2 ⋮ ap
=−
01 02 ⋮ 0p
これを Yule-Walker 方程式(正規方程式)という。 定義どおり ij=∑
n= p N −1 y n−i y n− j として係数を求めるやり方を共分散法という。 より高速な近似解法として自己相関法がある。まず, ij=∑
n= p N −1 y n−i y n− j=∑
n= p−i N −i −1 y n y n j−i である。ここで,y が定常的であり, N ≫ p ならば,上の式は i と j の差だけに依存す ると仮定することができる。 自己相関法では r m=∑
n=0 N − m−1 y n y nm として ij=r ∣i− j∣ とする。すると解くべき方程式は
r 0 r 1 ⋯ r p−2 r p−1 r 1 r 0 ⋯ r p−3 r p−2 r 2 r 1 ⋯ r p−4 r p−3 ⋮ ⋮ ⋱ ⋮ r p−2 r p−3 ⋯ r 0 r 1 r p−1 r p−2 ⋯ r 1 r 0
a1 a2 ⋮ ap
=−
r 1 r 2 ⋮ r p
となる。A の左の行列は対称 Toeplitz 行列。このとき,Levinson-Durbin のアルゴリズム
を使って,上の方程式は O p2 で解くことができる。(通常の行列だと O p3 ) Levinson-Durbin のアルゴリズム
r0 r1 r2 ⋯ rp −2 rp −1 r1 r0 r1 ⋯ rp−3 rp−2 r2 r1 r0 ⋯ rp −4 rp −3 ⋮ ⋮ ⋮ ⋱ ⋮ rp−2 rp −3 rp−4 ⋯ r0 r1 rp−1 rp−2 rp−3 ⋯ r1 r0
a1 a2 ⋮ ap
=−
r1 r2 ⋮ rp
※対称 Toeplitz 行列の重要な性質 Tp=
r0 r1 r2 ⋯ rp−2 rp−1 r1 r0 r1 ⋯ rp−3 rp−2 r2 r1 r0 ⋯ rp−4 rp−3 ⋮ ⋮ ⋮ ⋱ ⋮ rp−2 rp−3 rp −4 ⋯ r0 r1 rp−1 rp−2 rp−3 ⋯ r1 r0
とすると, Tp=
r0 r1 ⋯ rp−1 r1 ⋮ Tp−1 rp−1
=
rp−1 Tp−1 ⋮ r1 rp−1 ⋯ r1 r0
(その1) p=k のときの解を ak=a1 k , , ak k T とする. p=1 のとき r0a1 1=−r 1 より a1 1=−r 1/r0p=k のとき, Tka k =−
r1 r2 ⋮ rk−1 rk
ここで,
rk−1 rk−2 Tk −1 ⋮ r1 rk −1 ⋯ r1 r0
ak−1 0
=−
r1 r2 ⋮ rk−1 k
ただし k=−∑
i =1 k −1 rk−iaik−1 (その2) Tkbk =
r0 ⋯ rk−2 rk−1 r1 ⋯ rk−3 rk−2 ⋮ ⋮ ⋮ rk−2 ⋯ r0 r1 rk−1 ⋯ r1 r0
b1 k b2k ⋮ bk−1k bkk
=
0 0 ⋮ 0 1
となるベクトル bk =b1k ⋯b k kT を考える。このとき,対称性より, bk の 要素を縦に反転したベクトル f k について, Tk fk =
r0 ⋯ rk −2 rk −1 r1 ⋯ rk−3 rk −2 ⋮ ⋮ ⋮ rk −2 ⋯ r0 r1 rk −1 ⋯ r1 r0
bkk bk−1 k ⋮ b2k b1k
=
1 0 ⋮ 0 0
である。 k=1 のとき, b1 1 =1 r0 である。 k>1 について,
r0 ⋯ rk −2 rk−1 r1 ⋮ rk −2 Tk−1 rk−1
0 bk −1
=
bk 0 ⋮ 0 1
ただし b k =∑
i=1 k −1 ribik−1
rk−1 Tk −1 ⋮ r1 rk −1 ⋯ r1 r0
fk−1 0
=
1 0 ⋮ 0 fk
ただし f k =∑
i=1 k −1 ri−1bk −ik−1 したがってTk