Produit de convolution

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher

En mathématiques, le produit de convolution est un opérateur bilinéaire et un produit commutatif, généralement noté « \ast », qui à deux fonctions f et g sur un même domaine infini, fait correspondre une autre fonction « f\ast g » sur ce domaine, qui en tout point de celui-ci est égale à l'intégrale sur l'entièreté du domaine (ou la somme si celui-ci est discret) d'une des deux fonctions autour de ce point, pondérée par l'autre fonction autour de l'origine - les deux fonctions étant parcourues en sens contraire l'une de l'autre (nécessaire pour garantir la commutativité).

Convolution d'une fonction porte par elle-même.

Le produit de convolution généralise l'idée de moyenne glissante et est la représentation mathématique de la notion de filtre linéaire. Il s'applique aussi bien à des données temporelles (en traitement du signal par exemple) qu'à des données spatiales (en traitement d'image). En statistique, on utilise une formule très voisine pour définir la corrélation croisée.

Définition du produit de convolution[modifier | modifier le code]

Le produit de convolution de deux fonctions réelles ou complexes f et g, est une autre fonction, qui se note généralement « f\ast g » et qui est définie par :

 (f\ast g) (x) = \int_{-\infty}^{+\infty} f(x-t) \cdot g(t) \mathrm{d}t = \int_{-\infty}^{+\infty} f(t) \cdot g(x-t) \mathrm{d}t

ou encore, pour des suites (on peut parler d'utilisation de la mesure de comptage) :

(f \ast g)(n) = \sum_{m=-\infty}^{\infty} {f(n - m)\cdot g(m)} \, = \sum_{m=-\infty}^{\infty} {f(m)\cdot g(n - m)}.

(mais dans ce qui suit, nous n'utiliserons que la version "continue").

On peut considérer cette formule comme une généralisation de l'idée de moyenne mobile.

Pour que cette définition ait un sens, il faut que f et g satisfassent certaines hypothèses ; par exemple, si ces deux fonctions sont intégrables au sens de Lebesgue (c'est-à-dire que l'intégrale de leur module est finie), leur produit de convolution est défini pour presque tout x et est lui-même intégrable.

Propriétés du produit de convolution[modifier | modifier le code]

Commutativité[modifier | modifier le code]

Le produit de convolution est commutatif : par changement de variable  (f\ast g) (x)  
\stackrel{\mathrm {def.}}{=} \int_{-\infty}^{+\infty} f(x-t) \cdot g(t) \, \mathrm{d}t 
= \int_{+\infty}^{-\infty} f(T) \cdot g(x-T) \, \mathrm{d}(-T) 
= \int_{-\infty}^{+\infty} f(T) \cdot g(x-T) \, \mathrm{d}T \;
\stackrel{\mathrm {def.}}{=}  (g\ast f) (x)

T=x-t, soit t=x-T, et \mathrm{d}t=\mathrm{d}(-T) .

Distributivité[modifier | modifier le code]

Le produit de convolution est distributif sur l'addition : (f\ast (g+h)) (x) 
\stackrel{\mathrm {def.}}{=}  \int_{-\infty}^{+\infty} f(x-t) \cdot (g(t)+h(t)) \, \mathrm{d}t 
= \int_{-\infty}^{+\infty} [f(x-t) \cdot g(t)+ f(x-t) \cdot h(t)] \, \mathrm{d}t

 = \int_{-\infty}^{+\infty} f(x-t) \cdot g(t) \, \mathrm{d}t + \int_{-\infty}^{+\infty} f(x-t) \cdot h(t) \, \mathrm{d}t 
\stackrel{\mathrm {def.}}{=} (f\ast g)(x) + (f\ast h) (x)

Associativité[modifier | modifier le code]

Le produit de convolution est associatif (pour des fonctions intégrables, de façon à pouvoir appliquer le théorème de Fubini) :  ((f\ast g)\ast h) (y)  
\stackrel{\mathrm {def.}}{=} \int_{-\infty}^{+\infty}\left(\int_{-\infty}^{+\infty} f((y-x)-t) \cdot g(t) \, \mathrm{d}t\right)\cdot h(x)\, \mathrm{d}x

= \int_{-\infty}^{+\infty}\int_{-\infty}^{+\infty} f(y-T) \cdot g(T-x)\cdot h(x) \, \mathrm{d}x\, \mathrm{d}T
= \int_{-\infty}^{+\infty}f(y-T) \cdot\left(\int_{-\infty}^{+\infty}  g(T-x)\cdot h(x) \, \mathrm{d}x\right)\, \mathrm{d}T
\stackrel{\mathrm {def.}}{=}  (f\ast(g\ast h)) (y).

T=x+t, soit t=T-x, et \mathrm{d}t=\mathrm{d}T.

Cet ensemble de fonctions, muni de l'addition et du produit de convolution, forme donc un pseudo-anneau non unitaire : l'élément unité \delta devrait vérifier (pour tout x et toute fonction f)  f(x) =\int_{-\infty}^{+\infty} f(t) \cdot \delta(x-t) \, \mathrm{d}t  ; et on vérifie aisément que ce n'est possible que si \delta est la distribution de Dirac… qui n'est pas une fonction. De fait, le cadre naturel pour de bonnes généralisations du produit de convolution est celui de la théorie des distributions, mais il n'est pas abordé dans cet article. On trouvera dans cette section de l'article consacré aux distributions une définition précise du produit de convolution dans ce cas, ainsi qu'une étude de ses principales propriétés.

Compatibilité avec les translations[modifier | modifier le code]

Le produit de convolution est compatible avec les translations. Si on note  \tau_h la translation sur les fonctions définie par

 ( \tau_h f )(x) = f ( x-h ) \,, alors
 ((\tau_h f) \ast g) (x) = \int_{-\infty}^{+\infty} f(x-t -h) \cdot g(t) \mathrm{d}t = (\tau_h(f \ast g)) (x)

Dans le cadre plus large de la convolution des mesures,

 \tau_h f= \delta_h\ast f,

δh désigne la masse de Dirac en h. Ainsi la compatibilité avec les translations n'est qu'une conséquence immédiate de l'associativité du produit de convolution des mesures:

(\tau_h f) \ast g = (\delta_h\ast f) \ast g =  \delta_h\ast (f \ast g)  =  \tau_h(f \ast g).

Cette propriété doit par ailleurs être rapprochée des applications des produits de convolution au filtrage.

Intégration d'un produit de convolution[modifier | modifier le code]

On a (en appliquant le théorème de Fubini) la formule : \int_{-\infty}^{+\infty}(f\ast g)(t)\,\mathrm{d}t=\left(\int_{-\infty}^{+\infty}f(t)\,\mathrm{d}t\right)\cdot\left(\int_{-\infty}^{+\infty}g(t)\,\mathrm{d}t\right)

Dérivation[modifier | modifier le code]

Dans le cas d'une seule variable, si f et g sont deux fonctions de classe au moins \mathrm{C}^1 et que f' et g' appartiennent à L1 alors on a

(f * g)' = f' * g = f * g'.

Plus généralement dans les cas de fonctions de plusieurs variables on a

\frac{\partial}{\partial x_i}(f * g) = \frac{\partial f}{\partial x_i} * g = f * \frac{\partial g}{\partial x_i}.

Parité de la convolution de deux fonctions paires[modifier | modifier le code]

  • Si les fonctions f,g de départ sont paires alors f \ast g est paire :

 
\begin{align}(f \ast g)(-x) &= \int_{-\infty}^{+\infty} f(-x-t) \cdot g(t)\mathrm{d}t \\
&= \int_{-\infty}^{+\infty} f(-x+ u) \cdot g(-u)\mathrm{d}u \\
&= \int_{-\infty}^{+\infty} f(x - u) \cdot g(u)\mathrm{d}u = (f \ast g)(x) \end{align}

Cette propriété combinée avec l'invariance sous translation permet de prouver que le produit de convolution préserve les symétries axiales des fonctions (sous réserve bien sûr que g soit paire) : si f(x-h) = f(-x-h) alors (f \ast g)(x-h) = (f \ast g)(-x-h). En effet, la première équation est équivalente à \tau_h(f)(x) = \tau_h(f)(-x) ce qui nous donne   ((\tau_h f) \ast g)(x) = ((\tau_h f) \ast g)(-x) = \tau_h (f \ast g)(x) = \tau_h (f \ast g)(-x) qui est le résultat demandé.

Produit de convolution et transformée de Fourier[modifier | modifier le code]

La transformée de Fourier d'un produit de convolution s'obtient par multiplication des transformées de Fourier des fonctions :

  • si f et g sont intégrables alors\mathcal{F}(f\ast g)=\mathcal{F}(f)\cdot\mathcal{F}(g)~;
  • si f est intégrable et si g est de carré intégrable alors\mathcal{F}(f\ast g)=\mathcal{F}(f)\cdot\mathcal{F}(g)\text{ donc }f\ast g=\mathcal{F}^{-1}\left(\mathcal{F}f\cdot\mathcal{F}g\right)~;
  • si f et g sont de carré intégrable alors f\ast g = \mathcal{F}^{-1}\left(\mathcal{F}(f)\cdot\mathcal{F}(g)\right)

\mathcal{F} désigne la transformation de Fourier et \mathcal{F}^{-1} la transformation de Fourier inverse (« théorème de convolution »).

Ces formules se restreignent à l'espace de Schwartz, puis s'étendent partiellement à la transformation de Fourier pour les distributions tempérées, appliquée par exemple à la convolée d'une distribution tempérée par une distribution à support compact. Plus généralement, si S et T sont deux distributions tempérées dont l'une est un convoleur, alors leurs transformées de Fourier sont des distributions tempérées dont l'une est un multiplieur, et elles vérifient :\mathcal{F}(S\ast T)=\mathcal{F}(S)\cdot\mathcal{F}(T)\text{ donc }S\ast T=\mathcal{F}^{-1}\left(\mathcal{F}S\cdot\mathcal{F}T\right).

Dans ce cadre, la distribution de Dirac (convoleur neutre) et la fonction constante 1 (multiplieur neutre) sont deux distributions tempérées (paires) transformées de Fourier l'une de l'autre.

L'intérêt principal du calcul du produit de convolution par transformées de Fourier est que ces opérations sont moins coûteuses en temps pour un ordinateur que le calcul direct de l'intégrale.

Utilisation du produit de convolution[modifier | modifier le code]

  • Le produit de convolution est utilisé dans le traitement du signal, lorsque l'on utilise des filtres (passe-bas, passe-haut, passe-bande). Si l'on a un signal entrant \scriptstyle e(t) et un élément filtrant ayant une fonction de transfert \scriptstyle h(t) alors le signal de sortie \scriptstyle s(t) sera la convolution de ces deux fonctions :
 s(t)=e(t)\ast h(t) (produit de convolution) et  S=E.H (produit simple de deux fonctions)
\scriptstyle E, \scriptstyle S et \scriptstyle H sont les transformées de Fourier des fonctions du temps e(t), s(t) et h(t).

Produit de convolution de mesures[modifier | modifier le code]

Convolution de mesures sur la droite réelle[modifier | modifier le code]

Par extension, on peut définir le produit de convolution de deux mesures sur \scriptstyle (\R,\mathcal B(\R)),\ avec l'interprétation probabiliste suivante : lorsque les lois de probabilité \scriptstyle \mu et \scriptstyle \nu de deux variables aléatoires réelles indépendantes n'ont pas toutes les deux des densités par rapport à la mesure de Lebesgue, la loi de leur somme est le produit de convolution de \scriptstyle \mu par \scriptstyle \nu, noté \scriptstyle \mu\ast\nu, et défini, pour toute partie borélienne \scriptstyle A\ de \scriptstyle\R,\ par

 \mu\ast\nu(A)=\int_{\R^2}\ 1_A(x+y)\, \mu(\mathrm dx)\,\nu(\mathrm dy).

L'intégrale d'une fonction θ par rapport à la mesure \scriptstyle \mu\ast\nu\ est donnée par

 \int_{\R}\ \theta(s)\, (\mu\ast\nu)(\mathrm ds)\ =\ \int_{\R^2}\ \theta(x+y)\, \mu(\mathrm dx)\,\nu(\mathrm dy).

Le produit de convolution \scriptstyle \mu\ast\nu\ est la mesure image par la fonction φ, définie sur \scriptstyle\R^2\ par φ(x,y)=x+y, de la mesure produit \scriptstyle \mu\otimes\nu.\ En particulier, si \scriptstyle \mu et \scriptstyle \nu ont toutes les deux des densités, respectivement \scriptstyle f et \scriptstyle g, par rapport à la mesure de Lebesgue, alors \scriptstyle \mu\ast\nu\ a aussi une densité par rapport à la mesure de Lebesgue, et une de ses densités est \scriptstyle f\ast g.

Convolution de mesures sur un groupe commutatif[modifier | modifier le code]

Cette définition du produit de convolution peut être étendue à un groupe topologique commutatif \scriptstyle (G,\oplus)\ muni de sa tribu borélienne, de manière immédiate : pour toute partie borélienne \scriptstyle A\ de G,

 \mu\ast\nu(A)=\int_{G^2}\ 1_A(x\oplus y)\, \mu(\mathrm{d}x)\,\nu(\mathrm{d}y).

L'intégrale d'une fonction θ par rapport à la mesure \scriptstyle \mu\ast\nu\ est donnée par

 \int_{G}\ \theta(s)\, (\mu\ast\nu)(\mathrm{d}s)\ =\ \int_{G^2}\ \theta(x\oplus y)\, \mu(\mathrm{d}x)\,\nu(\mathrm{d}y).

La notion de mesure de Haar du groupe G s'écrit alors en termes de produit de convolution : μ est une mesure de Haar de G si et seulement si, pour tout élément g de G,

 \delta_g\ast\mu\ =\ \mu.

Approche vulgarisée[modifier | modifier le code]

La manière la plus simple de représenter le produit de convolution consiste à considérer la fonction δ de Dirac δa(x) ; cette "fonction" vaut 0 si x ≠ a et son intégrale vaut 1. Ceci peut paraître contre-intuitif, mais on peut l'imaginer comme la limite d'une suite de fonctions, des courbes en cloche ou des rectangles ayant toutes la même surface 1, mais de plus en plus fines (donc de plus en plus hautes) ; lorsque la largeur des courbes tend vers 0, sa hauteur tend vers +∞, mais la surface reste égale à 1. Pour des raisons pratiques, on représente souvent le dirac comme un bâton placé en a et de hauteur 1.

dirac : limite d'une suite de fonctions
Dirac : limite d'une suite de fonctions

Du fait de sa forme, on appelle aussi parfois un dirac « fonction impulsion ». Le produit de convolution par un dirac δa correspond à une translation de la fonction initiale d'une valeur de a

f \ast \delta_a(x) = f(x-a)

produit de convolution d'une fonction par un dirac
Produit de convolution d'une fonction par un dirac

On voit que δ0 laisse invariant une fonction, c'est l'élément neutre du produit de convolution

f\ast\delta_0(x) = f(x-0)

Si l'on considère maintenant le produit de convolution par une somme pondérée de deux diracs (α.δa + β.δb), on obtient la superposition de deux courbes dilatées.

produit de convolution d'une fonction par une somme pondérée de deux diracs
Produit de convolution d'une fonction par une somme pondérée de deux diracs

Considérons maintenant une fonction porte Pa,b ; c'est une fonction qui vaut 1/(b-a) entre a et b, et 0 ailleurs (son intégrale vaut 1). Cette fonction peut être vue comme une succession de diracs. La convolution de f par Pa,b va donc s'obtenir en faisant glisser f sur l'intervalle [a;b]. On obtient un « élargissement » de f.

produit de convolution d'une fonction par une fonction porte
Produit de convolution d'une fonction par une fonction porte

Si l'on considère maintenant une fonction quelconque g, on peut voir g comme une succession de diracs pondérés par la valeur de g au point considéré. Le produit de convolution de f par g s'obtient donc en faisant glisser la fonction f et en la dilatant selon la valeur de g.

produit de convolution d'une fonction par une fonction quelconque
Produit de convolution d'une fonction par une fonction quelconque

Le produit de convolution et le filtrage[modifier | modifier le code]

Le produit de convolution est lié à la notion de filtrage sous deux conditions, à savoir la linéarité et l'indépendance du filtre vis-à-vis du temps (système invariant). À partir de ces deux conditions, l'opérateur de convolution peut être construit. La convolution correspond à la réponse du filtre à une entrée donnée (notée e(t)). Le filtre est entièrement caractérisé par sa réponse impulsionnelle h(t). Mise en équation, la réponse du filtre est s(t)= h(t)\ast e(t).

La construction de l'opérateur de convolution s'élabore de la manière suivante. Tout d'abord, on s'intéresse aux deux conditions imposées sur le filtre. On note f(e) le filtrage réalisé par le filtre sur l'entrée e. La linéarité du filtre implique que :

f(\lambda e)=\lambda f(e)

f(e_1+e_2)=f(e_1)+f(e_2)

On peut noter que la réponse du filtre à un signal nul est nulle. L'indépendance du temps se résume par :

f(e^d) = (f(e))^d

e^d est le signal e retardé de la quantité d.


À partir de là, on peut construire la réponse du filtre linéaire et indépendant du temps à l'entrée e(t). En effet, comme le filtre est linéaire, on peut décomposer le signal e(t) en parties indépendantes, à l'aide d'un ensemble de signaux e_i avec des supports disjoints compacts de telle sorte que e(t) = \Sigma_i e_i(t). On injecte chaque partie du signal dans le filtre puis l'on somme les différentes réponses. Ainsi le filtrage donnera : f(e) = \Sigma_i f(e_i). Cette décomposition temporelle de e(t) peut s'effectuer de manière récursive sur les signaux e_i(t). À la fin, on obtient une suite de signaux dont le support se résume à un point. Ces signaux, élémentaires parce que non décomposables temporellement, correspondent chacun d'entre eux à la distribution de dirac \delta(t-\tau) centrée en \tau avec une amplitude e(\tau), l'impulsion s'écrit \delta(t-\tau).e(\tau). Il suffit de sommer toutes les impulsions suivant la variable \tau pour obtenir le signal e(t) :

e(t)=\int \delta(t-\tau) \cdot e(\tau) \,\mathrm{d}\tau

On applique l'opération de filtrage sur e(t). Comme le filtre est linéaire et indépendant du temps, nous avons :

f(e) = \int f(\delta(t-\tau))\cdot e(\tau) \,\mathrm{d}\tau

 = \int e(\tau)\cdot f(\delta(t-\tau)) \,\mathrm{d}\tau \ (linéarité)
 = \int e(\tau)\cdot (f\circ\delta)(t-\tau) \,\mathrm{d}\tau \ (indépendance du temps)

La réponse du filtre f à l'impulsion \delta(t) est nommée la réponse impulsionnelle du filtre h(t). Finalement on a :

f(e) = \int e(\tau)\cdot h(t-\tau) \,\mathrm{d}\tau

qui n'est qu'autre que le produit de convolution.

En conclusion : si le filtre est linéaire et indépendant du temps, alors il est entièrement caractérisé par sa réponse h(t) et la réponse du filtre à l'entrée e(t) est donnée par l'opérateur de convolution.


Autre conclusion fondamentale des filtres linéaires et indépendants du temps: si l'on entre un signal e(t)=e^{2\pi\jmath f t}, le signal de sortie sera :

s(t) = \int e^{2\pi\jmath f \tau} h(t-\tau) \,\mathrm{d}\tau = \int e^{2\pi\jmath f (t-\tau)} h(\tau) \,\mathrm{d}\tau

s(t) = e^{2\pi\jmath f t}\int e^{-2\pi\jmath f \tau} h(\tau) \,\mathrm{d}\tau

s(t) = e^{2\pi\jmath f t} H(f)

s(t) sera aussi un signal de la forme e^{2\pi\jmath f t} au facteur H(f) près. Ce facteur n'est autre que la transformée de Fourier de h(t).

Notes et références[modifier | modifier le code]

  • Piskounov N. Calcul Différentiel et Intégral, 12e édition Ellipses : éditions Mir Moscou, 1993. (tome 2, page 463 et suivantes) (théorème de convolution)
  • Théorie de l'intégration, Marc Briane et Gilles Pagès, Vuibert, 2012, ISBN 978-2-311-00738-1

Voir aussi[modifier | modifier le code]

Articles connexes[modifier | modifier le code]

Bibliographie[modifier | modifier le code]

(en) Ronald N. Bracewell, Convolution Theorem. The Fourier Transform and Its Applications, New York, McGraw-Hill,‎ 1999, 3e éd.

Liens externes[modifier | modifier le code]