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

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