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

Private GIT Repository
modif finale lnivs + keywords
[these_gilles.git] / THESE / codes / wave / allcode / idualtree3D.m
1 function y = idualtree3D(w, J, Fsf, sf)
2
3 % Inverse 3D Dual-Tree Discrete Wavelet Transform
4 %
5 % USAGE:
6 %   y = idualtree3D(w, J, Fsf, sf)
7 % INPUT:
8 %   w - wavelet coefficients
9 %   J - number of stages
10 %   Fsf - synthesis filter for the last stage
11 %   sf - synthesis filters for the preceeding stages
12 % OUTPUT:
13 %   y - output arry
14 % See dualtree3D
15 %
16 % WAVELET SOFTWARE AT POLYTECHNIC UNIVERSITY, BROOKLYN, NY
17 % http://taco.poly.edu/WaveletSoftware/
18
19 for k = 1:J
20     for m = 1:7
21         [w{k}{1}{m} w{k}{2}{m} w{k}{3}{m} w{k}{4}{m}] = ...
22             pm4inv(w{k}{1}{m}, w{k}{2}{m}, w{k}{3}{m}, w{k}{4}{m});
23     end
24 end
25
26 M = [
27     1 1 1
28     2 2 1
29     2 1 2
30     1 2 2
31 ];
32
33 % initialize output array
34 y = zeros(2^J * size(w{J}{1}{1}));
35
36 for i = 1:4
37     f1 = M(i,1);
38     f2 = M(i,2);
39     f3 = M(i,3);
40     yi = w{J+1}{i};
41     for k = J:-1:2
42         yi = sfb3D(yi, w{k}{i}, sf{f1}, sf{f2}, sf{f3});
43     end
44     yi = sfb3D(yi, w{1}{i}, Fsf{f1}, Fsf{f2}, Fsf{f3});
45     y = y + yi;
46 end
47
48 % normalization
49 y = y/2;
50
51