Question

I possède une matrice 4x4 que je désire décomposer en 4 bandes de fréquences (LL, HL, LH, HH, où L = faible, M = élevé) en utilisant un Daubechies-4 un niveau de transformée en ondelettes. En raison de la transformation, chaque bande doit contenir 2x2 coefficients. Comment puis-je faire cela en Matlab? Je sais que Matlab a des fonctions de dbaux et dbwavf. Cependant, je ne suis pas sûr de savoir comment les utiliser et je aussi ne pas avoir la boîte à outils ondelettes.

Toute aide est grandement appréciée.

Merci.

Était-ce utile?

La solution

Avez-vous essayé cela?

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;

Avec l'aimable autorisation http://en.wikipedia.org/wiki/Daubechies_wavelet#Implementation

Autres conseils

Je pense que Ivan Selesnick paquet logiciel ondelette pousse tous les boutons de droite pour vous. Il couvre les 1D séparables, 2D et 3D ... à la fois des cas de mise en œuvre et Matlab tutoriel! Il ne nécessite pas la boîte à outils Wavelet, mais il faut sans doute la boîte à outils de traitement du signal (pas sûr de la Boîte à outils de traitement d'image). Il fournit également un code pour les plus avancés transformées en ondelettes, de sorte que vous pouvez même explorer des techniques alternatives.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top