?? mylwt.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 + -