开发者

Daubechies-4 Transform in MATLAB

开发者 https://www.devze.com 2022-12-26 16:25 出处:网络
I have a 4x4 matrix which I wish to decompose into 4 frequency bands (LL, HL, LH, HH where L=low, H=high) by using a one-level Daubechies-4 wavelet transform. As a result of the transform, each band s

I have a 4x4 matrix which I wish to decompose into 4 frequency bands (LL, HL, LH, HH where L=low, H=high) by using a one-level Daubechies-4 wavelet transform. As a result of the transform, each band should contain 2x2 coefficients. How can I do this in MATLAB? I know that MATLAB has dbaux and dbwavf functions.开发者_JAVA百科 However, I'm not sure how to use them and I also don't have the wavelet toolbox.

Any help is greatly appreciated.

Thanks.


I think Ivan Selesnick's wavelet software package pushes all the right buttons for you. It covers the separable 1D, 2D and 3D cases... both matlab implementation and tutorial! It does not require the Wavelet Toolbox, but it probably requires the Signal Processing Toolbox (not sure about the Image Processing Toolbox). It also provides code for more advanced wavelet transforms, so you can even explore alternative techniques.


Did you try this?

N = length(S);
S = transpose(S);
s1 = S(1:2:N-1) + sqrt(3)*S(2:2:N);
d1 = S(2:2:N) - sqrt(3)/4*s1 - (sqrt(3)-2)/4*[s1(N/2) s1(1:N/2-1)];
s2 = s1 - [d1(2:N/2) d1(1)];
s = (sqrt(3)-1)/sqrt(2) * s2;
d = (sqrt(3)+1)/sqrt(2) * d1;

Courtesy http://en.wikipedia.org/wiki/Daubechies_wavelet#Implementation

0

精彩评论

暂无评论...
验证码 换一张
取 消