How to implement the lifting scheme given by the function-> liftwave('db4') ?
Show older comments
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:

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
Alejandro Heredia
on 27 Nov 2018
Answers (0)
Categories
Find more on Continuous Wavelet Transforms in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
