]> AND Private Git Repository - these_gilles.git/blob - THESE/codes/wave/allcode/icplxdual3D.m
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
11 oct
[these_gilles.git] / THESE / codes / wave / allcode / icplxdual3D.m
1 function y = icplxdual3D(w, J, Fsf, sf)
2
3 % Inverse 3D Complex Dual-Tree Discrete Wavelet Transform
4 %
5 % USAGE:
6 %   y = icplxdual3D(w, J, Fsf, sf)
7 % INPUT:
8 %   J - number of stages
9 %   Fsf - synthesis filter for last stage
10 %   sf - synthesis filters for preceeding stages
11 % OUTPUT:
12 %   y - output array
13 % See cplxdual3D
14 %
15 % WAVELET SOFTWARE AT POLYTECHNIC UNIVERSITY, BROOKLYN, NY
16 % http://taco.poly.edu/WaveletSoftware/
17
18 for j = 1:J
19     for m = 1:7
20         [w{j}{1}{1}{1}{m} w{j}{2}{2}{1}{m} w{j}{2}{1}{2}{m} w{j}{1}{2}{2}{m}] = ...
21             pm4inv(w{j}{1}{1}{1}{m}, w{j}{2}{2}{1}{m}, w{j}{2}{1}{2}{m}, w{j}{1}{2}{2}{m});
22          [w{j}{2}{2}{2}{m} w{j}{1}{1}{2}{m} w{j}{1}{2}{1}{m} w{j}{2}{1}{1}{m}] = ...
23             pm4inv(w{j}{2}{2}{2}{m}, w{j}{1}{1}{2}{m}, w{j}{1}{2}{1}{m}, w{j}{2}{1}{1}{m});
24     end
25 end
26
27 y = zeros(2*size(w{1}{1}{1}{1}{1}));
28 for m = 1:2
29     for n = 1:2
30         for p = 1:2
31             lo = w{J+1}{m}{n}{p};
32             for j = J:-1:2
33                 lo = sfb3D(lo, w{j}{m}{n}{p}, sf{m}, sf{n}, sf{p});
34             end
35             lo = sfb3D(lo, w{1}{m}{n}{p}, Fsf{m}, Fsf{n}, Fsf{p});
36             y = y + lo;
37         end
38     end
39 end
40
41 % normalization
42 y = y/sqrt(8);
43
44