加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

MatlabCWT和DWT

(2020-12-05 20:16:31)
分类: 科研经验
w=cwt(x,wname)-对实时连续信号做小波变换,得到小波系数w
[cA,cD] = dwt(x,wname)-对离散信号做小波变换,得到近似系数cA和细节系数cD,可以理解为cA是原始信号的低通滤波部分,cD是高频噪音部分。

两者都可以用于实际采集到的信号(一维时序信号和二维图片),如果想要用于二维图片,需要使用cwtft2()和dwt2()。两个的用处不一样,cwt用来分析信号的时频特性-得到scalogram(小波波谱),而dwt用来denoising或者compression。

上面的两个函数只对输入信号做一层小波分解,如果想要多层小波分解,需要用wavedec。

%单尺度一维离散小波变换(dwt函数) 
load leleccum;   
s=leleccum(1:3920); 
wname='haar';
%画出原始信号的波形 
figure(1)
subplot(311);plot(s);  %函数subplot的作用是在标定位置上建立坐标系 
title('Original Signal'); 
%下面用haar小波函数进行一维离散小波变换 
[ca1,cd1]=dwt(s,wname); 
subplot(312);plot(ca1); axis tight;
ylabel('haar(ca1)'); 
subplot(313);plot(cd1); axis tight;
ylabel('haar(cd1)'); 




%%
%一维连续小波变换(cwt函数) 
%对MATLAB中所带有的noissin信号进行连续小波变换,尺度a分别为12.12,10.24,15.48,1.2,2,4,6,8,10  
%小波函数用db3,求出连续小波变换后的系数 
 
%对s进行一维连续小波变换,把返回系数存到矩阵w中 
figure(2)
cwt(s,'amor');

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有