Wavelet Packet Decomposition filter specification

2 views (last 30 days)
Hi, I am looking to perform Wavelet Packet Decomposition on a 2 dimensional image using my own filter coefficients.
I have noticed that when performing standard 2-D Wavelet Decomposition there is a function 'dwt2' which takes high and low pass filters as parameters, however when performing Wavelet Packet Decomposition only a wavelet name can be specified and not the actual filters.
Just wondering is anyone aware of a function which will enable me to specify my own high and low pass filters for use with Wavelet Packet Decomposition? Or, if anyone has any ideas these would also be greatly appreciated.
thanks, John

Accepted Answer

Wayne King
Wayne King on 14 Dec 2011
Hi John, yes the filter I gave you above matches exactly. What you have to realize is that Wavelet Toolbox multiplies the orthogonal lowpass filter by sqrt(2) so that it satisfies the properties of a conjugate quadrature filter. This is built into the way Daubechies describes her filters. She describes them divided by sqrt(2).
If you do this:
[LoD,HiD] = wfilters('db10');
h = fliplr(LoD/sqrt(2))
You will see exactly the filter you are looking for. So you can just use wpdec2() with 'db10'.
Hope that helps
  1 Comment
John
John on 14 Dec 2011
Thanks for your help Wayne, I will get this implemented asap :-)

Sign in to comment.

More Answers (2)

Wayne King
Wayne King on 14 Dec 2011
Hi, John, you have your own orthogonal or biorthogonal filters? Then, yes, you can add them to the toolbox with wavemngr() and then use them in wpdec2
You should ensure that these are orthogonal or biorthogonal filters, or you will not have a wavelet packet transform.
  1 Comment
John
John on 14 Dec 2011
Hi Wayne thanks for your response, I am implementing a paper which uses the Wavelet Packet Transform for texture classification.
The authors specify "20-Tap Daubechies Wavelet Transform Filter Coefficients" for a low-pass filter, H which is then used to create the high-pass filter, G.
The output of the wfilters function for various Daubechies filters (db1..db20) is different than those specified by the authors of the paper which is what motivated my question.
I might try using a standard Matlab Daubechies filter first and then look at the wavemngr option if this doesn't yield intuitive results.

Sign in to comment.


Wayne King
Wayne King on 14 Dec 2011
In what sense do you say they're different? You may be confusing the way the Wavelet Toolbox refers to db#. The Wavelet Toolbox uses the number of vanishing moments and not the length of the filter. The length is twice the number of vanishing moments.
[LoD,HiD] = wfilters('db10');
length(LoD)
Does the above filter give you what you need?
Is this paper somewhere I can see?
  1 Comment
John
John on 14 Dec 2011
I don't have access to Matlab at just this moment but I will check as soon as I do.
The paper is at www.sftw.umac.mo/~fstpcm/pub/PAMI03.pdf it is called "Log-Polar Wavelet Energy Signatures for Rotation and Scale Invariant Texture Classification" by Pun and Lee (2003. The definition of the filters are in Section 2 and the Filter Coefficients for H are in Section 4.2.

Sign in to comment.

Categories

Find more on Discrete Multiresolution Analysis in Help Center and File Exchange

Products

Community Treasure Hunt

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

Start Hunting!