wavelet変換 - spcom.ecei.tohoku.ac.jpaito/wavelet/slide.pdf · 2 参考書(1)...

61
1 Wavelet 変換 伊藤 彰則 [email protected]

Upload: dangtram

Post on 11-May-2019

213 views

Category:

Documents


0 download

TRANSCRIPT

1

Wavelet変換

伊藤 彰則

[email protected]

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

DaubechiesWavelet

共役ミラーフィルタ(QMF)

離散入力

z変換

離散入力

6

フーリエ変換

● 無限に長い波形からスペクトルを計算する

– フーリエ変換

– フーリエ逆変換

f =∫−∞

f x e−i x dx

f x =∫−∞

f xe i x d

7

時系列の解析

● 時間とともにスペクトルが変化する場合?

– 上記の例ではだんだん周波数が上がっている● 全体を解析したのでは「だんだん上がる」という分析は不可能

8

窓フーリエ変換

● 信号に窓関数をかけてフーリエ変換– 窓関数をずらすことで時間変化を調べる

F t ,=∫−∞

f xw x−t e−i x dx

=∫−∞

f x ,t x dx

9

時間ー周波数分析

● 窓関数をずらすことでスペクトルの時間変化を調べる

10

スペクトログラム

● スペクトルの強度を濃淡で表示

t

ω

11

窓関数

● 信号を時間的に切り取る関数– 時間 tが大きいところ、小さいところでは0になるのが望ましい(コンパクト台)

w x =e−t2

2

w x ={1 −1t10 otherwise

w x ={12 1cos t −1t1

0 otherwise

w x ={0.540.46cos t −1t10 otherwise

12

窓関数

● 窓関数の条件

● 窓関数の中心と幅

∫ −∞

∣x w x∣dx∞

∣∣w∣∣2=∫−∞

∞∣w x∣2dx

x∗= 1∣∣w∣∣2

∫−∞

∞x∣w x∣2dx

1∣∣w∣∣2

∫−∞

∞x−x∗2llinew x

w=¿2dx ¿

13

窓フーリエ変換の不確定性

● 窓が長いほうがスペクトルの解像度が上がる– 接近した 2つの周波数成分の区別が可能に

● 窓が短いほうが時間の解像度が上がる– 周波数の細かい時間変化を捉えることができる

● 窓関数の時間幅×周波数幅<定数

(デモプログラム)

14

窓関数で信号を解析する

● 窓関数ψを使った解析をしているとみなせる● ガウス窓+指数関数→ガボール (Gabor)変換

F t ,=∫−∞

∞f x w x−t e−i x dx

=∫−∞

∞f x ,t x dx

15

連続Wavelet変換

● 窓関数(Wavelet)を使った変換

– a:周波数の逆数に相当(ダイレーション)

– b:時間に相当(シフト)

– p:アナライジングウェーブレット

W f b ,a =1a∫−∞

∞f x x−ba dx

16

Waveletの条件

● 直流信号を解析してもバイアスがないこと

● 逆変換が存在すること

∫−∞

∞x dx=0

∫−∞

∞ ∣ x ∣2

∣x∣dx=1

2C∞

17

連続Wavelet逆変換

● 次の式により逆変換が可能

– ただしf(x)は次の条件を満たす

f x = 2C∫

0

∞ [∫−∞

W f b ,a1a

x−ba db]daa2

f x ∈L R2 すなわち ∫−∞

∞∣ f x ∣2dx∞

18

アナライジングウェーブレットの例

● Haar wavelet

● Mexican hat wavelet

x={ 0 x01 0≤ x0.5−1 0.5≤ x10 1x

x=1− x2e− x

2

2

19

演習

● cos(kx)をHaarで Wavelet変換してみよう● こんな風になるはず

– 下の図ではaは対数スケールであることに注意

– aは周波数の逆数→kが大なら aは小

20

連続Wavelet変換の特徴

● 低い周波数では窓幅が広く、高い周波数では窓幅が狭い

– 低い周波数に対しては高い周波数分解能

– 高い周波数に対しては高い時間分解能(対数周波数領域での分解能が一定)

21

離散 Wavelet変換

● 連続Wavelet変換 :1変数→ 2変数

● 離散点の係数の総和で元の関数を表現→離散 Wavelet変換( Wavelet展開)

W f b ,a =1a∫−∞

∞f x x−ba dx

f x =∑j=−∞

∑k=−∞

W f k2 j ,12 j 2 j/22 j x−k

=∑j=−∞

∑k=−∞

W f k2 j ,12 j jk x

ここは定数

22

Wavelet展開係数

● 前式の定数の部分

● 係数は連続Wavelet変換の離散点での値

c jk=W f k2 j ,12 j

f x =∑j=−∞

∑k=−∞

c jk jk 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 jk jk 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 '

∫−∞

∞2 j /2H 2

j x−k 2 j ' /2H 2j ' x−k dx= jj 'kk '

26

多重解像度解析

● 入力信号を周波数帯域ごとに分ける

27

多重解像度解析

● 各帯域幅で表される関数の集合間の関係

● V0の正規直交基底 :スケーリング関数

● 最も簡単なスケーリング関数

– 演習:上記のスケーリング関数が正規直交基底であることを示せ。

⊂V−2⊂V−1⊂V 0⊂V 1⊂V 2⊂

f ∈V 0 f x =∑k=−∞

ckx−k

H x={1 0≤x10 otherwise

O

1

1

28

スケーリング関数による関数の分解

● 前述の   で表現される関数は?– 任意の整数 について、

   ならば

「整数点でサンプリングされた関数」

kk≤ xk1 f x = f k

H x

29

注意

● しばらくは、このスケーリング関数(Haarのスケーリング関数)を使って話を進める– 簡単だから

– ほかにもスケーリング関数はある

– Waveletとの関係は?

Wavelet関数

多重解像度解析

スケーリング関数

高速Wavelet変換=特殊な条件での離散Wavelet変換

ツースケール関係

離散入力

30

スケーリング関数による関数の分解

● この関数をスケーリング関数により分解

●各時間の値だけを持つ関数の重ねあわせで関数を表現する

●もっと細かい関数を表現したい場合は?

c−6H x6

c−5H x5

c−4H x4

c−3H x3

31

いろいろな細かさのスケーリング関数

O1

1 O1

1 O1

1

H xH 0.5x H 2x

f x ∈V−1 f x ∈V 0 f x ∈V 1

32

スケーリング関数の合成

● 細かいスケーリング関数から粗いスケーリング関数を作ることができる

● Haarのスケーリング関数の場合

x=∑k=−∞

pk2x−k

H x=H 2x H 2x−1

O

1

1=

O

1

1 O

1

1+

p0=1, p1=1 pk=0 k≠0, k≠1

33

スケーリング関数の分解(1)

●   と  を合わせて    を表現できる

         は作れるか?

x x 2x x∈V 1−V 0

x=∑−∞

qk2x−k

V 1V 0

W 0

基底関数 2x−k

基底関数 x−k

基底関数 x−k

34

スケーリング関数の分解(2)

●          の関係式x , x , 2x

x=∑−∞

qk2x−k

x=∑−∞

pk2x−k ツースケール関係(two-scale relation)

Haarのスケーリング関数の場合x =2x2x−1 x=2x −2x−1

xはHaar ウェーブレット関数

qk=−1k p1−kただしこれでいい事を証明してみよう

35

スケーリング関数の分解(3)

● スケーリング関数    をで表す

● Haarのスケーリング関数の場合

2x x , x

2x−l =12 {∑k=−∞

g 2k−lx−k h2k−lx−k }g−k= pk h−k=qk

H 2x = 12 {H x H x}

H 2x−1 = 12 {H x −H x}

36

注意点

● W0の正規直交基底だけではWaveletとは言えな

い– Waveletになるためには他の条件も必要,例えば

– スケーリング関数の分解・合成は離散 wavelet変換と深い関係がある!

– これからスケーリング関数を使った信号の分解・合成について説明する

∫−∞

∞ ∣ x ∣2

∣x∣dx=1

2C∞

37

信号の分解と再構成 (1)

● 信号(関数) f N x∈V N

f N x=∑k=−∞

ckN2N x−k

これを次のように分解する

f N−1 x=∑k=−∞

ckN−12N−1 x−k

g N−1x =∑k=−∞

d kN−12N−1 x−k

f N x= f N−1x g N−1x

38

信号の分解と再構成 (2)

● の関係– 分解

– 再合成

c N , cN−1 , d N−1

ckN−1=1

2∑l c lN g 2k−l

d kN−1=1

2∑l c lN h2k−l

ckN=∑

l{clN−1 pk−2ld l

N−1qk−2l}

演習 :上記の関係を導出せよ.

39

信号の分解と再構成 (3)

● Haarのスケーリング関数の場合– 分解

– 再構成

ckN−1=1

2c2k

Nc2k1N d k

N−1=12c2k

N−c2k1N

c2kN−1=ck

N−1d kN−1 c2k1

N−1=ckN−1−d k

N−1

f N x=∑kckN H 2

N x−k

連続する 2点の平均

連続する 2点の差の半分

f N−1 x=∑kckN−1H 2

N−1 x−k f N−1 x=∑kd kN−1H 2

N−1 x−k

40

離散 Wavelet変換との関係 (1)

● 信号の分解を繰り返すと...

f N x=g N−1 x f N−1x=g N−1x g N−2x f N−2x =g N−1x g N−2x g N−3x f N−3 x

...=g N−1x g N−2x ⋯g N−M x f N−M x

fNがバイアス(直流成分)を含まなければ

f N x=∑j=−∞

N−1

g jx =∑j=−∞

N−1

∑kd kj2 j x−k

41

離散 Wavelet変換との関係 (2)

信号の分解

離散Wavelet変換

f N x=∑j=−∞

N−1

∑kd kj2 j x−k

f N x=∑j=−∞

N−1

∑kW f N k2 j ,

12 j 2 j /22 j x−k

正規直交Waveletによる展開係数は一意に決まるので

d kj=W f N k2 j ,

12 j 2 j /2

つまり fNに対しては

   スケーリング関数による分解=離散Wavelet変換

42

高速 Wavelet変換

● fNについての離散 Wavelet変換

...fNって?

– Haarのスケーリング関数の場合:「整数の2-N倍の区間で定常な関数」

● 離散点でサンプリングされた信号の場合:その点をf

Nとみなすことで分解が可能

⇒高速 Wavelet変換 (Mallatアルゴリズム)

(本当はそれではマズイ場合もあることには注意しておこう )

43

周波数領域で見た Wavelet

● ツースケール関係:時間領域● 周波数領域で見ると ?

– 高次の φN:広い周波数帯域⇔狭い台

– 低次の φN:狭い周波数帯域⇔広い台

– ψN: φ

Nを補完する周波数特性

φN

φN+1 ψ

N

44

準備

● ツースケール関係

● これらをフーリエ変換すると

x=∑−∞

qk2x−k x=∑−∞

pk2x−k

=∑k=−∞

∞ 12pk e

−i k2 2

=m02 2 =∑

k=−∞

∞ 12qk e

−i k2 2

=m12 2 m0=∑

k=−∞

∞ 12pk e

−i k m1=∑k=−∞

∞ 12qk e

−ik

45

Waveletの周波数特性 (1)

=m02 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

∣ H2 ∣2

=∣1−e−i/2i/2 ∣2

46

Waveletの周波数特性 (2)

=m02 2

0

0.2

0.4

0.6

0.8

1

-15 -10 -5 0 5 10 15

∣m02 ∣2

=∣1e−i/22 ∣2

47

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

=m02 2

∣ H2 ∣2

48

Waveletの周波数特性 (4)

=m12 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

m12 =1−e−i/2

2

49

Waveletの周波数特性 (5)

=m12 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

∣ H2 ∣2

50

フィルタとしてのWavelet

● m0はローパスフィルタ, m

1はハイパスフィルタ

0

0.2

0.4

0.6

0.8

1

0 0.5 1 1.5 2 2.5 3

m1m0 共役ミラーフィルタ(QMF)

51

Haar以外のWavelet

● Wavelet解析ではHaar以外にもさまざまなWaveletが用いられる– 連続Wavelet変換では Gabor, Maxican hat, ...

– 離散 Wavelet変換では Spline, Daubechies, Meyer,...

● 工学的に重要なDaubechiesの Waveletについて解説する

52

Daubechiesの Wavelet(2次)

● ツースケール関係

● φと ϕは既存の関数では表せない

x =138 2x33

8 2x−1 3−38 2x−21−3

8 2x−3

x=1−38 2x−3−3

8 2x−1338 2x−2−13

8 2x−3

x x

53

Daubechiesの Waveletの周波数特性

● 周波数領域での表現

m0 =13

8 338 e−i3−3

8 e−2i1−38 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)

Haar Daubechies

57

不連続点の検出

● 正弦波重畳波形に対してHaarと Daubechies

Haar Daubechies

Daubechiesの方が周波数分離能力が高いことがわかる

58

Waveletの応用:ノイズ除去

● 処理手順– Wavelet展開係数を求める

– 閾値を決め,それより小さい係数を0にする

– 元の信号を再構成

先ほどの波形にノイズを載せてみました

59

ノイズ除去結果

Haar

Daubechies(2) Daubechies(3)

60

Waveletの応用 :画像処理

● 2次元Waveletの例(Haar)

X,Y方向にそれぞれWavelet変換を適用

61

画像処理

● 分析してどうするのか ?– 高周波部分の量子化ビット数を落とす⇒圧縮

– 高周波部分を0に⇒平滑化・ノイズ除去

– 再帰的な分解