IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Signal Discussion :

Décomposition Modale Empirique


Sujet :

Signal

  1. #1
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations forums :
    Inscription : Juillet 2011
    Messages : 10
    Points : 15
    Points
    15
    Par défaut Décomposition Modale Empirique
    bonjours, svp qui peux m'aider à expliquer de code EMD suivant. j'ai besoin d'un tournage à la main. merci bcp


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    function imf = emd(y);
     
    c = x; % copy of the input signal (as a row vector)
    N = length(x);
    %------------------------------------------------------------------------
    % loop to decompose the input signal into successive IMF
    imf = []; % Matrix which will contain the successive IMF, and the residue
    while (1) % the stop criterion is tested at the end of the loop
     
    %------------------------------------------------------------------------
    % inner loop to find each imf
     
       h = c;  % at the beginning of the sifting process, h is the signal
       SD = 1; % Standard deviation which will be used to stop the sifting process
       while SD > 0.3 % while the standard deviation is higher than 0.3 (typical value)
     
          % find local max/min points
          d = diff(h); % approximate derivative
          maxmin = []; % to store the optima (min and max without distinction so far)
          for i=1:N-2
             if d(i)==0                        % we are on a zero
                maxmin = [maxmin, i];
             elseif sign(d(i))~=sign(d(i+1))   % we are straddling a zero so
                maxmin = [maxmin, i+1];        % define zero as at i+1 (not i)
             end
          end
     
          if size(maxmin,2) < 2 % then it is the residue
             break
          end
     
          % divide maxmin into maxes and mins
          if maxmin(1)>maxmin(2)              % first one is a max not a min
             maxes = maxmin(1:2:length(maxmin));
             mins  = maxmin(2:2:length(maxmin));
          else                                % is the other way around
             maxes = maxmin(2:2:length(maxmin));
             mins  = maxmin(1:2:length(maxmin));
          end
     
          % make endpoints both maxes and mins
          maxes = [1 maxes N];
          mins  = [1 mins  N];
     
     
          %--------------------------------------------------------------------
          % spline interpolate to get max and min envelopes; form imf
          maxenv = spline(maxes,h(maxes),1:N);
          minenv = spline(mins, h(mins),1:N);
          m =(maxenv + minenv)/2; % mean of max and min enveloppes
          prevh = h; % copy of the previous value of h before modifying it
          h = h - m; % substract mean to h
          % calculate standard deviation
          eps = 0.0000001; % to avoid zero values
          SD = sum (((prevh - h).^2) ./ (prevh.^2 + eps));
     
       end
     
       imf = [imf; h]; % store the extracted IMF in the matrix imf
       % if size(maxmin,2)<2, then h is the residue
     
       % stop criterion of the algo.
       if size(maxmin,2) < 2
          figure(3);
          plot(h);
          break;
       end
     
       c = c - h; % substract the extracted IMF from the signal
     
    end
    return

  2. #2
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    Bonjour,

    qu'est-ce qu'un tournage à la main?

    Quelle(s) partie(s) n'as-tu pas compris?
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  3. #3
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations forums :
    Inscription : Juillet 2011
    Messages : 10
    Points : 15
    Points
    15
    Par défaut filtrage des signaux en matlab
    bonsoir,
    il existe plusieur méthode pour éliminer le bruit qui existe dans le signal du parole, parmi ces méthodes il y a "le filtrage par emd".
    Je cherche un code matlab d'une fonction de filtrage_EMD d'un signal, ou un document qui m'explique le principe de cette méthode.

    merci

  4. #4
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Points : 5 179
    Points
    5 179
    Par défaut
    Salut!
    Il y a quelque chose qui peut te convenir dans Wikipedia en anglais.
    Jean-Marc Blanc
    Calcul numérique de processus industriels
    Formation, conseil, développement

    Point n'est besoin d'espérer pour entreprendre, ni de réussir pour persévérer. (Guillaume le Taiseux)

  5. #5
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations forums :
    Inscription : Juillet 2011
    Messages : 10
    Points : 15
    Points
    15
    Par défaut filtrage emd
    Citation Envoyé par FR119492 Voir le message
    Salut!
    Il y a quelque chose qui peut te convenir dans Wikipedia en anglais.
    Jean-Marc Blanc
    en fait, cette méthode (filtrage_emd) a été proposé par Jean-Christophe Cexus dans son thèse, j'ai le document,j'ai compris le principe mais je ne sais pas comment je vais traduire ça dans matlab, comment je vais tourner le programme.

Discussions similaires

  1. Décomposition Modale Empirique
    Par karimhab dans le forum Signal
    Réponses: 1
    Dernier message: 30/10/2011, 21h50
  2. Supprimer la croix dans une fenêtre modale
    Par AnneOlga dans le forum C++Builder
    Réponses: 3
    Dernier message: 15/01/2004, 14h52
  3. Décomposition RGB
    Par Claythest dans le forum Langage
    Réponses: 3
    Dernier message: 16/06/2003, 11h35
  4. Rendre une fenêtre modale non modale
    Par Smortex dans le forum Composants VCL
    Réponses: 2
    Dernier message: 30/03/2003, 17h56
  5. [JInternalFrame] Modale ?
    Par Aminos dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 04/03/2003, 10h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo