的Daubechies-4的变换在MATLAB
-
27-09-2019 - |
题
我有一个4×4矩阵,其我要分解成4个频带(LL,HL,LH,HH,其中L =低,H =高)通过使用单级的Daubechies-4小波变换。作为该变换的结果,每个带应该包含2×2的系数。我怎样才能在MATLAB做到这一点?我知道,MATLAB有dbaux
和dbwavf
功能。但是,我不知道如何使用他们,我也没有小波工具箱。
任何帮助不胜感激。
感谢。
解决方案
您是否尝试过这个?
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;
http://en.wikipedia.org/wiki/Daubechies_wavelet#Implementation
其他提示
我觉得伊万Selesnick的小波软件包推动所有正确的按钮,供您。它涵盖了可分离1D,2D和3D的情况下......都matlab实现和教程!它不需要小波工具箱,但它可能需要信号处理工具箱(不知道图像处理工具箱)。它也提供了代码为更先进的小波变换,所以甚至可以探索替代技术。
不隶属于 StackOverflow