mydwt2.m

来自「用matlab编写的压缩解压缩程序」· M 代码 · 共 32 行

M
32
字号
function deccoef=mydwt2(X,wavename,N,mode)
%mydwt2  2-D 多级非标准小波分解程序
%deccoef=mydwt2(X,wavename)
%输入   X          要分解的二维信号
%       wavename   用来作分解的小波名称,与Matlab的wavename定义一致
%       N          分解级数
%       mode       分解模式(sym,per,zpd,spd,sp0,ppd),缺省为系统缺省模式sym
%输出   deccoef    三级分解的各级分解系数(1x3 struct array with fields:cA,cH,cV,cD,ex_size)
%                  cA,cH,cV,cD分别保存低频、水平高频,垂直高频,斜线高频分解系数数值,
%                  ex_size保存上一级分解矩阵大小
%说明:数组标号对应分解的级数

sX=size(X);
DX=X;

%设置缺省分解模式
if narginN<=3
    mode='sym';
end

if sX(1)==1;
    error=sprintf('%s','出错信息:分解信号需为二维矩阵')
else
    %用小波函数进行分解
    for i=1:N
            [deccoef(i).cA,deccoef(i).cH,deccoef(i).cV,deccoef(i).cD]=dwt2(DX,wavename,'mode',mode);
            deccoef(i).ex_size=size(DX);
            DX=deccoef(i).cA;
    end
end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?