introduction aux ondelettes

Transcription

introduction aux ondelettes
Traitement de l’information et vision artificielle
Guillaume Obozinski
ème
Ecole des Ponts ParisTech, 2
année
[email protected]
TP 5 : I NTRODUCTION AUX ONDELETTES
La séance de TP se fait sous environnement Windows, sauf si vous avez une nette préférence
pour Linux.
Pour commencer la séance
1. Lancer un navigateur, par exemple Mozilla, et aller sur la page web suivante :
http://imagine.enpc.fr/~marletr/enseignement/mpi/index.html
2. Télécharger l’archive. Un fois décompressée on obtient un dossier TIVA_TP5.
3. Lancer ensuite Matlab et modifier le répertoire de travail en choisissant le répertoire
Bureau/TIVA_TP5 que vous avez créé.
4. Pour les différentes questions, vous pouvez utiliser un «copier-coller» à partir de ce
document. Il est fortement recommandé de saisir toutes les commandes dans la fenêtre
de l’éditeur que vous avez ouverte. Pour exécuter les commandes saisies, il suffit de
les sélectionner avec la souris et d’appuyer sur la touche F9.
5. Pour inclure des commentaires dans le programme, ce qui est fortement recommandé,
vous devez utiliser le caractère %. Tout ce qui suit ce caractère sera négligé lors de
l’exécution.
1. Installation de Wavelab
1. Nous ferons ce TP avec le package Wavelab developpé par l’université de Stanford. Il
est peut être téléchargé à partir de la page :
https://statistics.stanford.edu/~wavelab
Il faut suivre les instructions sur la page web.
2. Nous allons utiliser un certain nombre de scripts et de fonctions du package. Pour rappel, vous pouvez taper help myfunction pour afficher l’aide de la fonction myfunction.m . Vous pouvez aussi taper type myfunction pour afficher directement dans la
ligne de commande le code source de la fonction. Finalement, en tapant open myfunction vous demanderez à Matlab d’ouvrir le code source dans l’éditeur.
3. Le code contient un certain nombre de démos qui nous seront utiles, en particulier
celles contenues dans
/Wavelab850/Workouts/Toons/
Pour aller dans ce dossier à partir de votre répertoire Bureau/TIVA_TP5, faites
cd(matlabroot) puis cd toolbox/Wavelab850/Workouts/Toons/
1
La commande ls vous permet d’avoir la liste de tous le fichiers présents dans le dossier. Vous verrez un certain nombre de fichiers toon_xyz.m qui sont des petites démos.
Si vous tapez help Contents dans ce répertoire, vous aurez le sommaire des démos.
Utilisez help toon0111 pour avoir une présentation de la démo 0111, etc. Je signalerai
au fur et à mesure du TP quelles sont les démos utiles.
N’oubliez pas de retournez dans votre propre dossier si vous voulez imprimer des
figures et sauver ou utiliser vos scripts.
3. Exploration des ondelettes
Le but de cette première partie est de se familiariser avec les différentes ondelettes.
1. Nous allons d’abord utiliser la commande MakeWavelet qui permet d’afficher une ondelette à l’échelle 2− j avec un shift de k2− j . Avec la commande
MakeWavelet(j,k,'Battle',3, 'Father',1024);
vous afficherez une ondelette père de Battle-Lemarié de degré 3 sous la forme d’un
vecteur de longueur 1024. L’ondelette sera à l’échelle 2− j et avec un décalage de k2− j ×
1024 unités approximativement (le centrage d’un ondelette finie ne peut être qu’approximative du fait de la longueur du filtre miroir qui est fixée). La fonction se comporte correctement 1 pour j ≥ 1. Pour une ondelette père, on choisira 1 ≤ k ≤ 2 j .
Pour une ondelette mère, 0 ≤ k ≤ 2 j − 1. Ecrivez une fonction qui affiche les ondelettes pour 1 ≤ j ≤ 6 et les valeurs de k correspondant en marquant une pause entre
chaque affichage. Visualisez les ondelettes de Haar, de Daubechies (degrés 4 et 8), de
Battle-Lemarié (degrés 1 et 3) et les symmlettes (degrés 8). Pour chacune de Haar (H),
Daubechies 4 (D4), Battle-Lemarié 1 (BL1) et Symmlettes 8 (S8), imprimez une version
des ondelettes père et mère à grande échelle et à petite échelle.
(cf toon0111,toon0121,toon0131,toon0132).
2. On s’intéresse maintenant au filtre miroir associé à chacune de ces familles. Le filtre miroir est obtenu avec la commande MakeONFilter (make orthonormal filter). Par exemple,
le filtre miroir pour D4 s’obtient avec
qmf=MakeONFilter('Daubechies',4); Utilisez la commande bar pour afficher et imprimer le filtre de
3. Choisissez une famille d’ondelette. Calculez numériquement le produit scalaire de
deux ondelettes. Sont-elles orthogonales ? Essayez différentes combinaisons (père/mère,
même j et différent k, même k et différents j). Calculez aussi la norme de chaque ondelette.
4. Calculez les premiers moments de l’ondelette. Comparez la valeur obtenue avec la
norme L2 du monôme correspondant. Est-ce qu’on peut considérer que les moments
sont nuls ? Pourquoi ? Discuter (attention, cette question n’est pas triviale et demande
de bien réfléchir et de donner une réponse qui ne soit pas juste binaire).
1. De manière générale, les fonctions du package n’ont que très peu de garde-fous et ne vérifient pas que les
paramètres donnés en entrée ont le moindre sens. Si vous ne faites pas attention elles feront n’importe quoi.
2
5. On s’intéresse maintenant à la régularité des différentes familles d’ondelettes. Regardez les toon0171,toon0172,toon0173. En suivant le modèle de ces scripts, calculez les
dérivées (par différences finies) d’une BL5 et comparez les à celles d’une D8, d’une
D20 ? Quelle ondelette est la plus régulière ?
6. On s’intéresse maintenant au contenu fréquentiel des ondelettes. Regardez les toon¬
0181,toon0182,toon0183,toon0184. Que font les scripts 183 et 184 ? Comparez les figures obtenues pour ces deux scripts. Que montrent-elles ? Quel est l’avantage des
symmlettes par rapport à l’ondelette de Haar ? Quel est le rapport avec la régularité ?
3. Transformée en ondelettes Le but de cette partie est d’étudier les transformées en ondelettes de quelques signaux et de comprendre leur propriétés.
1. Regardez les toon0151,toon0152,toon0161. Que représentent les différent graphes ?
Quelle est la famille d’ondelette utilisée ? Où se trouvent les coefficients d’ondelette de
grande amplitude ?
2. Comparaison entre la transformée de la fonction sinus avec l’ondelette de Haar et une
autre ondelette plus régulière. Regardez les toon0311,toon0312,toon0411,toon0412,
toon431,toon432,toon433,toon434. Quelle est l’ondelette plus régulière utilisée ici ?
En réutilisant le code de ces scripts, représentez l’approximation du sinus obtenue en
gardant les 32 coefficients de la transformée en ondelettes de Haar correspondant aux
plus basses résolutions et en mettant les autres à 0. Représentez ensuite l’approximation du sinus obtenue en gardant les 32 coefficients de la transformée en ondelettes de
Haar les plus grands en amplitude et en mettant les autres à 0. Faites la même chose
pour la base d’ondelette plus régulière. Finalement faites la même chose avec 64 coefficients (et deux familles d’ondelettes et les deux façons de choisir les coefficients).
Imprimer les 8 figures. Commenter.
3. Que nous montrent les scripts 0331 à 0336 ?
4. Regardez les toon341,toon342. Que nous montrent-il ? Faites les liens avec le contenu
fréquentiel des ondelettes et les scripts 0181 à 0183.
Le compte-rendu sera à envoyer au format pdf à
[email protected] avant le cours du
6 janvier.
3

Documents pareils

TP8:ONDELETTES 2D, COMPRESSION ET

TP8:ONDELETTES 2D, COMPRESSION ET Pour aller dans ce dossier à partir de votre répertoire Bureau/TIVA_TP8, faites cd(matlabroot) puis cd toolbox/Wavelab850/Workouts/Toons/ La commande ls vous permet d’avoir la liste de tous le fich...

Plus en détail