Vous êtes sur la page 1sur 3

Transforme en ondelettes 1D e

Ch. Dossal Juillet 2008

Wavelab

Pour eectuer le TD vous aurez besoin de la toolbox wavelab. Tlchargez l`, (tapez waveee a lab802 dans google et suivez le premier lien). Cette toolbox dveloppe par lquipe de David e e e Donoho a Stanford est la toolbox de rfrence en ondelettes, elle est totalement gratuite. Installez ` ee l` en suivant les instructions. La commande qui ralise la transforme en ondelette (priodise a e e e e et orthonorme) est e >> W=FWT_PO(S,l,qmf); Elle prend pour argument Un vecteur S de taille N = 2d , Un nombre l < d tel que 2l est la taille de lapproximation de S. Quand l = d 1, on a eectu une tape de transforme en ondelettes. e e e Un ltre qmf qui sp`cie londelette. e Dans ce TD nous allons tudier direntes transformes en ondelettes. Chaque transforme est e e e e associ au couple de ltres (h, g) du cours, ces ltres sont appels Quadratic Mirror Filters. e e Comme g dpend directement de h, on ne prcise que le ltre h. La commande MakeONFilter e e founit les ltres associs ` quelques ondelettes de Rfrence. Utilisez la commande help pour e a ee lutiliser. Vous pourrez tester les ondelettes de Haar, de Daubechies 4,6 et 8 et les ondelettes de Coifman. Par exemple >> qmf=MakeONFilter(Haar); >> qmf2=MakeONFilter(Daubechies,4); Attention aux majuscules ! Vous pourrez comparer les ondelettes de Daubechies 4 avec les Coiets 1 et les Dauchebies 8 avec les Coiets 2. La commande de transforme en ondelettes inverse est e >> S2=IWT_PO(W,l,qmf) o` W est une transforme en ondelettes ralise avec le ltre qmf . u e e e

Visualisation

Vous pourrez utiliser les signaux de rfrences de la fonction MakeSignal pour tester vos ee programmes. En particulier Blocks, Piece-Regular, Piece-Polynomial, HeaviSine et Ramp de taille 1024 ou 2048 par exemple. Je vous conseille de les renormaliser en norme 2 en les divisants par la commande 1

>> S=S/norm(S,2); an de pouvoir comparer les erreurs dapproximation sur les dirents signaux. e 1. En utilisant uniquement la commande >>Ond=IWT_PO(S,d,qmf); visualiser les direntes ondelettes et fonctions dchelles (pour dirents ltres qmf) ` e e e a direntes chelles j. Vous pourrez calculer la transforme inverse dun vecteur ayant e e e tr`s peu de composantes non nulles. Visualiser deux ondelettes ou fonctions dchelle e e conscutives. Pour Haar, les ondelettes dune mme chelle sont disjointes mais ce nest e e e pas le cas pour les autres. Combien y a til de fonctions dchelle ` lchelle la plus grossi`re e a e e pour les ondelettes de Daubechies 4 ? Coiets 2 ? 2. Visualiser les direntes tapes de la transforme en ondelettes dun signal S en faisant e e e varier le deuxi`me param`tre de la fonction FWT PO pour direntes ondelettes. e e e 3. Pour les ondelettes de Daubechies 4, 6 et 8, visualiser le module de la Transforme de e Fourier des ondelettes de direntes chelles. Observer la localisation frquentielle de ces e e e ondelettes et des fonctions dchelles. e

Approximation linaire e

4. Ecrire un programme qui calcule la projection dun vecteur S sur un espace Vj , qui ache lapproximation obtenue et qui calcule lerreur 2 obtenue. 5. Ecrire un programme qui calcule et ache en fonction de j, lerreur dapproximation linaire e en ondelettes. 6. Comparer la performance des ondelettes ` une approximation correspondante en Fourier a (avec le mme nombre de coecients), sur dirents signaux. e e Vous devez observer qu` lexception peut tre de Blocks, on na pas un gros gain ` faire a e a de laproximation linaire en ondelettes. Faire des ondelettes pour faire de lapproximation e linaire na pas un grand intrt. Les ondelettes prennent tout leur intrt en non linaire. e ee ee e

Approximation non linaire e

7. Ecrire un programme dapproximation non linaire en ondelettes et qui calcule lerreur e e e 2 . Le nombre de coecients conserv est un entier quelconque, pas ncessairement une puissance de 2. 8. Ecrire un programme qui calcule lerreur 2 en fonction du nombre de coecents conservs. e Attention, il nest pas utile de faire la reconstruction pour calculer lerreur. On peut sen sortir en deux lignes avec la commande sort et la commande cumsum en ne considrant e que les coecients sans jamais faire une reconstruction. 9. Comparer les erreurs dapproximation linaire et non linaire en utilisant direntes ondee e e lettes et dirents signaux. e 10. Ecrire un programme qui ache les courbes derreurs associes ` plusieurs ondelettes et de e a Fourier non linaire pour un mme signal. e e 11. Comparez ces erreurs sur les dirents signaux. Quobservez vous ? e

12. Le nombre de moments nuls de londelettes dnit le degr des polynomes qui sont orthoe e gonaux aux ondelettes. Ecrire un programme qui permet de tester le nombre de moments nulles dune ondelettes. Pouvez vous en dduire le degr des polynomes utiliss dans le e e e signal Piece-Polynomial ?

Quantication et Entropie

Dans une optique de compression, il est important de concentrer lnergie du signal tudi e e e sur un petit nombre de coecients. Il ne serait cependant pas pertinent de ne conserver un petit coecient pour les coder ensuite de mani`re tr`s prcises. En pratique, pour e e e comprimer un signal, on eectue une quantication qui ralise un travail plus complet que e lapproximation non linaire en sassurant que chaque coecient conserv sera codable sur e e un minimum de bits. 13. En utilisant les fonctions de quantication et dentropie programmes lors dun TD prcdent e e e crire un programme qui qui qauntie un signal donne dans une base dondelette. e e [Rec,E,er]=QuantiOnd(S,qmf,L,pas) Cette fonction prend en entre un vecteur S, un ltre qmf, un param`tre L dnissant le e e e nombre dtapes dans la transforme en ondelettes et un pas de quantication. Elle renvoie e e un vecteur quanti Rec, une entropie E et une erreur 2 er. e 14. Ecrire un programme [Rec,E]=QuantiOnd2(S,qmf,L,er) similaire au prcdent mais qui prend en entre une erreur e e e quantication assurant une erreur de quantication er.
2

er et qui calcule le pas de

15. Tester cette fonction sur les signaux de bases en faisant tous les param`tres. Il peut tre e e intressant pour dterminer linuence dun param`tre de le faire varier en conservant les e e e autres constants. 16. Pour chacun des signaux de rfrence et pour une erreur donne, dterminer la base donee e e delettes qui assure lentropie et donc une taille de codage minimale. Dans quelle mesure cette base dpend t elle de lerreur ? e 17. Est il utile de toujours aller au bout de la transforme en ondelettes ? e