Pregunta

I tiene una matriz de 4x4 que deseo para descomponer en 4 bandas de frecuencia (LL, HL, LH, HH donde L = bajo, H = alto) mediante el uso de un de un nivel Daubechies-4 transformada wavelet. Como resultado de la transformación, cada banda debe contener 2x2 coeficientes. ¿Cómo puedo hacer esto en MATLAB? Sé que tiene funciones de MATLAB y dbaux dbwavf. Sin embargo, no estoy seguro de cómo usarlos y también no tener la caja de herramientas wavelet.

Cualquier ayuda es muy apreciada.

Gracias.

¿Fue útil?

Solución

¿Usted intentó esto?

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

Otros consejos

wavelet paquete de software de Ivan Selesnick empuja todos los botones correctos para usted. Cubre el separables 1D, 2D y 3D casos ... tanto la implementación de MATLAB y un tutorial! No requiere la Wavelet Caja de herramientas, pero probablemente requiere Signal Processing Toolbox (no estoy seguro acerca de la imagen Processing Toolbox). También proporciona código para las transformadas de tren de ondas más avanzados, por lo que incluso puede explorar técnicas alternativas.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top