I'm using MODWT (Maximal Overlap DWT) to extract features from a signal. Matlab implementation is using reconstruction filter instead of decomposition filter. In the first level of modwt decomposition, the output is just a circular convolution between the filter and the signal.

For example: Suppose the signal is from 1 to 10 and the filter is haar filter (high-pass).

High-pass filter: $\bar{h}_0 = -\frac{1}{\sqrt(2)}, \bar{h}_1 = \frac{1}{\sqrt(2)}$ modwt -> $\hat{\bar{h}} = \bar{h}/\sqrt(2)$.

Signal: $[1,~2,~3, ~\dots,~10]$

Output: $[4.5,~-0.5,~-0.5,~-0.5,~-0.5,~-0.5,~-0.5,~-0.5,~-0.5,~-0.5]$

The output of matlab implementation is:

High-pass filter: $h_0 = \frac{1}{\sqrt(2)}, h_1 = -\frac{1}{\sqrt(2)}$ modwt -> $\hat{h} = h/\sqrt(2)$.

Signal: $[1,~2,~3, ~\dots,~10]$

Output: $[-4.5,~0.5,~0.5,~0.5,~0.5,~0.5,~0.5,~0.5,~0.5,~0.5]$

The example above shows only one sign change at the output, but with other filters (like db2) the output is very different.

Does anyone know why some implementation uses the reconstruction filter instead of the decomposition filter? Is this the wrong implementation?

Sorry if there is any answer about this, I didn't find it.



Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.