Précédent   Forum des professionnels en informatique > Environnements de développement > MATLAB > Signal
Signal Forum d'entraide sur le traitement du signal en MATLAB
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 17/07/2011, 13h36   #1
Invité régulier
 
Femme kadri kadri
Inscription : juillet 2011
Messages : 10
Détails du profil
Informations personnelles :
Nom : Femme kadri kadri
Localisation : Tunisie

Informations forums :
Inscription : juillet 2011
Messages : 10
Points : 5
Points : 5
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 :
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
sassou87 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/07/2011, 18h24   #2
Modérateur
 
Inscription : août 2007
Messages : 3 575
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 3 575
Points : 4 394
Points : 4 394
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.
magelan est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/12/2011, 21h28   #3
Invité régulier
 
Femme kadri kadri
Inscription : juillet 2011
Messages : 10
Détails du profil
Informations personnelles :
Nom : Femme kadri kadri
Localisation : Tunisie

Informations forums :
Inscription : juillet 2011
Messages : 10
Points : 5
Points : 5
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
sassou87 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2011, 00h15   #4
Rédacteur/Modérateur
 
Jean-Marc Blanc
Inscription : avril 2007
Messages : 2 654
Détails du profil
Informations personnelles :
Nom : Jean-Marc Blanc
Âge : 71

Informations forums :
Inscription : avril 2007
Messages : 2 654
Points : 3 488
Points : 3 488
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)
FR119492 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2011, 09h16   #5
Invité régulier
 
Femme kadri kadri
Inscription : juillet 2011
Messages : 10
Détails du profil
Informations personnelles :
Nom : Femme kadri kadri
Localisation : Tunisie

Informations forums :
Inscription : juillet 2011
Messages : 10
Points : 5
Points : 5
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.
sassou87 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h01.


 
 
 
 
Partenaires

Hébergement Web