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