第四章 小波变换的实现技术

45
第第第 第第第第第第第第第 Mallat 第第 第第第第 第第第第第第第第第 清清清清清清清清 --- 清清清 ---2005

description

清华大学计算机系 --- 孙延奎 ---2005. 第四章 小波变换的实现技术.  Mallat 算法  多孔算法  小波变换的提升实现. Mallat 算法. 卷积法实现小波变换在实际中具有广泛的应用。. 实际应用中的边界处理问题: 边界延拓方法  零延拓  周期延拓  周期对称延拓法  光滑常数延拓法. Mallat 算法的 Matlab 实现. dwt() [cA,cD] = dwt(X,Lo_D,Hi_D) [cA,cD] = dwt(X,Lo_D,Hi_D,'mode',MODE). - PowerPoint PPT Presentation

Transcript of 第四章 小波变换的实现技术

Page 1: 第四章 小波变换的实现技术

第四章 小波变换的实现技术 Mallat 算法 多孔算法 小波变换的提升实现

清华大学计算机系 ---孙延奎 ---2005

Page 2: 第四章 小波变换的实现技术

Mallat 算法1

1

( )( )

j j

j j

a D a hd D a g

1 1( ) ( )j j ja Ua h Ud g

卷积法实现小波变换在实际中具有广泛的应用。 实际应用中的边界处理问题:1.边界延拓方法 零延拓 周期延拓 周期对称延拓法

光滑常数延拓法

0 1 2 1,0, , , , , ,0,0,ns s s s

1 0 1 2 1 0 1 2 1 0 1 2 1 0, , , , , , , , , , , , , , , , , ,n n n ns s s s s s s s s s s s s s

2 1 2 1 0 1 2 1 2 1 0 1, , , , , , , , , , , , , , , ,n n n ns s s s s s s s s s s s

2 1 1 2 1 0 0 1 2 1 1 2 1 0 0 1, , , , , , , , , , , , , , , , , , , ,n n n n n ns s s s s s s s s s s s s s s s

0 0 0 1 2 1 1 1 1, , , , , , , , , , ,n n n ns s s s s s s s s

Page 3: 第四章 小波变换的实现技术

Mallat 算法的 Matlab 实现• dwt() [cA,cD] = dwt(X,Lo_D,Hi_D) [cA,cD] = dwt(X,Lo_D,Hi_D,'mode',MODE)

lxX 的长度为 , 滤波器的长度为 lf

对于周期延拓方式, cA , cD 的长度均为 / 2lx

对于其他延拓方式, cA , cD 的长度均为 1 / 2lx lf

• idwt() X = idwt(cA,cD,Lo_R,Hi_R) X = idwt(cA,cD,Lo_R, Hi_R , 'mode',MODE)

对于周期延拓方法, 2lx la 对于其他延拓方式, 2 2lx la lf

特点 :1) 能够实现重构 .

2) 难以用于数据压缩应用

Page 4: 第四章 小波变换的实现技术

具有延拓功能的二带分析 / 综合系统 ( )x n 延拓

( )x nh

g

0v

1v

2

2

0y

1y

N/2点截取

N/2点截取

0y n

1y n

问题 : 在什么情况下 , 能够确保完全重构 ?

Page 5: 第四章 小波变换的实现技术

用小波处理函数 / 信号的基本步骤 和已知 是正交尺度函数与小波 ,则用小波处理函数

( )f t 的基本过程包括 :

初始化( )f t J J JP f t V设信号 在最高初始分辨率级 下的光滑逼近为

J JP f t f t记 ,则有 ,J

J k J kk

f t c t 。其中,

/ 22 / 2J J Jkc f k

小波分解 0 0 1 1, , , , Jc d d d Jc

Page 6: 第四章 小波变换的实现技术

用小波处理函数 / 信号的基本步骤 小波系数处理

小波重构 0 0 1 1, , , , Jc d d d 0 0 1 1, , , , Jc d d d

0 0 1 1, , , , Jc d d d Jc Jf t

Page 7: 第四章 小波变换的实现技术

用小波处理离散信号的基本步骤 nb 0,1, , 1n N 2LN 其采样间距为 1N ,

,Ln L n L

n

f t a t V 1nb f N n

1/ 2 Ln nN a b

Lna

使得

做小波分解、对小波系数处理以及对处理后的系数进行小波重构等 对 Lna说明 : nb1) 对 做小波分解 , 如何 ?

2) 若 nb 的采样间距为 1,如何 ?

Page 8: 第四章 小波变换的实现技术

Mallat 算法应用举例 1sin 4 cos 10

2f t t t 82

8f t

将该信号离散化为个采样值,相应的逼近信号记为 。

7f t 6f t 5f t 的图形。

用 Haar 小波进行分解,画出 8 8 8f t P f t V

8 7 7

6 6 7

5 5 6 7

f t f t d t

f t d t d t

f t d t d t d t

88 8,k k

k

f t c t

77 7,

66 6,

55 5,

k kk

k kk

k kk

f t c t

f t c t

f t c t

8/ 2 8 8

7 / 2 7 7

6/ 2 6 6

5/ 2 5 5

2 / 2

2 / 2

2 / 2

2 / 2

k

k

k

k

c f k

c f k

c f k

c f k

若记 8 8/ 2 kf k b , 而 8kb 的三级多分辨逼近信号为 7

kb , 6 5,k kb b , 则容易算出

7 7 6 6 6 5 5

2

1 1 1 1/ 2 , / 2 , / 222 2 22

k k k kf k b f k b b f k b 。

8 8/ 2 8

7 8/ 2 7

6 8/ 2 6

7 8/ 2 5

2

2

2

2

k k

k k

k k

k k

b c

b c

b c

b c

Page 9: 第四章 小波变换的实现技术

8f t 7f t

6f t 5f t

Page 10: 第四章 小波变换的实现技术

0 0.2 0.4 0.6 0.8 1-1.5

-1

-0.5

0

0.5

1

1.5

0 0.2 0.4 0.6 0.8 1-1.5

-1

-0.5

0

0.5

1

1.5

0 0.2 0.4 0.6 0.8 1-1.5

-1

-0.5

0

0.5

1

1.5

0 0.2 0.4 0.6 0.8 1-1.5

-1

-0.5

0

0.5

1

1.5

8f t 7f t

6f t 5f t

Page 11: 第四章 小波变换的实现技术

Mallat 算法应用举例• 对同一个离散信号应用不同的小波变换以及 FFT 变换进行压缩的处理效果与分析。

已知上例中的离散信号 8 0,1, , 255kb k

问题: 1 )用 Haar 尺度函数和小波分解信号; 2 )用 D4 尺度函数和小波分解信号; 3 )用 FFT 变换分解信号。令绝对值最小的 80% 和 90% 系数为 0 对信号进行小波压缩,画出相应的重构信号的图形,并求出相应的相对误差。 对各种变换的效果进行对比分析。

Page 12: 第四章 小波变换的实现技术

Mallat 算法应用举例Haar 小波

均方差: 0.7991 2.9559

相对误差: 0.0050 0.0185

取 0 比例: 80% 90%

D4 小波均方差: 0.0277 0.2159

相对误差: 0.00017 0.0014

取 0 比例: 80% 90%

FFT 变换均方差: 0.0012 0.0025

相对误差: 7.34×10-6 1.59×10-5

取 0 比例: 80% 90%

Page 13: 第四章 小波变换的实现技术

多孔算法 • 应用 Mallat 算法分析信号时存在的不足

Page 14: 第四章 小波变换的实现技术

多孔算法• 二通道 Mallat 算法 z变换的滤波器形式

zjx

1zh

1zg

2

2

1 zjx

1 zjd

2

2

zh

zg

zjx

zjx

zG

zH

2

2

1 zjd1( )jd z

1( )jx z zG

zH

22( )jd z

22( )jx z

2 zjd

1( ) ( )H z h z

1( ) ( )G z g z

Page 15: 第四章 小波变换的实现技术

多孔算法• 二通道 Mallat 算法 z变换的滤波器形式

jx z

G z

H z

2 1jd z1( )jd z

1( )jx z 2G z

2H z

42( )jd z

2( )jx z

2( )jd z

4G z

4H z

3( )jd z

3( )jx z

83( )jd z

z 变换的等效易位性质

Page 16: 第四章 小波变换的实现技术

多孔算法 zjx

zG

zH

1( )jd z

1( )jx z 2zG

2zH

2( )jd z

2( )jx z 4zG

4zH

3( )jd z

3( )jx z说明 :1) 为什么称为多孔算法( a’trous algorithm ) ?

2) 与二通道 Mallat 算法之间的关系3) 其它叫法 : 非抽取小波变换 (Undecimated Wavelet Transform ),

平稳小波变换 (Stationary Wavelet Transform )

记 Jx x

, 则分解算法为:

1 2

1 2

J j

J j

j j

j j

d z x z G z

x z x z H z

Page 17: 第四章 小波变换的实现技术

多孔算法的实现j J

0j

1j j J jd x g 1j j J jx x h

1j j

While

End of While

1j

j J

1 112

j j J j j J jx x h d g

1j j

While

End of While

分解算法 重构算法

jh h注 : 为 的相邻两项之间插入2 1j 个零后得到的滤波器。

在 Matlab 小波工具箱中对应的函数 : swt() , iswt()

Page 18: 第四章 小波变换的实现技术

小波变换的提升实现 • 概述 1) 能够用于构造第一代小波,用户可根据需要来设计小波基。 2) 能够改进第一代小波变换算法。 3) 可用于构造第二代小波。

Page 19: 第四章 小波变换的实现技术

小波分解与重构的多相位表示 • 滤波器的多相位表示 滤波器 h 的多相位表示为:

2 1 2( ) ( ) ( )e oh z h z z h z

2( ) ke k

k

h z h z 2 1( ) ko k

k

h z h z 2 ( ) ( )( )

2eh z h zh z

2

1

( ) ( )( )2o

h z h zh zz

~1 1( ) ( )g z z h z ~

1 1( ) ( )g z z h z ~

1( ) ( )e oh z g z ~

1( ) ( )o eh z g z ~

1( ) ( )oeg z h z ~

1( ) ( )eog z h z

Page 20: 第四章 小波变换的实现技术

小波分解与重构的多相位表示 • 滤波器的多相位矩阵 滤波器 h 的多相位矩阵为:g和 ( ) ( )

( )( ) ( )

e e

o o

h z g zP z

h z g z

~ ~~

~ ~

( ) ( )( )

( ) ( )

e e

o o

h z g zP z

h z g z

滤波器 h 的对偶多相位矩阵为:g和

则小波滤波器的完全重构条件等价于: ~1( ) ( )TP z P z I

z 2

21( )TP z

a z

d z( )P z

2

2 1z

小波分解与重构的多相位表示

Page 21: 第四章 小波变换的实现技术

Laurent 多项式的 Euclidean 算法 zh

e

b

k

kk

kk zh

=

be kkzh zh 的次数两个 Laurent 多项式的带余除法可表述为: zrzqzbza zbzazq r z b z 或 0r z

两个 Laurent 多项式的欧几里德算法如下: zaza 0 zbzb 0 从 0i 开始进行如下的递归运算:

zbza ii 1 zbzazb iii %1

zbzazan ,gcd zan n 0zbn

则 ,且 是一个 Laurent多项式,其中为使 的最小数。

1 /i i iq z a z b z

Page 22: 第四章 小波变换的实现技术

Laurent 多项式的 Euclidean 算法

zb

zazq

za

ni i

n1

110

0

001

1

1

zazqzbza n

n

i

i

如果 an(z) 是一个单项式,则 a(z) 和 b(z) 是互素的。 注意与多项式带余除法和欧几里德算法的异同之处 .

Page 23: 第四章 小波变换的实现技术

多相位矩阵的因子分解det ( ) 1P z (1 )i m

K

若 ,则总存在 Laurent多项式 和以及非零常数 ,使得

( )iu z ( )ip z

1

1 01 ( ) 0( )

( ) 10 1 0 1/

mi

i i

u z KP z

p z K

( ) 0mp z 其中 。

Page 24: 第四章 小波变换的实现技术

有限滤波器多相位矩阵的提升分解算法 第 1 步,使用欧几里德算法得到:

第 2 步,计算

1

1

1 011 00 1

me i

i io

h z Ku zp zh z

00

0e e

o o

h z g zP z

h z g z

1

1

1 0 011 0 1/0 1

mi

i i

Ku zp z K

=

第 3 步,计算 mu z

02

0e e

o o

g z g zK

g z g z mu z

Page 25: 第四章 小波变换的实现技术

基于提升的正向小波变换流程图 2

2z

1( )u z

( )o z

( )e z

1( )p z

( )mu z

( )mp z

a z

d zK

1K

1~1 1 01/ 0 1 ( )

( )( ) 10 0 1

iT

i m i

K u zP z

p zK

a z

d z

K

1K

( )mp z

1( )p z 1( )u z

( )mu z

2

2 1z

Page 26: 第四章 小波变换的实现技术

时小波变换的提升实现算法 1 0u z

0 1 1, , , Nx x x x i ki k

k

u z u z i ki k

k

p z p z

,i i i il ls s d d 1, ,i m 若 分别是序列 的 z变换,且 ,i is z d z

1 1

1

i i i i

i i i i

s z s z u z d zd z d z p z s z

1 1 1 1

1 1

i i i i i i il l l k l kl

k

i i i i i i il l l k l kl

k

s s u d s u d

d d p s d p s

1,2, ,i m

1

1

( )( ) 1 0 1 ( )( )( ) ( ) 1 0 1

i

i

i i

i i

s zs z u zd zd z p z

Page 27: 第四章 小波变换的实现技术

正向小波变换的提升实现算法(预测步骤由奇序列预测偶序列开始) Step 1. 懒小波变换

02l ls x 0

2 1l ld x 12/,,1,0 Nl

Step 2. 提升与对偶提升For i =1 to m

1 1

1

i i i il l k l k

k

i i i il l k l k

k

s s u d

d d p s

Step 3. 比例变换12/,,1,0 Nl

For 1-/2 to0 Nl

/ml l

ml l

s s Kd Kd

Page 28: 第四章 小波变换的实现技术

时逆向小波变换的提升实现算法 Step 1. 比例变换

12/,,1,0 Nl

Step 2. 提升与对偶提升

For i = m to 1

Step 3. 逆懒小波变换12/,,1,0 Nl

For 1-/2 to0 Nl

1 0u z

/

ml lml l

s Ksd d K

1

1 1

i i i il l k l k

k

i i i il l k l k

k

d d p s

s s u d

0 02 2 1, l l l lx s x d

Page 29: 第四章 小波变换的实现技术

时提升算法的实现 1 0u z

11

1 0 1 ( ) 0( ) , ( ) ( ), 1

( ) 1 0 1 0 1/

ni

i ii i

v z KP z v z u z n m

p z K

11 1 01/ 0 1 ( )

( )( ) 10 0 1

iT

i n i

K v zP z

p zK

i ki k

k

v z v z i ki k

k

p z p z

1

1

( ) 1 0 ( )1 ( )( ) ( ) 1 ( )0 1

i ii

i i i

s z s zv zd z p z d z

1 1

1

i i i i

i i i i

d z d z p z s zs z s z v z d z

Page 30: 第四章 小波变换的实现技术

时正向小波变换的提升实现算法(预测步骤由偶序列预测奇序列开始) 1 0u z

Step 1. 懒小波变换0

2l ls x 02 1l ld x 12/,,1,0 Nl

Step 2. 提升与对偶提升For i =1 to n

Step 3. 比例变换12/,,1,0 Nl

For 1-/2 to0 Nl

1 1

1

i i i il l k l k

k

i i i il l k l k

k

d d p s

s s v d

/nl l

nl l

s s Kd Kd

Page 31: 第四章 小波变换的实现技术

两点说明1. 本质上我们可以根据它们的任一分解式写出小波变换的提升算法 如果在实际计算时已知 P z 的因子分解,设

1

1 0 1 01 0 1 0 1/

mi

i i

u z KP z

p z K

1

11

1 01 1/ 01 00 1

mi

i i

p z KP z

u z K

2. 尚未完全解决的问题 多相位矩阵分解存在极大的不唯一性,到底存在多少种分解方法?如何求出所有的分解?如何根据具体的应用,选择一种‘好’的分解方法 ?

Page 32: 第四章 小波变换的实现技术

( 5-3 )小波变换的提升实现~ 1 1 3 1 1{ , , , , }

4 2 2 2 2 2 2 2 4 2h 1 1 1{ , , }

2 2 2 2 2h

1~ 1 0 01 (1 )( )

(1 ) 1 0 1/0 1z

P zz

0.5 0.25 2

11 0 1/ 01 (1 )( )

(1 ) 1 00 1z

P zz

02l ls x 0

2 1l ld x

1 0 0 01( )l l l ld d s s

1 0 1 11( )l l l ls s d d

1l ls s 1 /l ld d

1 /l ls s 1

l ld d

0 1 1 11( )l l l ls s d d

0 1 0 01( )l l l ld d s s

02l lx s 0

2 1l lx d

正变换 逆变换

Page 33: 第四章 小波变换的实现技术

整数小波变换 提升算法的一大优点是,它存在整数提升算法,即在忽略归一化因子的情况下,将算子 1

2x

提升步骤中的算子 作用于每个

iu z 和 ip z

换的整数提升算法。 ,即可得到小波变

如( 5-3 )小波变换的整数版本如下: 0

2l ls x 02 1l ld x

1 0 0 01

1( )2l l l ld d s s

1 0 1 1

11( )2l l l ls s d d

特点:非线性变换

Page 34: 第四章 小波变换的实现技术

D4 小波变换的提升实现 1 2 3

0 1 2 3( )h z h h z h z h z 2 1 13 2 1 0( )g z h z h z h h z

0 1 2 31 3 3 3 3 3 1 3, , ,4 2 4 2 4 2 4 2

h h h h 其中

1 1~0 2 3 1

1 11 3 2 0

1

( ) ( )

3 1 01 011 3 2

3 3 2 0 10 1 1 3 104 42

h h z h z hP z P z

h h z h z h

z

z

1

3 1 03 3 21 0 1 01 2( ) 4 4 13 1 3 10 1 02

zP zz

Page 35: 第四章 小波变换的实现技术

D4 小波变换的提升实现 第一种实现方法 第二种实现方法

02l ls x 0

2 1l ld x

1 0 03l l ls s d

1 0 1 11

3 3 24 4l l l ld d s s

2 1 11l l ls s d

223 1l ls s

223 1l ld d

02l ls x 0

2 1l ld x 1 0 03l l ld d s

1 0 1 11

3 3 24 4l l l ls s d d

2 1 11l l ld d s

13 12l ls s

23 12l ld d

Page 36: 第四章 小波变换的实现技术

( 9-7 )小波变换的提升实现 ~ ~ ~ ~

2 2 1 14 2 0( ) ( ) ( )eh z h z z h z z h

~2 1

3 1( ) ( ) ( 1)oh z h z z h z

1 1~ 1 0 1 0 01 (1 ) 1 (1 )( )

(1 ) 1 (1 ) 1 0 1/0 1 0 1z z

P zz z

~ ~

4 3/h h 其中, 1 0/r s 0 0/s t 0 0 12t r r , ,, ,

~ ~ ~ ~

0 4 1 30 2 /r h h h h

~ ~ ~

1 3 30 0 1/s h h h r r 0 0 12t r r

1.586134342 0.052980118 0.882911075 0.443506852 1.230174105

说明 : JPEG2000 中 C 语言实现模块中尺度变换是: 1/s s 1 1.23017410558578 ;

2/d d 2 = 1.62578613134411

Lena 图像实验 :

1.842 2.938

~ ~ ~ ~ ~

2 4 4 1 31 /r h h h h h

~

3 1/h r

Page 37: 第四章 小波变换的实现技术

( 9-7 )小波变换的提升实现 1 11 0 1 0 1/ 01 (1 ) 1 (1 )

( )(1 ) 1 (1 ) 1 01 0 1

z zP z

z z

02l ls x 0

2 1l ld x

1 0 0 01( )l l l ld d s s

1 0 1 11( )l l l ls s d d

2 1 1 11( )l l l ld d s s

2 1 2 21( )l l l ls s d d

2l ls s 2 /l ld d

Page 38: 第四章 小波变换的实现技术

小波变换提升算法的实现技巧 任意长度信号小波变换的提升实现

0 1 1( , , , )Nx x x x 2NC 2

ND

( 9-7)小波变换的提升实现如下: 0

2l ls x 02 1k kd x 0,1, , 1l C 0,1, , 1k D

1 0 0 01( )k k k kd d s s

1 0 1 11( )l l l ls s d d

2 1 1 11( )k k k kd d s s

2 1 2 21( )l l l ls s d d

for 0l to 1C 2l ls s

for 0k to 1D

: 2 /k kd d

Page 39: 第四章 小波变换的实现技术

小波变换提升算法的实现技巧 利用少量辅助内存实现多尺度小波变换

0 0 0 0 0 00 0 1 1 1 1, , , , , ,C Ds d s d s d 必要性 : 0 0 0 0 0 0

0 1 1 0 1 1( , , , , , , , )C Ds s s d d d

算法过程由以下三步组成: 第 1 步, 1 2

CC 申请一个大小为 的数组 buffer 存放高频系数

1

0 0 00 1 1, , , Cd d d ,然后,在原空间中调整信号的低频系数的位置,

使 x变为 0 0 00 1 1 1( , , , , , , )C C Ns s s x x

第 2 步, 调整 1 1, , ,C C Nx x x 中的高频系数的位置使 x 变为 1 1

0 0 0 0 00 1 1 1 1( , , , , , , , , , )C C C C C Ds s s x x d d

第 3 步, 将 buffer 中暂存的高频系数 1

0 0 00 1 1, , , Cd d d 调整到 1 1, ,C C Cx x

占用的位置,使 x 变为 0 0 0 0 0 00 1 1 0 1 1( , , , , , , , )C Ds s s d d d

Page 40: 第四章 小波变换的实现技术

边界处理 • 对于( 5-3 )和( 9-7 )这些具有线性相位的滤波器,采用对称周期延拓则不仅可实现小波变换的完全重构,同时又不增加变换后的数据量。因此,在实现时我们可采用对称周期延拓的方法。

Page 41: 第四章 小波变换的实现技术

双正交小波变换的对称提升实现 • 多相位矩阵的对称因子分解 • 对称提升实现

Page 42: 第四章 小波变换的实现技术

多相位矩阵的对称因子分解 za 1za 1 zzy

kkk zzS k

n

kkk Sa

0

一个 Laurent多项式 称为对称的,如果 = 。记( 为非负整数),则对称 Laurent多项式都可表示为

的形式。

za

det ( ) 1P z (1 )i m

K

若 ,则存在惟一的 Laurent多项式 和以及非零常数

,使得

( )iu z ( )ip z

1

1 01 ( ) 0( )

( ) 10 1 0 1/

mi

i i

u z KP z

p z K

( ) 0mp z 其中 。

其中

2izu z 1 2

iz p z和 是对称 Laurent 多项式 .

1

0

( )im

i j ji j

j

u z u z z

1

0

( )in

i j ji j

j

p z p z z

Page 43: 第四章 小波变换的实现技术

计算对称提升因子的快速算法 g z h z基本思想 : 根据 和

理,有效地避免了传统提升因子算法中求解 的复杂计算,因而的不同大小关系,分以下两种情况处

mu z

更加实用。 ( 1)当 zhzg 时

2zhza e

m

iiiShh

1220 zb 21 zhz o

n

jjj Sh

01212记 = , = = 。

za ya1 zb yb1 ya1 yb1令 = , = ,对 和 应用多项式的欧几里德算法, 求出唯一的一组多项式 yqi Li ,,2,1

K和一个非零常数 ,使得

001

1

11

1 Kyqybya L

i

i 0K 其中, L 为偶数。

Page 44: 第四章 小波变换的实现技术

计算对称提升因子的快速算法 2

izu z 1 2iz p z yq i 12 yq i2

2/,,0 Li

由 = , ,求出( )。于是,

= 和( )iu z ( )ip z

1

1 01 ( ) 0( )

( ) 10 1 0 1/

mi

i i

u z KP z

p z K

zhzg zhzg ~~ ( 2)当 时,则 。

/ 2

1

1 01 010 1 0 1/

Li

i i

u z KP z

p z K

1/ 2

11

1 0 1 1/ 0( )

1 00 1

Li

i i

p z KP z

u z K

Page 45: 第四章 小波变换的实现技术

小波变换的对称提升实现 Step 1. 懒小波变换

02l ls x 0

2 1l ld x 12/,,1,0 Nl

Step 2. 提升与对偶提升For i =1 to m

Step 3. 比例变换

12/,,1,0 Nl

For 1-/2 to0 Nl

/ml l

ml l

s s Kd Kd

1 1 11

0

11

0

i

i

mi i i i il l j l j l j

j

ni i i i il l j l j l j

j

s s u d d

d d p s s