<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE document PUBLIC "-//CNX//DTD CNXML 0.5 plus MathML//EN" "http://cnx.rice.edu/cnxml/0.5/DTD/cnxml_mathml.dtd">
<document xmlns="http://cnx.rice.edu/cnxml" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:bib="http://bibtexml.sf.net/" xmlns:md="http://cnx.rice.edu/mdml/0.4" id="id2253685">
  <name>Décomposition Modale Empirique</name>
  <metadata>
  <md:version>1.3</md:version>
  <md:created>2008/06/24 09:30:26 GMT-5</md:created>
  <md:revised>2008/11/12 04:02:49.352 US/Central</md:revised>
  <md:authorlist>
      <md:author id="flandrin">
      <md:firstname>Patrick</md:firstname>
      
      <md:surname>Flandrin</md:surname>
      <md:email>flandrin@ens-lyon.fr</md:email>
    </md:author>
  </md:authorlist>

  <md:maintainerlist>
    <md:maintainer id="flandrin">
      <md:firstname>Patrick</md:firstname>
      
      <md:surname>Flandrin</md:surname>
      <md:email>flandrin@ens-lyon.fr</md:email>
    </md:maintainer>
  </md:maintainerlist>
  
  <md:keywordlist>
    <md:keyword>décomposition adaptative</md:keyword>
    <md:keyword>ondelettes</md:keyword>
    <md:keyword>signaux non stationnaires</md:keyword>
  </md:keywordlist>

  <md:abstract>La Décomposition Modale Empirique (ou EMD pour Empirical Mode Decomposition) est une méthode de décomposition adaptative, non paramétrique et locale de signaux non stationnaires. On en décrit le principe ainsi que la structure de l'algorithme associé, et on donne un exemple sur des données réelles.</md:abstract>
</metadata>
  <content>
    <para id="id2253699">Principe
 — La technique de Décomposition Modale Empirique (ou EMD pour “Empirical Mode Decomposition”) a été introduite par N.E. Huang et al., “The empirical mode decomposition and
Hilbert spectrum for nonlinear and non-stationary time series analysis,"
<emphasis>Proc. Roy. Soc. London A</emphasis>, Vol. 454, pp. 903–995, 1998), avec pour objectif de décomposer tout signal en une somme de composantes oscillantes extraites directement de celui-ci de manière adaptative. Ces composantes (ou IMF pour “Intrinsic Mode Functions”) s'interprètent comme des formes d'ondes <emphasis>non stationnaires</emphasis> (i.e., modulées en amplitude et en fréquence) pouvant être éventuellement associées à des oscillations <emphasis>non linéaires</emphasis>.</para>
<!--empty paragraphs get left behind.-->
    <para id="id2253751">EMD vs. ondelettes
 — L'EMD partage avec la transformée en ondelettes (TO) l'idée d'effectuer une analyse récursive dans laquelle un signal <m:math overflow="scroll"><m:mrow><m:mi>x</m:mi><m:mo>(</m:mo><m:mi>t</m:mi><m:mo>)</m:mo></m:mrow></m:math> est décomposé en une partie oscillant rapidement, apparentée à un <emphasis>détail</emphasis>, et une partie oscillant plus lentement jouant le rôle d'une <emphasis>approximation</emphasis> (cf. <cnxn target="uid1"/>), celle-ci étant ensuite décomposable à son tour selon le même principe.</para>
    <figure id="uid1" orient="horizontal">
      <media type="application/postscript" src="emd_princ.eps">
        <param name="print-width" value="1"/>
<!--NOTE: printwidth changes size of image in printed PDF (if specified in .tex file)-->
        <media type="image/png" src="emd_princ.png"><!-- NOTE: width parameter changes size of image online (pixels). original width is 383. --><param name="width" value="383"/></media>
      </media>
      <caption>Principe de l'EMD.</caption>
    </figure>
    <para id="id2253819">On aboutit ainsi à une décomposition de la forme :</para>
    <equation id="id2253824">
      <m:math mode="display" overflow="scroll">
        <m:mrow>
          <m:mi>x</m:mi>
          <m:mrow>
            <m:mo>(</m:mo>
            <m:mi>t</m:mi>
            <m:mo>)</m:mo>
          </m:mrow>
          <m:mo>=</m:mo>
          <m:msub>
            <m:mi>a</m:mi>
            <m:mi>K</m:mi>
          </m:msub>
          <m:mrow>
            <m:mo>(</m:mo>
            <m:mi>t</m:mi>
            <m:mo>)</m:mo>
          </m:mrow>
          <m:mo>+</m:mo>
          <m:munderover>
            <m:mo>∑</m:mo>
            <m:mrow>
              <m:mi>k</m:mi>
              <m:mo>=</m:mo>
              <m:mn>1</m:mn>
            </m:mrow>
            <m:mi>K</m:mi>
          </m:munderover>
          <m:msub>
            <m:mi>d</m:mi>
            <m:mi>k</m:mi>
          </m:msub>
          <m:mrow>
            <m:mo>(</m:mo>
            <m:mi>t</m:mi>
            <m:mo>)</m:mo>
          </m:mrow>
        </m:mrow>
      </m:math>
    </equation>
    <para id="id2253897">où, tout comme pour la TO, l'approximation à l'“échelle” <m:math overflow="scroll"><m:mi>k</m:mi></m:math> est la somme de l'approximation et du détail à l'“échelle” <m:math overflow="scroll"><m:mrow><m:mi>k</m:mi><m:mo>+</m:mo><m:mn>1</m:mn></m:mrow></m:math> :</para>
    <equation id="uid2">
      <m:math mode="display" overflow="scroll">
        <m:mrow>
          <m:msub>
            <m:mi>a</m:mi>
            <m:mi>k</m:mi>
          </m:msub>
          <m:mrow>
            <m:mo>(</m:mo>
            <m:mi>t</m:mi>
            <m:mo>)</m:mo>
          </m:mrow>
          <m:mo>=</m:mo>
          <m:msub>
            <m:mi>a</m:mi>
            <m:mrow>
              <m:mi>k</m:mi>
              <m:mo>+</m:mo>
              <m:mn>1</m:mn>
            </m:mrow>
          </m:msub>
          <m:mrow>
            <m:mo>(</m:mo>
            <m:mi>t</m:mi>
            <m:mo>)</m:mo>
          </m:mrow>
          <m:mo>+</m:mo>
          <m:msub>
            <m:mi>d</m:mi>
            <m:mrow>
              <m:mi>k</m:mi>
              <m:mo>+</m:mo>
              <m:mn>1</m:mn>
            </m:mrow>
          </m:msub>
          <m:mrow>
            <m:mo>(</m:mo>
            <m:mi>t</m:mi>
            <m:mo>)</m:mo>
          </m:mrow>
          <m:mo>.</m:mo>
        </m:mrow>
      </m:math>
    </equation>
    <para id="id2254003">En contraste notable avec la TO, les “échelles” mises en jeu dans l'EMD ne correspondent pas à une grille fixée a priori mais sont définies à partir du signal de manière locale et adaptative.</para>
<!--empty paragraphs get left behind.-->
    <para id="id2254017">Algorithme
 — Plus précisément, la décomposition (<cnxn target="uid2"/>) qui effectue la dichotomie entre oscillation rapide et oscillation lente est obtenue en itérant un opérateur non linéaire agissant à une échelle de temps variable définie par la distance entre extrema locaux consécutifs. Cet opérateur, dit de <emphasis>tamisage</emphasis> (ou “sifting”) est décrit par la procédure suivante :</para>
    <list id="id2254048" type="enumerated">
      <item id="uid3">Identifier les extrema de <m:math overflow="scroll"><m:mrow><m:msub><m:mi>a</m:mi><m:mi>k</m:mi></m:msub><m:mrow><m:mo>(</m:mo><m:mi>t</m:mi><m:mo>)</m:mo></m:mrow></m:mrow></m:math></item>
      <item id="uid4">Interpoler(par une spline cubique les minima (resp. maxima), pour définir une “enveloppe” <m:math overflow="scroll"><m:mrow><m:msub><m:mi>e</m:mi><m:mrow><m:mi>m</m:mi><m:mi>i</m:mi><m:mi>n</m:mi></m:mrow></m:msub><m:mrow><m:mo>(</m:mo><m:mi>t</m:mi><m:mo>)</m:mo></m:mrow></m:mrow></m:math> (resp. <m:math overflow="scroll"><m:mrow><m:msub><m:mi>e</m:mi><m:mrow><m:mi>m</m:mi><m:mi>a</m:mi><m:mi>x</m:mi></m:mrow></m:msub><m:mrow><m:mo>(</m:mo><m:mi>t</m:mi><m:mo>)</m:mo></m:mrow></m:mrow></m:math>)
</item>
      <item id="uid5">Calculer la moyenne <m:math overflow="scroll"><m:mrow><m:mi>m</m:mi><m:mrow><m:mo>(</m:mo><m:mi>t</m:mi><m:mo>)</m:mo></m:mrow><m:mo>=</m:mo><m:mo>(</m:mo><m:msub><m:mi>e</m:mi><m:mrow><m:mi>m</m:mi><m:mi>i</m:mi><m:mi>n</m:mi></m:mrow></m:msub><m:mrow><m:mo>(</m:mo><m:mi>t</m:mi><m:mo>)</m:mo></m:mrow><m:mo>+</m:mo><m:msub><m:mi>e</m:mi><m:mrow><m:mi>m</m:mi><m:mi>a</m:mi><m:mi>x</m:mi></m:mrow></m:msub><m:mrow><m:mo>(</m:mo><m:mi>t</m:mi><m:mo>)</m:mo></m:mrow><m:mo>)</m:mo><m:mo>/</m:mo><m:mn>2</m:mn></m:mrow></m:math></item>
      <item id="uid6">La soustraire à la forme d'onde initiale : <m:math overflow="scroll"><m:mrow><m:mi mathvariant="script">S</m:mi><m:mrow><m:mo>[</m:mo><m:msub><m:mi>a</m:mi><m:mi>k</m:mi></m:msub><m:mo>]</m:mo></m:mrow><m:mrow><m:mo>(</m:mo><m:mi>t</m:mi><m:mo>)</m:mo></m:mrow><m:mo>=</m:mo><m:msub><m:mi>a</m:mi><m:mi>k</m:mi></m:msub><m:mrow><m:mo>(</m:mo><m:mi>t</m:mi><m:mo>)</m:mo></m:mrow><m:mo>-</m:mo><m:mi>m</m:mi><m:mrow><m:mo>(</m:mo><m:mi>t</m:mi><m:mo>)</m:mo></m:mrow></m:mrow></m:math></item>
    </list>
    <para id="id2254571">Si on itère <m:math overflow="scroll"><m:mi>n</m:mi></m:math> fois cette procédure, les détails et approximations à l'échelle <m:math overflow="scroll"><m:mrow><m:mi>k</m:mi><m:mo>+</m:mo><m:mn>1</m:mn></m:mrow></m:math> sont définis comme <m:math overflow="scroll"><m:mrow><m:msub><m:mi>d</m:mi><m:mrow><m:mi>k</m:mi><m:mo>+</m:mo><m:mn>1</m:mn></m:mrow></m:msub><m:mrow><m:mo>(</m:mo><m:mi>t</m:mi><m:mo>)</m:mo></m:mrow><m:mo>=</m:mo><m:msup><m:mi mathvariant="script">S</m:mi><m:mi>n</m:mi></m:msup><m:mrow><m:mo>[</m:mo><m:msub><m:mi>a</m:mi><m:mi>k</m:mi></m:msub><m:mo>]</m:mo></m:mrow><m:mrow><m:mo>(</m:mo><m:mi>t</m:mi><m:mo>)</m:mo></m:mrow></m:mrow></m:math> et <m:math overflow="scroll"><m:mrow><m:msub><m:mi>a</m:mi><m:mrow><m:mi>k</m:mi><m:mo>+</m:mo><m:mn>1</m:mn></m:mrow></m:msub><m:mrow><m:mo>(</m:mo><m:mi>t</m:mi><m:mo>)</m:mo></m:mrow><m:mo>=</m:mo><m:msub><m:mi>a</m:mi><m:mi>k</m:mi></m:msub><m:mrow><m:mo>(</m:mo><m:mi>t</m:mi><m:mo>)</m:mo></m:mrow><m:mo>-</m:mo><m:msub><m:mi>d</m:mi><m:mrow><m:mi>k</m:mi><m:mo>+</m:mo><m:mn>1</m:mn></m:mrow></m:msub><m:mrow><m:mo>(</m:mo><m:mi>t</m:mi><m:mo>)</m:mo></m:mrow></m:mrow></m:math>.</para>
    <para id="id2254726">D'un point de vue pratique :</para>
    <list id="id2254730" type="bulleted">
      <item id="uid7">l'algorithme est initialisé en prenant pour première forme d'onde le signal <m:math overflow="scroll"><m:mrow><m:mi>x</m:mi><m:mo>(</m:mo><m:mi>t</m:mi><m:mo>)</m:mo></m:mrow></m:math> ;
</item>
      <item id="uid8">à chaque étape de décomposition, le tamisage est itéré <m:math overflow="scroll"><m:mi>n</m:mi></m:math> fois jusqu'à ce que le détail extrait puisse être considéré comme de moyenne globale négligeable au sens d'un critère fixé par l'utilisateur ;
</item>
      <item id="uid9">la décomposition s'achève lorsque la dernière approximation ne présente plus d'oscillation.
</item>
    </list>
    <para id="id2254799">Un code Matlab est disponible à l'URL http://perso.ens-lyon.fr/patrick.flandrin/emd.html
.</para>
<!--empty paragraphs get left behind.-->
    <para id="id2254814">Un exemple réel
 — La <cnxn target="uid10"/> présente un résultat de la décomposition par EMD des données mensuelles de variabilité de la température moyenne globale à la surface de la Terre durant la période 1850–2007, mesurée (en o
C) comme écart par rapport à la moyenne durant la période 1961–1990. Ces données sont disponibles à l'URL http://www.cru.uea.ac.uk/cru/data/temperature
 et on pourra en trouver une analyse plus complète de même nature dans Z. Wu, N.E. Huang, S.R. Long and C.-K. Peng, “On the trend, detrending, and variability of nonlinear and nonstationary time series,” <emphasis>Proc. Nat. Acad. Sc.</emphasis>, Vol. 104, No. 38, pp. 14889–14894, 2007. En identifiant et regroupant les différents modes obtenus, la méthode permet de donner une représentation synthétique sous la forme d'une tendance très basse fréquence à laquelle se superposent des oscillations représentatives de cycles permettant, de façon hiérarchique, de construire des approximations successives du signal complet de la résolution la plus grossière à la plus fine, celles-ci étant sélectionnées de manière adaptative à partir des seules données.</para>
    <figure id="uid10" orient="horizontal">
      <media type="application/postscript" src="var_temp_fr.eps">
        <param name="print-width" value=".5"/>
<!--NOTE: printwidth changes size of image in printed PDF (if specified in .tex file)-->
        <media type="image/png" src="var_temp_fr.png"><!-- NOTE: width parameter changes size of image online (pixels). original width is 455. --><param name="width" value="455"/></media>
      </media>
      <caption>Variabilité de la température moyenne globale à la surface de la Terre.</caption>
    </figure>
  </content>
</document>
