Pergunta

Eu tenho uma matriz 4x4 que desejo decompor em 4 bandas de frequência (LL, HL, LH, HH onde L = baixo, H = alto) usando uma transformada wavelet Daubechies-4 de um nível.Como resultado da transformação, cada banda deverá conter coeficientes 2x2.Como posso fazer isso no MATLAB?Eu sei que o MATLAB tem dbaux e dbwavf funções.No entanto, não tenho certeza de como usá-los e também não tenho a caixa de ferramentas wavelet.

Qualquer ajuda é muito apreciada.

Obrigado.

Foi útil?

Solução

Você tentou isso?

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;

Cortesia http://en.wikipedia.org/wiki/daubechies_wavelet#implementation

Outras dicas

Eu acho que Ivan Selesnick pacote de software wavelet aperta todos os botões certos para você.Abrange os casos separáveis ​​1D, 2D e 3D...implementação e tutorial do matlab!Não requer a caixa de ferramentas Wavelet, mas provavelmente requer a caixa de ferramentas de processamento de sinal (não tenho certeza sobre a caixa de ferramentas de processamento de imagem).Ele também fornece código para transformações wavelet mais avançadas, para que você possa explorar técnicas alternativas.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top