www.pudn.com > m_program.zip > mydwt2.m


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