Analyse

Le produit de convolution

Retourner une fonction, la faire glisser sur une autre, multiplier, mesurer l'aire : un seul geste, qui explique aussi bien la somme de deux dés que le lissage d'une courbe, la réponse d'un circuit électrique ou le flou d'une photographie.

L'idée en une phrase

La convolution de deux fonctions f et g fabrique une troisième fonction, notée f ∗ g : en chaque point t, elle fait la moyenne de f pondérée par g retournée et placée en t.

(f ∗ g)(t) = ∫ f(τ) g(t − τ) dτ     et, pour des suites,     (f ∗ g)[n] = Σk f[k] g[n − k]

La variable τ (« tau ») est une variable muette : elle parcourt tout l'axe pendant qu'on calcule une seule valeur, celle du point t. Le calcul se fait toujours en quatre gestes :

1. Retournerg(τ) devient g(−τ) : la courbe est vue dans un miroir.
2. Glisseron la décale de t : g(t − τ).
3. Multiplieron multiplie point par point par f(τ).
4. Mesurer l'airel'aire sous ce produit est le nombre (f ∗ g)(t).

Quelques mots qui reviendront : une porte est une fonction qui vaut 1 sur un intervalle et 0 ailleurs ; le support d'une fonction est l'endroit où elle n'est pas nulle ; on appelle noyau la fonction g quand elle sert de « fenêtre » de pondération ; la réponse impulsionnelle d'un système est sa réaction à un choc très bref.

Où rencontre-t-on la convolution ?

Domainefgf ∗ gPlanche
Analyseune porteune porteun triangle, puis des courbes de plus en plus lisses1
Probabilitésloi de Xloi de Y (indépendante)loi de la somme X + Y2
Algèbrecoefficients de Pcoefficients de Qcoefficients du produit PQ2
Mesure, statistiquesignal bruitéfenêtre de moyennesignal lissé3
Électricité, mécaniqueexcitation x(t)réponse impulsionnelle hréponse du système4
Optique, photographiescène nettetache de flouphoto floue5
Chaleurtempérature initialenoyau de la chaleur (une gaussienne qui s'élargit)température à l'instant t—
Planche 1

Retourner, glisser, multiplier, mesurer l'aire

Question : que calcule-t-on exactement au point t ? On garde f fixe (en bleu), on retourne g et on la place en t (en orange), on multiplie les deux courbes point par point : l'aire du produit (en rouge) est la valeur (f ∗ g)(t). En faisant varier t, on dessine toute la fonction f ∗ g dans le canevas du bas.

En haut : f(τ) fixe, g(t − τ) retournée et décalée (en gris pointillé, g avant retournement), et leur produit, dont l'aire est la valeur cherchée. Le trait vertical marque τ = t, l'endroit où arrive g(0).
En bas : f ∗ g tracée au fur et à mesure par le calcul numérique de l'aire, sur la formule exacte en pointillé vert.
décalage t—
aire rouge (calcul numérique)—
formule exacte de (f ∗ g)(t)—
écart numérique / exact—
aire de f × aire de g—
aire totale de f ∗ g—
|f ∗ g − g ∗ f| au point t—
Planche 2

Le cas discret : la somme de plusieurs dés

Question : pourquoi la somme de deux dés dessine-t-elle un triangle, et celle de dix dés une cloche ? Pour obtenir la somme n, on passe en revue chaque valeur k déjà atteinte par les premiers dés, et on compte les façons de compléter avec le dernier dé, qui doit donner n − k. C'est la formule Σ f[k] g[n − k] : la même machine que la planche 1, où l'intégrale devient une somme.

La machine discrète : en haut, f[k], le nombre de façons d'obtenir k avec les premiers dés ; en dessous, g[n − k], le dernier dé retourné et placé en n. Les cases rouges sont celles où les deux se recouvrent : on les additionne.
La loi de la somme : probabilités exactes obtenues par convolution, fréquences observées sur les lancers simulés, et courbe en cloche de même moyenne et de même variance.
nombre de cas possibles—
convolution / énumération de tous les cas—
moyenne : calculée / D(F + 1)/2—
variance : calculée / D(F² − 1)/12—
écart max à la courbe en cloche—
lancers simulés—
écart max fréquence / probabilité—
Planche 3

Lisser un signal bruité

Question : combien faut-il lisser ? Une mesure est faite d'un signal utile (vert) noyé dans un bruit aléatoire (gris). La lisser, c'est la convoluer par un noyau d'aire 1 : chaque point est remplacé par une moyenne pondérée de ses voisins. Le paramètre m règle la demi-largeur de la fenêtre.

Mesure bruitée (1024 points), signal vrai et signal lissé. En encart, le noyau utilisé.
Erreur en fonction de m : bruit résiduel qui baisse, déformation du signal qui monte, erreur totale mesurée et sa prévision √(déformation² + bruit²).
bruit en entrée (écart-type mesuré)—
bruit après lissage, mesuré—
bruit après lissage, prévu σ·√Σw²—
déformation du signal (écart quadratique)—
erreur totale (écart quadratique)—
meilleur réglage trouvé par balayage—
Planche 4

La mémoire d'un circuit RC

Question : pourquoi la réponse d'un système linéaire est-elle une convolution ? Un condensateur chargé à travers une résistance n'oublie pas d'un coup : une tension appliquée à l'instant s pèse encore sur la sortie à l'instant t, avec un poids qui s'efface en h(t − s) = e−(t−s)/τ/τ, où τ = RC est la constante de temps. La sortie est la somme de toutes ces mémoires : y = x ∗ h. On la compare à la solution exacte de l'équation du circuit, τy′ + y = x.

Entrée x(s), avec la mémoire du circuit h(t − s) retournée et placée à l'instant t (hauteur ramenée à 1), et leur produit, dont l'aire donne la sortie à l'instant t.
Sortie y = x ∗ h calculée par la somme de convolution, sur la solution exacte de τy′ + y = x en pointillé.
constante de temps τ—
écart max convolution / exact (pas 0,004 s)—
même écart avec un pas de 0,008 s—
ordre mesuré log₂(rapport des écarts)—
——
——
Planche 5

Le flou d'une photographie, et l'art de le défaire

Question : si une photo floue est une convolution, peut-on la « déconvoluer » ? Chaque point lumineux de la scène s'étale en une petite tache, le noyau de flou : la photo est la scène convoluée par cette tache, en deux dimensions cette fois. La transformée de Fourier change ce produit de convolution en un simple produit… et suggère de le défaire par une division. Les trois onglets montrent le flou, le théorème de convolution, puis le piège de la division.

La scène nette f (128 × 128 pixels).
Le noyau g, grossi : la tache que devient un point.
La photo floue f ∗ g, calculée pixel par pixel.
pixels du noyau—
lumière totale : nette / floue—
écart relatif (aire conservée)—
multiplications du calcul direct—
|f̂| : le spectre de la scène (fréquences basses au centre, échelle logarithmique).
|ĝ| : la fonction de transfert du flou, de 0 (noir) à 1 (blanc) ; en rouge, les fréquences où |ĝ| < 10⁻².
|f̂ · ĝ| : le spectre de la photo floue, simple produit des deux.
écart max : calcul direct / Fourier—
partie imaginaire résiduelle max—
durée du calcul direct—
durée par transformée de Fourier rapide—
plus petite valeur de |ĝ|—
Photo floue + bruit du capteur.
Division naïve : f̂ ≈ ĥ / ĝ, où ĥ est le spectre de la photo floue bruitée.
Filtre de Wiener : f̂ ≈ ĥ · ĝ* / (|ĝ|² + K).
erreur de la photo floue bruitée—
erreur après division naïve—
erreur après Wiener—
amplification maximale 1/|ĝ|—

Une brève histoire de la convolution

Synthèse

Un seul geste

Retourner g, la faire glisser, multiplier par f, mesurer l'aire. La somme remplace l'intégrale dans le cas discret ; une image se traite de la même façon en deux dimensions.

Ce qui s'additionne

Les aires se multiplient, les supports s'additionnent, et pour des lois de probabilité les moyennes et les variances s'ajoutent. Le résultat est toujours au moins aussi régulier que le plus régulier des deux facteurs.

Fourier change tout

La transformée de Fourier change la convolution en produit : c'est ce qui rend le calcul rapide. Mais défaire une convolution, c'est diviser, et diviser par presque rien amplifie le bruit : il faut régulariser.

Pour aller plus loin

Propriétés algébriques. La convolution est commutative (f ∗ g = g ∗ f, il suffit de poser u = t − τ), associative, distributive sur l'addition. Elle a un élément neutre, la « fonction » δ de Dirac, qui n'est pas une vraie fonction mais la limite de pics de plus en plus étroits d'aire 1 : l'impulsion brève de la planche 4 en est une approximation, et la sortie redessine alors la réponse impulsionnelle.

Dérivation et régularisation. (f ∗ g)′ = f′ ∗ g = f ∗ g′ : il suffit qu'un des deux facteurs soit dérivable pour que le produit le soit. C'est pourquoi convoluer par une gaussienne rend infiniment dérivable n'importe quelle fonction intégrable, et pourquoi les portes successives de la planche 1 donnent des raccords de plus en plus lisses (les B-splines).

Les trois transformées. Fourier : (f ∗ g)^ = f̂ · ĝ. Laplace : ℒ(f ∗ g) = F · G. Fonctions génératrices : le produit de polynômes de la planche 2. Dans chaque cas, une opération compliquée devient une multiplication.

Pages voisines du cahier. Le produit de convolution de deux gaussiennes (où les écarts-types s'ajoutent comme les côtés d'un triangle rectangle), la distribution δ de Dirac comme limite de gaussiennes, la transformée de Fourier et la transformée de Laplace prolongent chacune un aspect de cette page.