Hello, I am putting this out there to see if anyone can help me take my linear algebra solution to the wavelet transform from 2D to 3D. The reason I am doing this is because there is no lwt3 function in the wavelet toolbox, and dwt3 does not organize the coefficients in a way that I would prefer.
The equations for 1D and 2D are fairly simple. Working with an operator "L" and "H" which are N/2 by N, one can perform the 1D by multiplying the vector by the transpose of the operator. In 2D you perform L*X*L' for every combination of L and H (resulting in 4, N/2 by N/2 matrices). Here is some code demonstrating 1D and 2D, if anyone could help me figure out 3D it would be greatly appreciated.
X3 = reshape(1:64,4,4,4);
ls = liftingScheme('Wavelet','db2');
[LoD,HiD,LoR,HiR] = ls2filt(ls);
function L = operator(a,N)
L(i,2*(i-1)+1:2*(i-1)+numel(a)) = a;
L = L(:,1:N) + [L(:,N+1:N+floor(numel(a)/2)),zeros(N/2,N-floor(numel(a)/2))];