This abstract class defines the methods of all synthesis wavelet filters. Specialized abstract classes that work on particular data types (int, float) provide more specific method calls while retaining the generality of this one. See the SynWTFilterInt and SynWTFilterFloat classes. Implementations of snythesis filters should inherit from one of those classes.
The length of the output signal is always the sum of the length of the low-pass and high-pass input signals.
All synthesis wavelet filters should follow the following conventions:
- The first sample of the output corresponds to the low-pass one. As a consequence, if the output signal is of odd-length then the low-pass input signal is one sample longer than the high-pass input one. Therefore, if the length of output signal is N, the low-pass input signal is of length N/2 if N is even and N/2+1/2 if N is odd, while the high-pass input signal is of length N/2 if N is even and N/2-1/2 if N is odd.
- The normalization of the analysis filters is 1 for the DC gain and 2 for the Nyquist gain (Type I normalization), for both reversible and non-reversible filters. The normalization of the synthesis filters should ensure prefect reconstruction according to this normalization of the analysis wavelet filters.
The synthetize method may seem very complicated, but is designed to minimize the amount of data copying and redundant calculations when used for block-based or line-based wavelet transform implementations, while being applicable to full-frame transforms as well.
@see SynWTFilterInt
@see SynWTFilterFloat