Tous droits réservés

Mosaïques spectrales

Art algorithmique et repliement spectral

Lors de la rédaction de mon tutoriel sur l'arithmétique flottante, j’ai découvert sur le site de Craig S. Kaplan que de fabuleux motifs pouvaient résulter d’artefacts numériques. J’ai même choisi d’utiliser un de ces motifs comme miniature pour le tutoriel.

En fouillant un peu sur son site, on découvre aussi qu’on peut créer ce genre de motifs par repliement de spectre lors du rendu de certaines fonctions à deux paramètres, et j’ai voulu reproduire ce type de figures de mon côté. Le repliement de spectre est un phénomène lié à l’échantillonnage d’un signal en dessous d’une fréquence minimale donnée par le théorème d’échantillonnage de Shannon.

J’ai jeté mon dévolu sur la même fonction que ma source, à savoir (x,y)sin(x2+y2)(x, y) \mapsto \sin(x^2+y^2). Quand on la trace en utilisant une échelle de couleur, on obtient le motif hypnotisant (et presque normal) ci-dessous.

Fonction $(x, y) \mapsto \sin(x^2+y^2)$ sur $[-8; 8]^2$.
Fonction (x,y)sin(x2+y2)(x, y) \mapsto \sin(x^2+y^2) sur [8;8]2[-8; 8]^2.

Cette fonction présente des ondelettes qui ondulent de plus en plus rapidement à mesure qu’on s’éloigne du centre. C’est une situation idéale, car on aura toujours un moment où l’échantillonnage sera trop peu fréquent pour représenter la fonction correctement, et on observera alors des phénomènes de repliement de spectre lors du rendu.

En effectuant un rendu de la fonction sur l’intervalle [20;20]2[-20; 20]^2 pour différents nombre d’échantillons régulièrement espacés sur l’intervalle, c’est-à-dire différentes fréquences d’échantillonnage, on obtient les figures ci-dessous. Toutes ces figures sont obtenues pour un sous-échantillonnage massif, de l’ordre de 100 fois moins que nécessaire.

Artefacts de repliement de spectre.
Artefacts de repliement de spectre.

Regardez comme les motifs sont divers ! Certains feraient de très belles mosaïques, dans lesquelles les archéologues du futur férus de traitement du signal ne manqueront pas de voir le signe d’une civilisation technologique. Présentement, il faudra surtout retenir que le repliement de spectre peut transformer un signal en n’importe quoi.



6 commentaires

Je rencontre un peu la même chose mais pour moi, c’est un problème… D’ailleurs je pense que cet effet de repliement de spectre est bien plus souvent négatif que positif.

Les valeurs que peuvent prendre sin et cos à partir d’entiers et après multiplication du rayon et troncation en entier, on obtient certaines valeurs et pas d’autres. Ces valeurs jamais atteintes créent des artefacts fixes.

Illustration:

sphere.gif
sphere.gif

Si quelqu’un à un truc pour éviter ces artefacts, je suis pour.

PS: Y a une légère rotation axiale mais ça ne change rien, les artefacts sont présent avant ça.

PPS: Du coup, après réflexion hier, j’ai trouvé la réponse. Ces artefacs sont certainement dû à la représentation des nombres flottants plus que la précision de sinus et cosinus. Du coup, une solution simple plutôt que prendre plus de point c’est de réduire la taille de la sphère. Le résultat est impect.

sphere_total.gif
sphere_total.gif
+0 -0

Il y a un cas où le repliement de spectre est volontaire (hors expérimentations artistiques) c’est celui de l’image 24 (qui ressemble beaucoup à l’image d’origine).

Eh choisissant bien la fréquence d’échantillonnage, pour un signal périodique, on obtient un signal de même forme que celui d’origine mais de fréquence multipliée. Ça sert (servait ?) notamment dans le domaine des hautes fréquences, pour analyser et mesurer un signal qui dépasse les capacités de mesure du matériel.

Un autre cas d’utilisation qui est peut être un peu plus "surprenant" est celui des solveurs itératifs mutigrille. Vu de façon très simple, le cas d’école est celui de la résolution de PDE paraboliques comme une équation de diffusion. Lorsqu’on résout de manière itérative une équation de diffusion discrétisée, il se trouve que les grandes longueurs d’ondes sur l’erreur diffusent plus lentement que les petites longueurs d’ondes. La méthode multigrille exploite ce phénomène en relaxant l’équation sur des grilles moins bien résolues où les grandes longueurs d’ondes d’erreur apparaissent comme plus courtes par rapport à la taille de grille (exactement comme ce que mentionne @SpaceFox) pour qu’elles soient relaxées plus rapidement (et donc obtenir une meilleure convergence).

+1 -0

Non, c’est bien ce que j’ai écrit. Le pas de grille est plus grand, la longueur d’onde relative diminue donc. Si tu prends un sinus avec 3 points de grille par période puis que tu l’échantillonnes sur une grille deux fois plus lâche, tu n’auras plus que 1.5 points par période donc un sinus qui, rapporté à la taille de grille, a une longueur d’onde deux fois plus courte. Encore deux fois plus lâche et tu as 0.75 points par période.

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte