Вопрос

У меня есть матрица 4x4, которую я хочу разложить на 4 частотных полоса (LL, HL, LH, HH, где l = low, h = high) с использованием одноуровневого вейвлет-преобразования Daubechies-4. В результате преобразования каждая полоса должна содержать коэффициенты 2x2. Как я могу сделать это в Matlab? Я знаю, что Matlab имеет dbaux а также dbwavf Функции. Однако я не уверен, как их использовать, и у меня также нет Wavelet Toolbox.

Любая помощь значительно ценится.

Спасибо.

Это было полезно?

Решение

Вы пробовали это?

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_wavelt#imlementation.

Другие советы

Я думаю, что Иван Селесник Wavelet программный пакет толкает все правильные кнопки для вас. Он охватывает отдельную 1D, 2D и 3D-чехлы ... Оба внедрения, так и учебника! Он не требует Wavelet Toolbox, но он, вероятно, требует инструментов обработки сигналов (не уверен в процессе обработки изображений). Он также предоставляет код для более продвинутых вейвлет-преобразований, поэтому вы даже можете исследовать альтернативные методы.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top