【小波dwt和cwt使用方法】Matlab版本的dwt和cwt实例

DWT示例

dwt_example.m

%单尺度一维离散小波变换(dwt函数) 
 
%装载一维原始信号 
load noissin;   
s=noissin(1:1000); 
%画出原始信号的波形 
subplot(411);plot(s);  %函数subplot的作用是在标定位置上建立坐标系 
title('原始信号'); 
%下面用haar小波函数进行一维离散小波变换 
[ca1,cd1]=dwt(s,'haar'); 
subplot(4,2,3);plot(ca1); axis tight;
ylabel('haar(ca1)'); 
subplot(4,2,4);plot(cd1); axis tight;
ylabel('haar(cd1)'); 
%给定一个小波db2,计算与之相关的分解滤波器 
[Lo_D,Hi_D]=wfilters('db2','d'); 
%用分解滤波器Lo_D,Hi_D计算信号s的离散小波分解系数 
[ca2,cd2]=dwt(s,Lo_D,Hi_D); 
subplot(4,2,5);plot(ca2); axis tight;
ylabel('db2(ca2)'); 
subplot(4,2,6);plot(cd2); axis tight;
ylabel('db2(cd2)');

%%
%单尺度一维离散小波变换(dwt函数) 
 
%装入一维原始信号 
load leleccum;   
s=leleccum(1:3920); 
ls=length(s); 
%画出原始信号 
subplot(131);plot(s);  %函数subplot的作用是在标定位置上建立坐标系 
[cA1,cD1]=dwt(s,'db1'); 
%画出原始信号小波分解的近似分量 
subplot(132);plot(cA1); 
%画出原始信号小波分解的细节分量 
subplot(133);plot(cD1);

%%
%一维连续小波变换(cwt函数) 
%对MATLAB中所带有的noissin信号进行连续小波变换,尺度a分别为12.12,10.24,15.48,1.2,2,4,6,8,10  
%小波函数用db3,求出连续小波变换后的系数 
 
load noissin;  %装载信号 
s=noissin(1:1000); 
ls=length(s);  %计算信号点的个数ls 
%对s进行一维连续小波变换,把返回系数存到矩阵w中 
w=cwt(s,[12.12,10.24,15.48,1.2,2:2:10],'db3','plot');   
xlabel('时间'); 
ylabel('变换尺度'); 
title('对应于尺度a=12.12,10.24,15.48,1.2,2,4,6,8,10小波变换系数的绝对值');

在这里插入图片描述

CWT示例

cwt_example.m

%单尺度一维离散小波变换(dwt函数) 
 
%装载一维原始信号 
load noissin;   
s=noissin(1:1000); 
%画出原始信号的波形 
subplot(411);plot(s);  %函数subplot的作用是在标定位置上建立坐标系 
title('原始信号'); 
%下面用haar小波函数进行一维离散小波变换 
[ca1,cd1]=dwt(s,'haar'); 
subplot(4,2,3);plot(ca1); axis tight;
ylabel('haar(ca1)'); 
subplot(4,2,4);plot(cd1); axis tight;
ylabel('haar(cd1)'); 
%给定一个小波db2,计算与之相关的分解滤波器 
[Lo_D,Hi_D]=wfilters('db2','d'); 
%用分解滤波器Lo_D,Hi_D计算信号s的离散小波分解系数 
[ca2,cd2]=dwt(s,Lo_D,Hi_D); 
subplot(4,2,5);plot(ca2); axis tight;
ylabel('db2(ca2)'); 
subplot(4,2,6);plot(cd2); axis tight;
ylabel('db2(cd2)');

%%
%单尺度一维离散小波变换(dwt函数) 
 
%装入一维原始信号 
load leleccum;   
s=leleccum(1:3920); 
ls=length(s); 
%画出原始信号 
subplot(131);plot(s);  %函数subplot的作用是在标定位置上建立坐标系 
[cA1,cD1]=dwt(s,'db1'); 
%画出原始信号小波分解的近似分量 
subplot(132);plot(cA1); 
%画出原始信号小波分解的细节分量 
subplot(133);plot(cD1);

%%
%一维连续小波变换(cwt函数) 
%对MATLAB中所带有的noissin信号进行连续小波变换,尺度a分别为12.12,10.24,15.48,1.2,2,4,6,8,10  
%小波函数用db3,求出连续小波变换后的系数 
 
load noissin;  %装载信号 
s=noissin(1:1000); 
ls=length(s);  %计算信号点的个数ls 
%对s进行一维连续小波变换,把返回系数存到矩阵w中 
w=cwt(s,[12.12,10.24,15.48,1.2,2:2:10],'db3','plot');   
xlabel('时间'); 
ylabel('变换尺度'); 
title('对应于尺度a=12.12,10.24,15.48,1.2,2,4,6,8,10小波变换系数的绝对值');

在这里插入图片描述

发布了146 篇原创文章 · 获赞 60 · 访问量 28万+

猜你喜欢

转载自blog.csdn.net/xiaoxiao133/article/details/90543323