⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mylwt.m

📁 此为基于二代提升小波的阈值压缩算法源码
💻 M
字号:
%**************************************************************************
% 函数功能:计算信号x的一维提升小波变换
% 输入参数:x为原始输入数据;LS为所用小波的提升方案,也可给定提升小波的名称;level为小波分解的级数,默认为1
% 返回值:尺度系数及小波系数交织存储的矩阵x_inplace
%**************************************************************************
function x_inplace = MyLwt(x,LS,level)

if ischar(LS) , LS = LiftScheme(LS); end
%===================%
% LIFTING ALGORITHM %
%===================%
% lazy小波变换.
lx = length(x);
firstIdxAPP = 1;
firstIdxDET = 1+mod(firstIdxAPP,2);
idxAPP = firstIdxAPP:2:lx;%奇数序列
idxDET = firstIdxDET:2:lx;%偶数序列
lenAPP = length(idxAPP);
lenDET = length(idxDET);

% Lifting.
NBL = size(LS,1);
LStype = LS{NBL,3};%决定是否进行整数提升小波变换
for k = 1:NBL-1
    liftTYPE = LS{k,1};
    liftFILT = LS{k,2};
    DF       = LS{k,3};
    switch liftTYPE
       case 'p' , 
           x(idxAPP) = x(idxAPP) + forecastupdate(x(idxDET),liftFILT,DF,lenAPP,LStype);  %更新
       case 'd' , 
           x(idxDET) = x(idxDET) + forecastupdate(x(idxAPP),liftFILT,DF,lenDET,LStype);  %预测 
    end
end

% Normalization.
if isempty(LStype)
    x(idxAPP) = LS{NBL,1}*x(idxAPP);
    x(idxDET) = LS{NBL,2}*x(idxDET);
end
%========================================================================%
% Recursion if level > 1.
if level>1
   x(idxAPP) = MyLwt(x(idxAPP),LS,level-1);
end
x_inplace =x;

⌨️ 快捷键说明

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