Daubechies-4 Transform в MATLAB
У меня есть матрица 4x4, которую я хочу разложить на 4 полосы частот (LL, HL, LH, HH, где L= низкая, H= высокая) с помощью одноуровневого вейвлет-преобразования Daubechies-4. В результате преобразования каждая полоса должна содержать коэффициенты 2x2. Как я могу сделать это в MATLAB? Я знаю, что MATLAB имеет dbaux
а также dbwavf
функции. Однако я не уверен, как их использовать, и у меня также нет набора инструментов вейвлета.
Любая помощь с благодарностью.
Благодарю.
2 ответа
Ты пробовал это?
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
Я думаю, что вейвлет-пакет Ивана Селесника нажимает все нужные вам кнопки. Он охватывает отдельные случаи 1D, 2D и 3D... и реализацию Matlab, и учебник! 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.