Discret wavelet transform : implementation of mallat algorithm and output lengh at each level.
Show older comments
Dear all,
I know that there are different ways to make the DWT in matlab either by using the function 'wavedec' or using the 'dyadic filter bank 'model in simulink but in both of them, The coefficients output are the artifacts from the convolution of the input signal (vector) and the wavelet/scale functions. for this reason the output signal lengh at each level will be equal to [lengh(input_signal)+lengh(filter)-1] and that is not what i need because the output lengh at each level should be equal to the half of the input lengh. for example if the input signal is 64 samples long then the actual lengths should be 32,16,8,4,2 for cD1,cD2,cD3.. respectively without taking the filter lengh into account. to solve this problem i tried to writte a matlab code wich descripe the real mallat algorithm. the written code(see below)did function but the problem is that the difference between values produced using this code and wavedec function() at each level is big . My question is: why the output values at each level are unacceptable although the code is right,? is there another way to implement this algorithm or to have the desired output length?
thank you in advance for your answers
1 Comment
haithem
on 17 Sep 2013
Answers (0)
Categories
Find more on Image Analysis 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!