第4章 小波变换的matlab实现
1
1.Matlab中小波种类 15种
经典类小波:Harr小波、Morlet小波、Mexican
hat小波、Gaussian小波
正交小波:db小波、对称小波、Coiflets小波、
Meyer小波
双正交小波 查看命令
wavemngr('read',1)
2
小波分析示例
一维连续小波
1. coefs = cwt(s,scale,’wname’) 2. coefs = cwt(s,scale,’wname’,’plot’) c=cwt(noissin,1:48,'db4','plot');
Absolute Values of Ca,b Coefficients for a = 1 2 3 4 5 ...
1.5
46 43
1
40 37 34 31 28 25 22 19 16 13 10 7 4 1
0 100 200 300 400 500 600 700 800 900 1000
0.5
0
-0.5
-1
-1.5
scales a
100
200
300
400 500 600 time (or space) b
700
800
900
1000
3
C=cwt(noissin,2:2:128,’db4’,’plot’)
Absolute Values of Ca,b Coefficients for a = 2 4 6 8 10 ... 122 114 106 98 90 82 74 66 58 50 42 34 26 18 10 2 100 200 300 400 500 600 time (or space) b 700 800 900 1000
scales a
4
图形接口方式(GUI) 命令:wavemenu
5
6
7
一维离散小波分解
命令:dwt 格式:
[cA1,cD1]=dwt(X,’wname’) [cA1,cD1]=dwt(X,Lo_D,Hi_D) 举例: load leleccum; s=leleccum(1:3920); ls=length(s); [cA1,cD1]=dwt(s,’db1’);
8
550 500 450 400 350 300 250 200
原始信号
低频系数
800 700 600
150 100
0
500
1000
1500
2000
2500
3000
3500
4000
高频系数
30
20
10
500
0
400
-10
300
-20
200
100
-30
0
200
400
600
800
1000
1200
1400
1600
1800
2000
0
200
400
600
800
1000
1200
1400
1600
1800
92000
系数重构
命令:upcoef 格式:
1. Y=upcoef(O,X,’wname’,N) 2. Y=upcoef(O,X,’wname’,N,L) 3. Y=upcoef(O,X,’Lo_R, Hi_R’,N) 4. Y=upcoef(O,X,’Lo_R,Hi_R’,N,L) 5. Y=upcoef(O,X,’wname’) 6. Y=upcoef(O,X,Lo_R,Hi_R) O=‘a’ 低频,O=‘d’ 高频
10
举例:
A1=upcoef('a','cA1','db1',1,ls); D1=upcoef('d','cD1','db1',1,ls); subplot(1,2,1);plot(A1);title('Approximation A1') subplot(1,2,2);plot(D1);title('Detail D1')
Approximation A1 75 70 65 60 20 55 0 50 -20 45 40 35 30 -40 -60 -80 80 60 40 Detail D1
0
2
4
6
0
2
4
6
11
逆变换恢复信号
命令:idwt 格式:
1. X=idwt(cA,cD,’wname’) 2. X=idwt(cA,cD,Lo_R, Hi_R) 3. X=idwt(cA,cD,’wname’,L) 4. X=idwt(cA,cD, Lo_R, Hi_R, L)
12
举例:A0=idwt(cA1,cD1,'db1',ls);
550 500 450 400 350 300 250 200 150 100
0
500
1000
1500
2000
2500
3000
3500
4000
13
多尺度一维分解
命令:wavedec 格式:
[C, L]=wavedec(X,N,’wname’) [C, L]=wavedec(X,N,Lo_D,Hi_D)
14
[C,L]=wavedec(s,3,'db1');
1600 1400 1200 1000 800 600 400 200 0 -200
0
500
1000
1500
2000
2500
3000
3500
4000
15
低频系数提取
命令:appcoef 格式:
1. A=appcoef(C,L,’wname’,N) 2. A=appcoef(C,L,’wname’) 3. A=appcoef(C,L,Lo_R,Hi_R,N) 4. A=appcoef(C,L, Lo_R,Hi_R)
16

