Approximations
Approximation par projection a priori.
Le signal e à l'échelle la plus grossière
permet de construire la projection du signal d'origine sur la
résolution numéro 4. Pour cela, il suffit de mettre
à zéro les coefficients d'ondelettes et d'opérer
une reconstruction.
Exercice
Nous allons repartir de l'exercice 6. Ouvrez donc votre fichier
EX6.m (ou SOL6.m) et enregistrez-le sous le nom de 'EX7.m'.
- Commencez par adapter la décomposition et la
reconstruction pour ne travailler que sur trois échelles.
Attention à la synchronisation!
- Juste après la dernière décomposition,
stocker la longueur de e: ce sera en effet le nombre de
données que nous retiendrons du signal.
- Modifiez le code source pour que les signaux w1, w2
et w3 soient mis à zéro avant la
reconstruction tout en gardant leur taille. La création
d'une matrice nulle Z de même taille que M
se fait l'instruction Z = zeros(size(M));
- Effacez le contenu de la figure 1 par la commande
clf. Affichez en figure 1 le signal approximé
obtenu à la fin de la reconstruction.
- Affichez en figure 2 la différence entre signal
approximé et signal d'origine.
- A la suite,évaluez l'énergie moyenne de
l'erreur. Pour cela, calculez l'erreur d'approximation d
puis divisez le produit scalaire d*d' (d est un
vecteur ligne!) par le nombre d'échantillons. Faites
afficher le résultat sur la fenêtre de travail, ainsi
que le nombre de coefficients utilisés.
Où se situent les plus grandes erreurs?
Solution (commande SOL7)
Approximation par concours
On commence par construire une fonction de sélection des n
plus grands coefficients d'ondelettes.
Exercice
Écrire une fonction de syntaxe
y = greatest(x,n)
qui garde dans x les n éléments de plus
grande amplitude et met à zéro les autres.
Plan de l'algorithme:
- affecter à la variable z la valeur absolue de
x en utilisant la fonction abs
- trier les éléments de z à l'aide de la
fonction sort. Le résultat est par ordre
croissant.
- extraire de ce tri la nème plus grande
valeur et l'affecter à t.
- la routine i=find(x) renvoie l'ensemble i
des indices des éléments de x qui ne sont
pas nuls. Par ailleurs, l'opérateur de comparaison "plus
petit que" se note <. Combiner ces deux fonctions pour
mettre à zéro les éléments de
x dont la valeur absolue est plus petite que
t.
Solution
Application
On repart de l'exercice 6; ouvrez le fichier EX6.m (ou SOL6.m) et
enregistrez-le sous le nom de 'EX8.m'.
- avant la reconstruction, utilisez plot5 pour tracer
en fenêtre 3 les tris par valeur absolue des coefficients
d'échelle et d'ondelettes. Calculez le nombre n
(indépendant de l'échelle) de coefficients
d'ondelettes qu'il faut garder aux 4 échelles pour avoir le
même nombre de données pour la reconstruction du
signal que dans l'exercice précédent. Constatez
qu'il permet d'espérer une bonne reconstruction.
- avant la reconstruction, modifiez w1, w2, w3, w4 pour
ne garder que les n plus grandes valeurs
- tracez par plot5 les coefficients ainsi obtenus en figure
4.
- comme dans l'exercice précédent, à la fin
du source tracez en figure 1 le signal approximé obtenu
à la fin de la reconstruction et en figure 2 la
différence entre signal approximé et signal
d'origine.
- calculez ensuite l'énergie de l'erreur comme dans
l'exercice précédent.
- finalement, affichez le nombre de coordonnées
utilisées
Comment améliorer le tri précédent?
Solution (command SOL8)
Amélioration
On va améliorer la procédure de l'exercice
précédent. Pour cela on va faire un tri global sur les
coefficients d'ondelettes au lieu de le faire échelle par
échelle. On repart de l'application précédente
dont on enregistre le source en 'EX9.m'
- commencez par ecrire une routine 'threshold' qui met
à zéro tooutes le valeurs d'un signal lorsque sa
valeur absolue est en dessous d'un seuil passé en
paramètre.
- Remplacez l'affichage du tri échelle par échelle
par un tri sur l'ensemble des valeurs absolues des coeficients
d'ondelettes. Calculez le nombre n de coefficients
d'ondelettes qu'il faut garder pour avoir le même nombre de
données pour la reconstruction du signal que dans les deux
exercices précédents. Constatez qu'il permet
d'espérer une bonne reconstruction. Calculer la valeur du
seuil à partir du tableau de tri.
- avant la reconstruction, modifiez w1, w2, w3, w4 pour
ne garder que les coefficients d'ondelette dont la valeur
absolue dépasse le seuil.
- comme dans les exercices précédents, à la
fin du source tracez en figure 1 le signal approximé obtenu
à la fin de la reconstruction et en figure 2 la
différence entre signal approximé et signal
d'origine.
- calculez ensuite l'énergie de l'erreur comme dans
l'exercice précédent.
- finalement, affichez le nombre de coordonnées
utilisées
Solution (command SOL9)
C'est fini!