Matlab函数——upwlev2、cwt、pat2cwav

1.upwlev2

功能: 二维小波分解的单级重构
用法:

  • [NC,NS,cA] = upwlev2(C,S,wname)
    对小波分解结构[C,S]进行单级重构,得到新的[NC,NS],并提取最后的近似系数矩阵cA。
    [C,S]是n=size(S,1) - 2级的分解,因此[NC,NS]是n-1级的相同分解,cA是n级的近似矩阵。
    wname是指定小波的字符向量或字符串标量,C是原始小波分解向量,S是相应的记账矩阵。
  • [NC,NS,cA] = upwlev2(C,S,Lo_R,Hi_R)
    Lo_R是重构低通滤波器,Hi_R是重构高通滤波器。

代码示例:

load woman; 
[c,s] = wavedec2(X,2,'db1');%2级执行分解,使用db1的X.
sc = size(c)
val_s = s 
% 小波的一步重构
% 分解结构[c,s]. 
[nc,ns] = upwlev2(c,s,'db1');
snc = size(nc)
val_ns = ns

运行结果:
在这里插入图片描述

2.cwt

功能: 实现一维连续小波变换的函数。
语法格式:

  • COEFS=cwt(S, SCALES, ‘wname’)
    采用’wname’小波,在正、实尺度SCALES下计算向量一维小波系数。
  • COEFS=cwt(S, SCALES, ‘wname’, ‘plot’)
    除了计算小波系数外,还加以图形显示。
  • COEFS=cwt(S, SCALES, ‘wname’, ‘PLOTMODE’)
    计算并画出连续小波变换的系数,并使用PLOTMODE对图形着色。
    格式 COEFS=cwt(S, SCALES, ‘wname’, ‘plot’) 相当于 格式 COEFS=cwt(S, SCALES, ‘wname’, ‘PLOTMODE’) 中的语法 COEFS=cwt(S, SCALES, ‘wname’, ‘absglb’)
  • COEFS=cwt(S, SCALES, ‘wname’, ‘PLOTMODE’, XLIM)
    能够计算并画出连续小波变换的系数。系数使用PLOTMODE和XLIM进行着色。其中:XLIM=[x1,x2],并且有如下关系:1<=x1<=x2<=length(S)。
    PLOTMODE值及其含义
    ‘lvl’ scale-by-scale着色模式
    ‘glb’ 考虑所有尺度的着色模式
    ‘abslvl’或’lvlabs’ 使用系数绝对值的scale-by-scale着色模式
    ‘absglb’或’glbabs’ 使用系数绝对值并考虑所有尺度的着色模式
    代码示例:
t=linspace(-1,1,512);
s=1-abs(t);
c=cwt(s,1:32,'cgau4','plot');
c=cwt(s,1:50,[64 32 16:-2:2]);
c=cwt(s,[3 18 12.9 7 1.5],'db2','scal');
c=cwt(s,1:64,'sym4','abslvl',[100,400]);

运行结果:
在这里插入图片描述
在这里插入图片描述

3.pat2cwav

功能: 由模式构造小波。
用法:

  • [PSI,XVAL,NC] = pat2cwav(YPAT, METHOD, POLDEGREE, REGULARITY)
    使用说明: 该函数计算由XVAL和PSI给定并用于连续小波变换的小波函数,该小波向量YPAT定义的模式构造,方差为1。其中模式隐含的x值是 xpat=linspace(0,1,length(YPAT))。常数NC的选取应保证通过以下方式的最小二乘拟合,NC*PSI在区间[0,1]上近似于YPAT:
    a. 当METHD等于’polynomial’时,为POLDEGREE多项式;
    此时:
    当REGULARITY等于’continuous’,则必须POLDEGREE>=3;
    当REGULARITY等于’differentiable’,则必须POLDEGREE>=5。
    b. 当METHD等于’othconst’时,为正交函数空间的投影;
    参数REGULARITY定义了在0点和1点的边界约束,可以是’continuous’,‘differentiable’或’none’。

代码示例:

%加载并绘制图案。
load ptpssin1
plot(X,Y)
grid on
title('Original Pattern')
%在间隔内整合模式,整体不等于0。但是,模式是一个很好的候选,因为它像小波一样振荡。
dX = X(2)-X(1);
patternInt = dX*sum(Y);
disp(['Integral: ',num2str(patternInt)]);
figure;
%为了合成一个适合于给定模式的新小波,使用6次的最小二乘多项式逼近,在模式的开始和结束处具有连续性约束。
[psi,xval,nc] = pat2cwav(Y,'polynomial',6,'continuous');
%绘制新小波。
plot(X,Y,'-',xval,nc*psi,'--')
grid on
legend('Original Pattern','Adapted Wavelet','Location','NorthWest')
%通过确认psi整体为零且L2范数等于1,检查psi是否满足小波的定义。
dxval = xval(2)-xval(1);
psiIntegral = dxval*sum(psi);
disp(['Integral: ',num2str(psiIntegral)])
psiSqN = dxval*sum(psi.^2);
disp(['L2-norm: ',num2str(psiSqN)])

运行结果:

在这里插入图片描述
在这里插入图片描述

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值