This function implements a filter bank for each pixel of a datapack. 

  This function uses two FIR filters (H0 and H1) of order (M-1) in non-causal 
  form, so that if 
  H    = [h0 h1 h2 ... h(M-1)]
  then its Z transform is:
  M2=floor(M/2);
  $H[Z] = h0 Z^{+M2} + h1 Z^{+M2-1} + ...  h(M-1) Z^{+M2-(M-1)}$ 

  The function implements some modes
  
  MODE0: This mode uses two FIR filters (H0 and H1), thus it can accept {H0} or 
         {H0 , H1} as input parameter. If only the H0 filter is delivered as  
         input parameter, then the H1 filter is calculated as
         the complement filter of H0. $H1[Z]= 1-H0[Z]$. 
         
  MODE2: This mode uses two FIR filters (H0 and H1), and it only can accept {H0} 
         as input parameter; H1 filter is calculated as the quadrature mirror 
         filter of H0. $H1[Z]= H0[-Z]$. At end the, there will be a 
         down-sampler by 2.
         This mode is commonly used with H0 as low pass FIR filter with cut-off 
         in pi/2 (for a 2*pi normalized frequency range). In order to have a perfect reconstruction
         it is necessary that $D[Z]=H0^2[Z]-H0^2[-Z]=A Z^B$ for any A and B.


  After starting the main routine just type the following command at the
  prompt:
  [DATA0 DATA1] = firfilterbank(DATA,FILTER,MODE);
  [DATA0 DATA1] = firfilterbank(DATA,H0,'MODE2');
  [DATA0 DATA1] = firfilterbank(DATA,H0,'MODE0');
  [DATA0 DATA1] = firfilterbank(DATA,[H0;H1],'MODE0');
  
  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(DATA), then
         N(1,1) represents NLIN and
         N(1,2) represents NCOL and
         N(1,3) represents NTIMES.
  FILTER is a matrix (with 2 lines) or a vector, where FILTER=H0 or FILTER=[H0;H1].
         H0 and H1 represent two FIR filters.
         FILTER=H0 is used in the mode 'MODE2', by other side FILTER=H0 or FILTER=[H0;H1] 
         can be used in the mode 'MODE0'.
  MODE   is the type of analysis selected of a filter bank. It can be 'MODE0' or 
         'MODE2'.
  
  Output:
  DATA0  is obtained from the output of H0 FIR filter, in non-causal form, 
         with input each pixel of datapack. If the mode used have a 
         down-sampler after filtering, then DATA0 is the output of down-sampler.
  DATA1  is obtained after the output of H1 FIR filter, in non-causal form, 
         with input each pixel of datapack. If the mode used have a 
         down-sampler after filtering, then DATA1 is the output of down-sampler.
  

  For help, bug reports and feature suggestions, please visit:
  http://nongnu.org/bsltl/

Package: bsltl