How to implement the lifting scheme given by the function-> liftwave('db4') ?

I am trying to implement (by hardware) the discrete wavelet transform for a signal stored in the array x[ ]. For this, I would like to use the lifting scheme using the 'db4' wavelet given by the liftwave() function.
So in matlab I use the following to get the lifting scheme for the 'db4' wavelet:
ls = liftwave('db4');
displs(ls);
And I got the following output:
ls = {...
'd' [ -0.32227589] [1]
'p' [ -1.11712361 -0.30014226] [0]
'd' [ -0.01880835 0.11764809] [2]
'p' [ 2.13181671 0.63642827] [0]
'd' [ -0.46908348 0.14003924 -0.02479124] [0]
[ 0.73412453] [ 1.36216672] []
};
Using the values above I have build the polyphase matrix as follows:
p.png
QUESTION:
  • I am having troubles on how to interpret the colum LS{k,2} from the lifting scheme ls shown above. Which corresponds to the exponents of z in the matrix. In the documentation says that LS{k,3} is the highest degree of the Laurent polynomial corresponding to the filter. Is my interpretation of the matrix correct ?
  • I am asking because I have derived the formulas that correspond to the lifting steps given by matlab, but the output coefficients of my implementation do not match at all when compared against the function lwt(x,ls) in the wavelet toolbox. (Note: I have obtained the formulas by evaluating the P(z) matrix from rigth to left, and I use zero padding as the signal extension (boundaries), the same as lwt() uses.)

1 Comment

The problem is partially solved, I figured out that matlab gives the values that correspond to P(1/z)' so the correct matrices are as follows:
p.png
To obtain the equations I multiply P(1/z)' (starting from the right) by:
samples.png
But I think that I am still messing the powers of z because the output of my equations match the matlab function lwt(signal,'db4') but they are in a different position in the output array.
QUESTION:
- Am I correclty interpreting the LS{k,3} column of the lifting scheme that correspond to the highest degree of the Laurent polynomial in the filter ?

Sign in to comment.

Answers (0)

Products

Release

R2017b

Asked:

on 26 Nov 2018

Commented:

on 27 Nov 2018

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!