This function makes a synthesis of a path in a filter bank, for each pixel
of datapack DATA.
It uses in cascade of reconstruction blocks Bi with i=1 to i=L=length(SEQ).
Each reconstruction block Bi is formed by:
1) up-sampler by 2
2) gain of 2
3) Gj FIR FILTER, so that j=SEQ(L+1-i)
The function accepts the filter H0 as input parameter, so that the filters
G0 and G1 are calculated as $G0[Z]=H0[Z]$ and $G1[Z]= -H0[-Z]$.
If
H0 = [h0 h1 h2 ... h(M-1)]
then your Z transform is:
M2=floor(M/2);
$H[Z] = h0 Z^{+M2} + h1 Z^{+M2-1} + ... h(M-1) Z^{+M2-(M-1)}$
H0 should be a low pass FIR filter with cut-off in pi/2
(for a 2*pi normalized frequency range).
In order to get a perfect reconstruction it is necessary that
$D[Z]=H0^2[Z]-H0^2[-Z]=A Z^C$ for any A and C.
After starting the main routine just type the following command at the
prompt:
DATAOUT=firsynthesispath(DATA,H0,SEQ);
Input:
DATA is a speckle data pack. Where DATA is a 3D matrix created grouping NTIMES
intensity matrices with NLIN lines and NCOL columns. When N=size(DATA0), then
N(1,1) represents NLIN and
N(1,2) represents NCOL and
N(1,3) represents NTIMES.
DATA is obtained after the down-sampler of output of H0 FIR filter in
a step of a filter bank with low-pass filter H0.
H0 is a vector with the parameters of a FIR filter. H0 should be a low
pass filter with cut-off in pi/2 (for a 2*pi normalized frequency range).
In order to get a perfect reconstruction is necessary that
$D[Z]=H0^2[Z]-H0^2[-Z]=A Z^B$ for any A and B.
SEQ is a vector with binary values. These values indicates the path
in the decomposition scheme used to get the datapack DATA.
Output:
DATAOUT is a synthesis of the speckle datapack DATA. The number of images
inside DATAOUT is 2^{L=length(SEQ)} times of the number of images of DATA.
For help, bug reports and feature suggestions, please visit:
http://nongnu.org/bsltl/
Package: bsltl