Exercice

Ecrivez un fichier de fonction dont la syntaxe est:

[y,start] = subfilt(sig,h,start)

et qui décompose convolue un signal sig de support [start,end] avec un filtre h de support [-length(h)+1,0] puis le sous-échantillonne en ne gardant qu'une valeur sur deux de manière à garder l'échantillon situé à l'indice 0. La sortie start est le premier indice du support de y. Astuce: utiliser la fonction maison isodd(n) qui renvoie 1 si n est impair et 0 si n est pair.

Solution Les lignes de commentaires après la définition de syntaxe constituent l'aide en ligne. Faites 'help subfilt' dans la fenêtre de commande pour vérifier.

Utilisez cette fonction pour définir le fonction:

[e,w,start] = decomp(sig,h,g,start)

qui effectue la décomposition d'un signal en sa représentation e a la résolution plus grossière en utilisant le filtre h, et ses coefficients d'ondelettes w avec le filtre g. Le sous-échantillonnage garde l'échantillon en 0 et les paramètres start sont les mêmes que pour subfilt.

Solution

Passons à la reconstruction. Le symétrique de subfilt sera une fonction

y = overfilt(sig,h)

Solution

qui suréchantillonne sig par insertion de zéros en conservant la première valeur, puis convolue le résultat avec h.

Utilisez ensuite overfilt pour effectuer la reconstruction de sig à partir de e et w:

sig = recons(e,w,h,g)

Solution

 


Suite