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');
后一篇:arXiv上传文章注意事项