OrthogonalWavelet.java
package com.morphiqlabs.wavelet.api;
/**
* Interface for orthogonal wavelets where the wavelet transform is orthogonal.
*
* <p>In orthogonal wavelets, the reconstruction filters are time-reversed
* versions of the decomposition filters. This provides perfect reconstruction
* and computational efficiency.</p>
*
* <p>Examples include: Haar, Daubechies, Symlets, Coiflets</p>
*
* @since 1.0.0
*/
public sealed interface OrthogonalWavelet extends DiscreteWavelet
permits Haar, Daubechies, Symlet, Coiflet, DiscreteMeyer, BattleLemarieWavelet {
/**
* For orthogonal wavelets, the low-pass reconstruction filter
* is the same as the decomposition filter (no time reversal needed
* as it's handled in the convolution operation).
*/
@Override
default double[] lowPassReconstruction() {
return lowPassDecomposition();
}
/**
* For orthogonal wavelets, the high-pass reconstruction filter
* is the same as the decomposition filter (no time reversal needed
* as it's handled in the convolution operation).
*/
@Override
default double[] highPassReconstruction() {
return highPassDecomposition();
}
@Override
default WaveletType getType() {
return WaveletType.ORTHOGONAL;
}
}