1
Wavelet 変換
伊藤 彰則
2
参考書 (1)
● 中村,山本,吉田:「ウェーブレットによる信号 処理と画像処理」,共立出版 ● 応用の紹介とプログラムリストが中心,理論的背景はほとんどなし ● 意味不明の比喩を多用「各時代・各国別に美女を探すのが窓フーリ エ変換である」 ● 応用テーマ:不連続信号検出,相関の検出,ノイズ除去,画像デー タ圧縮,劣化画像復元 ● 芦野,山本:「ウェーブレット解析-誕生・発 展・応用」,共立出版 ● 理論編と応用編に分かれている.比較的わかりやすい ● Daubechies と Meyer のウェーブレットが中心,その他の紹介はあ まりない ● 応用テーマ:不連続信号検出,相関の検出,データ操作3
参考書 (2)
● 新井:「ウェーブレット解析の基礎理論」森北出 版 ● 前半が理論,後半が応用だが理論的背景は薄い ● 理論を飛ばして読む目的には良いが,理論をこれだけで理解する のは難しい ● 対象ウェーブレットを幅広く扱っている ● 応用編はプログラムリストつき ● 応用テーマ:エッジ抽出,データ圧縮,積分方程式の数値解法 ● C.K.Chui, 桜井・新井訳:「ウェーブレット入 門」,東京電機大学出版局 ● 理論のみ,応用事例なし ● 理論を概観する章がある.証明抜きで全体像をつかむには良い ● 扱うのはほとんどスプラインウェーブレット.4
参考書 (3)
● 前田,佐野,貴家,原:「ウェーブレット変換と その応用」,朝倉書店 ● 前半が理論,後半が応用 ● 厳密な理論展開は省略,最小限の証明 ● 積分 Wavelet 変換についてちょっと詳しい● 扱う Wavelet は Haar , MexicanHat,Poisson など ● 応用テーマ:レーダー,システム同定,雑音抑圧 ● B.B.Hubbard, 山田・西野訳:「ウェーブレット 入門」,朝倉書店 ● インタビューにもとづくウェーブレット発見の物語 ● 誰がどういう経緯で何を発見したのかが書いてある ● 著者は数学者ではない ● 数学的記述を全く見ないで読むことも可能
5
Wavelet の仲間たち
Fourier 変換 窓 Fourier 変換 窓関 数 窓関数の一般化 時間-周波数依存性 連続 Wavelet 変換 関 数 展 開 Fourier 展開 関 数 展 開 離散 Wavelet 変換 多重解像度解析 スケーリング関数 高速 Wavelet 変換 (Mallat アルゴリズム) ツースケール関係 Gabor Wavelet Daubechies Wavelet 共役ミラーフィルタ (QMF) 離散入力 z 変換 離散入力6
フーリエ変換
● 無限に長い波形からスペクトルを計算する – フーリエ変換 – フーリエ逆変換f =
∫
−∞ ∞f
xe
−i xdx
f
x=
∫
−∞ ∞f xe
i xd
7
時系列の解析
● 時間とともにスペクトルが変化する場合? – 上記の例ではだんだん周波数が上がっている ● 全体を解析したのでは「だんだん上がる」という 分析は不可能8
窓フーリエ変換
● 信号に窓関数をかけてフーリエ変換 – 窓関数をずらすことで時間変化を調べる F t ,=∫
−∞ ∞ f x w x−t e−i x dx =∫
−∞ ∞ f x ,t xdx9
時間ー周波数分析
● 窓関数をずらすことでスペクトルの時間変化
10
スペクトログラム
● スペクトルの強度を濃淡で表示t
11
窓関数
● 信号を時間的に切り取る関数 – 時間 t が大きいところ、小さいところでは0に なるのが望ましい(コンパクト台) w x =e −t2 2 wx={
1 −1t1 0 otherwise wx={
121cost −1t1 0 otherwise wx={
0.540.46cos t −1t1 0 otherwise12
窓関数
● 窓関数の条件 ● 窓関数の中心と幅∫
−∞ ∞ ∣x w x∣dx∞ ∣∣w∣∣2=∫
−∞∞ ∣w x∣2dx x∗= 1 ∣∣w∣∣2∫
−∞ ∞ x∣w x∣2dx 1 ∣∣w∣∣2∫−∞ ∞ x− x∗2lline w x w=¿2dx ¿13
窓フーリエ変換の不確定性
● 窓が長いほうがスペクトルの解像度が上がる – 接近した 2 つの周波数成分の区別が可能に ● 窓が短いほうが時間の解像度が上がる – 周波数の細かい時間変化を捉えることができる ● 窓関数の時間幅 × 周波数幅<定数 (デモプログラム)14
窓関数で信号を解析する
● 窓関数 ψ を使った解析をしているとみなせる ● ガウス窓+指数関数→ガボール (Gabor) 変換F
t , =
∫
−∞∞f
x w x−t e
−i xdx
=
∫
−∞∞f
x
,t x dx
15
連続 Wavelet 変換
● 窓関数 (Wavelet) を使った変換 – a: 周波数の逆数に相当(ダイレーション) – b: 時間に相当(シフト) – p: アナライジングウェーブレット W f b ,a= 1
a∫
−∞ ∞ f x
x−b a
dx16
Wavelet の条件
● 直流信号を解析してもバイアスがないこと ● 逆変換が存在すること∫
−∞ ∞ xdx=0
∫
−∞ ∞∣
x∣
2 ∣x∣ dx= 1 2 C∞17
連続 Wavelet 逆変換
● 次の式により逆変換が可能 – ただし f(x) は次の条件を満たす f x= 2 C∫
0 ∞[
∫
−∞ ∞ W f b ,a 1
a
x−b a
db]
da a2 f x∈L R2 すなわち∫
−∞ ∞ ∣f x∣2 dx∞18
アナライジングウェーブレットの例
● Haar wavelet
● Mexican hat wavelet
x=
{
0 x0 1 0≤ x0.5 −1 0.5≤ x1 0 1x x=1− x
2e
− x2 219
演習
● cos(kx) を Haar で Wavelet 変換してみよう ● こんな風になるはず
– 下の図では a は対数スケールであることに注意
20
連続 Wavelet 変換の特徴
● 低い周波数では窓幅が広く、高い周波数では 窓幅が狭い – 低い周波数に対しては高い周波数分解能 – 高い周波数に対しては高い時間分解能 (対数周波数領域での分解能が一定)21
離散 Wavelet 変換
● 連続 Wavelet 変換 :1 変数→ 2 変数 ● 離散点の係数の総和で元の関数を表現 →離散 Wavelet 変換( Wavelet 展開 ) W f b ,a= 1
a∫
−∞ ∞ f x
x−b a
dx f x=∑
j=−∞ ∞∑
k=−∞ ∞ W f
k 2j , 1 2j
2 j/ 2 2 j x−k =∑
j=−∞ ∞∑
k=−∞ ∞ W f
k 2 j , 1 2j
jkx ここは定数22
Wavelet 展開係数
● 前式の定数の部分 ● 係数は連続 Wavelet 変換の離散点での値 c jk=W f
k 2j , 1 2j
f x=∑
j=−∞ ∞∑
k=−∞ ∞ c jkjk x とおくとWavelet
展開係数
23
Wavelet 展開係数について注意
● a は周波数の逆数に比例 – a と b でのサンプル点 – 周波数 f=1/a と b でのサンプル点 低周波では 時間方向に粗く 周波数方向に細かい 高周波では 時間方向に細かく 周波数方向に粗い24
Wavelet 基底関数 (1)
● Wavelet 展開は2次元の関数展開 ● 参考: – Taylor-McLaurin 展開 – Fourier 展開 ● は、 Wavelet 展開の基底関数 f x=∑
j=−∞ ∞∑
k=−∞ ∞ c jkjk x f x=∑
k=−∞ ∞ ak xk f x=∑
k=−∞ ∞ ak e−ikx
jk x
25
Wavelet 基底関数 (2)
● 基底関数 – 「基底関数の無限和で(ある条件下の)任意の関数が表せる」 – これだけでは係数の一意性は保証されない ● 正規直交基底 – 正規直交基底を使うと関数を一意に展開できる – Haar 関数に基づく ψjkは最も簡単な正規直交基底 – 演習:上のことを証明せよ。∫
−∞ ∞
jk x
j ' k ' x dx=
jj '
kk '∫
−∞ ∞ 2j/ 2H 2 j x−k 2 j '/ 2H 2 j ' x−k dx= jj 'kk '26
多重解像度解析
27
多重解像度解析
● 各帯域幅で表される関数の集合間の関係 ● V 0 の正規直交基底 : スケーリング関数 ● 最も簡単なスケーリング関数 – 演習:上記のスケーリング関数が正規直交基底 であることを示せ。⊂V
−2⊂V
−1⊂V
0⊂V
1⊂V
2⊂
f
∈V
0 f x=∑
k =−∞ ∞ ck x−k
Hx=
{
1
0
≤x1
0 otherwise
O 1 128
スケーリング関数による関数の分
解
● 前述の で表現される関数は? – 任意の整数 について、 ならば 「整数点でサンプリングされた関数」 kk
≤ xk 1
f
x = f k
Hx
29
注意
● しばらくは、このスケーリング関数 (Haar の スケーリング関数 ) を使って話を進める – 簡単だから – ほかにもスケーリング関数はある – Wavelet との関係は? Wavelet 関数 多重解像度解析 スケーリング関数 高速 Wavelet 変換 =特殊な条件での離散 Wavelet 変換 ツースケール関係 離散入力30
スケーリング関数による
関数の分解
● この関数をスケーリング関数により分解 ●各時間の値だけを持つ関 数の重ねあわせで関数を 表現する ●もっと細かい関数を表現し たい場合は? c−6H x6 c−5H x5 c−4 H x4 c−3Hx3⋮
31
いろいろな細かさの
スケーリング関数
O 1 1 O 1 1 O 1 1
Hx
H0.5x
H2x
f
x∈V
−1f
x∈V
0f
x∈V
132
スケーリング関数の合成
● 細かいスケーリング関数から粗いスケーリン グ関数を作ることができる ● Haar のスケーリング関数の場合 x=∑
k=−∞ ∞ pk2x−k H x=H2xH 2x−1 O 1 1=
O 1 1 O 1 1+
p0=1, p1=1 pk=0 k≠0, k≠133
スケーリング関数の分解 (1)
● と を合わせて を表現できる は作れるか? x x
2x
x∈V
1−V 0 x=∑
−∞ ∞ qk2x−kV
1V
0W
0基底関数
2x−k
基底関数 x−k 基底関数 x−k34
スケーリング関数の分解 (2)
● x , x , 2x の関係式 x=∑
−∞ ∞ qk2x−k x=∑
−∞ ∞ pk 2x−k ツースケール関係 (two-scale relation) Haar のスケーリング関数の場合 x =2x2x−1 x=2x −2x−1 x
は Haar ウェーブレット関数q
k=−1
kp
1−k ただし これでいい事を証明してみよう35
スケーリング関数の分解 (3)
● スケーリング関数 を で表す ● Haar のスケーリング関数の場合2x
x , x 2x−l =1 2{
k∑
=−∞ ∞ g2k−l x−kh2k−l x−k}
g
−k= p
kh
−k=q
k H 2x = 1 2{
H xH x}
H 2x−1 = 1 2{
H x−H x}
36
注意点
● W 0の正規直交基底だけでは Wavelet とは言えな い – Wavelet になるためには他の条件も必要,例えば – スケーリング関数の分解・合成は離散 wavelet 変換と 深い関係がある! – これからスケーリング関数を使った信号の分解・合 成について説明する∫
−∞ ∞∣
x∣
2 ∣x∣ dx= 1 2 C∞37
信号の分解と再構成 (1)
● 信号(関数)f
Nx∈V
Nf
N x=
∑
k=−∞ ∞c
kN2
Nx
−k
これを次のように分解するf
N−1 x=
∑
k=−∞ ∞c
kN −12
N−1x
−k
g
N−1 x=
∑
k=−∞ ∞d
kN−1 2
N −1x
−k
f
Nx= f
N−1xg
N−1x
38
信号の分解と再構成 (2)
● の関係 – 分解 – 再合成c
N, c
N−1, d
N−1 ckN−1=1 2∑
l cl N g2k−l d kN−1= 1 2∑
l cl N h2k−l ckN=∑
l{
clN−1 pk−2ldlN−1qk−2l}
演習 : 上記の関係を導出せよ.39
信号の分解と再構成 (3)
● Haar のスケーリング関数の場合 – 分解 – 再構成 ckN−1=1 2 c2k N c2kN 1 d kN−1=1 2 c2k N −c2k1N c2kN−1=ckN−1dkN−1 c2kN−11=ckN−1−dkN−1 f N x=∑ k ckN H2N x−k 連続する 2 点 の平均 連続する 2 点 の差の半分 f N−1 x=∑ k ckN−1H 2N−1 x−k f N−1 x=∑ k dkN−1H2N−1 x−k40
離散 Wavelet 変換との関係 (1)
● 信号の分解を繰り返すと ... f N x= gN−1 x f N−1x =g N−1xgN−2x f N−2x =g N−1xg N−2xg N−3x f N−3 x...
=gN−1xgN−2x⋯ g N− M x f N−M x fNがバイアス(直流成分)を含まなければ f N x=∑
j=−∞ N−1 g jx=∑
j=−∞ N−1∑
k d kj 2 j x−k41
離散 Wavelet 変換との関係 (2)
信号の分解 離散 Wavelet 変換 f N x=∑
j=−∞ N−1∑
k dkj 2j x−k f N x=∑
j=−∞ N−1∑
k
W f N
k 2 j , 1 2 j
2 j/2 2j x−k 正規直交 Wavelet による展開係数は一意に決まるので d kj=
W f N
k 2 j , 1 2 j
2 j/ 2 つまり fNに対しては スケーリング関数による分解=離散 Wavelet 変換42
高速 Wavelet 変換
● f Nについての離散 Wavelet 変換 ...f Nって? – Haar のスケーリング関数の場合 : 「整数の 2-N倍の区間で定常な関数」 ● 離散点でサンプリングされた信号の場合 : その点を f Nとみなすことで分解が可能 ⇒高速 Wavelet 変換 (Mallat アルゴリズム ) (本当はそれではマズイ場合もあることには注意しておこう )43
周波数領域で見た Wavelet
● ツースケール関係:時間領域 ● 周波数領域で見ると ? – 高次の φN :広い周波数帯域⇔狭い台 – 低次の φN :狭い周波数帯域⇔広い台 – ψN : φN を補完する周波数特性 φN φN+1 ψ N44
準備
● ツースケール関係 ● これらをフーリエ変換すると x=∑
−∞ ∞ qk2x−k x=∑
−∞ ∞ pk 2x−k =∑
k=−∞ ∞ 1 2 pk e −i k 2
2
=m0
2
2
=∑
k=−∞ ∞ 1 2 qk e −i k 2
2
=m1
2
2
m0=∑
k=−∞ ∞ 1 2 pk e −i k m 1=∑
k=−∞ ∞ 1 2 qk e −i k45
Wavelet の周波数特性 (1)
=m0
2
2
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 -15 -10 -5 0 5 10 15∣
H
2
∣
2 =∣
1−ei −i /2 /2∣
246
Wavelet の周波数特性 (2)
=m0
2
2
0 0.2 0.4 0.6 0.8 1 -15 -10 -5 0 5 10 15∣
m0
2
∣
2 =∣
1e−i /2 2∣
247
Wavelet の周波数特性 (3)
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 -15 -10 -5 0 5 10 15 ∣H∣2 =m0
2
2
∣
H
2
∣
248
Wavelet の周波数特性 (4)
=m1
2
2
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 -15 -10 -5 0 5 10 15 m1
2
= 1−e−i/2 249
Wavelet の周波数特性 (5)
=m1
2
2
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 -15 -10 -5 0 5 10 15 ∣H ∣2∣
H
2
∣
250
フィルタとしての Wavelet
● m 0はローパスフィルタ, m1はハイパスフィルタ 0 0.2 0.4 0.6 0.8 1 0 0.5 1 1.5 2 2.5 3 m1 m0 共役ミラー フィルタ (QMF)51
Haar 以外の Wavelet
● Wavelet 解析では Haar 以外にもさまざまな
Wavelet が用いられる
– 連続 Wavelet 変換では Gabor, Maxican hat, ...
– 離散 Wavelet 変換では Spline, Daubechies, Meyer,...
● 工学的に重要な Daubechies の Wavelet につ
52
Daubechies の Wavelet (2次)
● ツースケール関係 ● φ と ϕ は既存の関数では表せない x=183 2x383 2x−1 3−83 2x−21−83 2x−3 x=1−83 2x−3−83 2x−1383 2x−2−183 2x−3 x x53
Daubechies の Wavelet の
周波数特性
● 周波数領域での表現 m0=13 8 33 8 e −i 3−83 e−2i 1−3 8 e −3i 0 0.2 0.4 0.6 0.8 1 0 0.5 1 1.5 2 2.5 3 Haar Daubechies(2) Daubechies は Haar よりも急峻なフィルタ 特性54
Wavelet の応用 (1)
● いくつかの Wavelet の応用について見てみよう – 波形中の不連続点の検出 ● 機械の破壊による振動の検知など – ノイズ除去 ● ノイズについての知識を使わずにノイズを除去する ● 信号圧縮にも有効 – 画像処理 ● 画像を細かい部分と大まかな部分に分ける ● ピラミッドアルゴリズム55
Wavelet の応用:不連続点の検出
● この波形で不連続なのはどこでしょう ?56
不連続点の検出
● 現波形に対して Haar と Daubechies(2)
57
不連続点の検出
● 正弦波重畳波形に対して Haar と Daubechies
Haar Daubechies Daubechies の方が周波数分離能力が高いことがわかる
58
Wavelet の応用:ノイズ除去
● 処理手順 – Wavelet 展開係数を 求める – 閾値を決め,それよ り小さい係数を0に する – 元の信号を再構成 先ほどの波形にノイズを載せ てみました59
ノイズ除去結果
Haar
60
Wavelet の応用 : 画像処理
● 2次元 Wavelet の例 (Haar)X,Y 方向にそれぞれ Wavelet 変換を適用
61