📄 iwt_atrou.sci
字号:
function s = IWT_ATrou(dwt,L);
//
// IWT_ATrou -- Inverse Dyadic Wavelet Transform
// Usage
// s = IWT_ATrou(dwt,L)
// Inputs
// dwt an n times J-L+1 matrix
// L Coarsest Level of V_0; L << J
// Outputs
// s original 1-d signal; length(x) = 2^J = n
// Description
// 1. filters are obtained with MakeATrouFilter
// 2. usually, length(qmf) < 2^(L+1)
// 3. The transformed signal can be obtained by FWT_ATrou
// See Also
// FWT_ATrou, MakeATrouFilter
//
// Copyright Aldo I Maalouf
[n,b] = size(dwt);
J=b+L-1;
if ~(2^J==n)
disp('problem in matrix dimensions');
end
s = dwt(:,1)';
D = b-1;
[lodyadf,dlodyadf,hidyadf,dhidyadf] = MakeATrouFilter('Spline',3);
f = zeros(1,2^(D-1)*length2(dlodyadf));
f(1:2^(D-1):2^(D-1)*length2(dlodyadf)+1-2^(D-1)) = dlodyadf;
f2 = zeros(1,2^(D-1)*length2(dhidyadf));
f2(1:2^(D-1):2^(D-1)*length2(dhidyadf)+1-2^(D-1)) = dhidyadf;
for d= D-1:-1:0
for j = 1:2.*2^(d),
s = lshift(s);
end
for j = 1:2^(d+1)
p = rshift(dwt(:,d+2)');
dwt(:,d+2) = p';
end
for j = 1:3.*2^(d),
p=lshift(dwt(:,d+2)');
dwt(:,d+2)=p';
end
s=0.5*(iconv(f,s)+iconv(f2,dwt(:,d+2)'));
f = zeros(1,2^(d-1)*length2(dlodyadf));
f(1:2^(d-1):2^(d-1)*length2(dlodyadf)+1-2^(d-1)) = dlodyadf;
f2 = zeros(1,2^(d-1)*length2(dhidyadf));
f2(1:2^(d-1):2^(d-1)*length2(dhidyadf)+1-2^(d-1)) = dhidyadf;
end
endfunction
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -