当前位置:
文档之家› 第5章-小波变换的matlab实现
第5章-小波变换的matlab实现
-100
命令:wrcoef 格式: 1. X=wrcoef(‘type’,C,L,’wname’,N) 2. X=wrcoef(‘type’,C,L,Lo_R,Hi_R,N) 3. X=wrcoef(‘type’,C,L,’wname’) 4. X=wrcoef(‘type’,C,L, Lo_R,Hi_R) type=‘a’ 低频, type=‘d’ 高频
2. 二维离散小波
2
9
命令:upcoef2 格式: 1. Y=upcoef2(O,X,’wname’,N,S) 2. Y=upcoef2(O,X,Lo_R,Hi_R,N,S) 3. Y=upcoef2(O,X,’wname’,N) 4. Y=upcoef2(O,X,Lo_R,Hi_R,N) 5. Y=upcoef2(O,X,’wname’)
1600 1400 1200 1000 800 600 400 200 0 -200
1
0 500 1000 1500 2000 2500 3000 3500 4000
5
命令: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)
3. X = idwt2(cA1,cH1,cV1,cD1,'bior3.7');
4. X = idwt2(cA1,cH1,cV1,cD1,'bior3.7');
应用:
Xsyn = idwt2(cA1,cH1,cV1,cD1,'bior3.7'); 二维逆变换
3
3
命令:wavedec2
格式:
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
9
0 200 400 600 800 1000 1200 1400 1600 1800 2000
例子: A0=waverec(C,L,’db1’); 重构最大误差: Err=max(abs(s-A0))
重构原始信号
2
1
original
Level 3 Approximation
Original Approximation
2
2
图形接口方式(GUI)
2
3
2
4
2
5
2
6
2
7
2
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
1
1
0 2 4 6
0
2
4
ቤተ መጻሕፍቲ ባይዱ
6
命令:idwt
400
0
0
1000
2000 Detail D2
3000
4000
0
1000
2000 Detail D3
3000
4000
40 20 0 -20 -40
40 20 0 -20 -40
2
0
0 1000 2000 3000 4000
0
1000
2000
3000
4000
命令:waverec 格式: 1.X=waverec(C,L,’wname’) 2.X=waverec(C,L,Lo_R,Hi_R)
350 300 250 200 150 100
0
500
1000
1500
2000
2500
3000
3500
4000
1
3
命令:wavedec
格式:
[C, L]=wavedec(X,N,’wname’) [C, L]=wavedec(X,N,Lo_D,Hi_D)
多尺度一维分解
1
4
[C,L]=wavedec(s,3,'db1');
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’);
3
1
title('Vertical Detail V1')subplot(2,2,4); image(wcodemat(D1,192));title('Diagonal
Approximation A1 50 100 150 200 250 50 100 150 200 250 Vertical Detail V1 50 100 150 200 250 50 100 150 200 250 50 100 150 200 250 50 100 150 200 250
6. Y=upcoef2(O,X,Lo_R,Hi_R)
O:‘a’低频;‘h’水平;‘v’垂直;‘d’对角
重构系数
3
0
A1 H1 V1 D1
= upcoef2('a',cA1,'bior3.7',1); = upcoef2('h',cH1,'bior3.7',1); = upcoef2('v',cV1,'bior3.7',1); = upcoef2('d',cD1,'bior3.7',1);
1. [C, S]=wavedec2(X,N,’wname’) 2.[C, S]=wavedec2(X,N,Lo_D,Hi_D)
多尺度二维小波
3
4
[C,S] = wavedec2(X,2,'bior3.7');
%图像的多尺度二维小波分解
3
5
命令:appcoef2 格式:
1. A=appcoef2(C,S,’wname’,N)
figure(2);colormap(map);
subplot(2,2,1); image(wcodemat(A1,192)); title('Approximation A1') subplot(2,2,2); image(wcodemat(H1,192)); title('Horizontal Detail H1') subplot(2,2,3); image(wcodemat(V1,192));
Horizontal Detail H1
50
100 150 200 250
Diagonal Detail D1
50
100 150 200 250
3
2
命令:idwt2 格式: 1. X = idwt2(cA1,cH1,cV1,cD1,'bior3.7'); 2. X = idwt2(cA1,cH1,cV1,cD1,'bior3.7');
一维连续小波 1. coefs = cwt(s,scale,’wname’) 2. coefs = cwt(s,scale,’wname’,’plot’)
1.5
Absolute Values of Ca,b Coefficients for a = 1 2 3 4 5 ...
c=cwt(noissin,1:48,'db4','plot');
2. A=appcoef2(C,S,’wname’) 3. A=appcoef2(C,S,Lo_R,Hi_R)
4. A=appcoef2(C,S,Lo_R,Hi_R,N)
提取低频系数
cA2 = appcoef2(C,S,'bior3.7',2); %从上面的C中提取第二层的低频系 数
3
6
命令:detcoef2 格式:
A= detcoef2(‘type’,C,S,’wname’,N)
说明:
Type: ’h’ 水平;‘v’垂直;‘d’对角
cH2 = detcoef2('h',C,S,2);
cV2 = detcoef2('v',C,S,2);
cD2 = detcoef2('d',C,S,2); 提取高频系数 cH1 = detcoef2('h',C,S,1); cV1 = detcoef2('v',C,S,1);
Approximation cA3 2000 1500 1000 500 0 40 20 0 -20 -40 Detail cD1
0
200
400
600
0
500
1000 Detail cD3
1500
2000
Detail cD2 50 50