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

MATLAB Discussion :

Hilbert Huang transform


Sujet :

MATLAB

  1. #1
    Futur Membre du Club
    Femme Profil pro
    ingénieur électronique industrielle
    Inscrit en
    Mars 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : Tunisie

    Informations professionnelles :
    Activité : ingénieur électronique industrielle
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2014
    Messages : 14
    Points : 5
    Points
    5
    Par défaut Hilbert Huang transform
    bonjour à tous,

    je veux utilisé les codes plot_hht.m et emd.m fournis par ce lien:
    https://www.mathworks.com/matlabcent...ent/plot_hht.m

    tout d'abord mon signal il est de 2500000 échantillons et de période d'échantillonage(Ts=4e-9).
    quand j'applique ce code sous matlab 7.10.0(R2010a), mon ordinateur de 8 Go de ram se plante sans donner aucun résultat.
    aidez moi S.V.P.

    merci d'avance

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 25
    Points : 39
    Points
    39
    Par défaut
    Essaye de découper ton signal en plusieurs parties.
    Tu verras si c'est Matlab qui plante.

  3. #3
    Futur Membre du Club
    Femme Profil pro
    ingénieur électronique industrielle
    Inscrit en
    Mars 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : Tunisie

    Informations professionnelles :
    Activité : ingénieur électronique industrielle
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2014
    Messages : 14
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par johnette Voir le message
    Essaye de découper ton signal en plusieurs parties.
    Tu verras si c'est Matlab qui plante.
    merci je vais essayer tout de suite

  4. #4
    Futur Membre du Club
    Femme Profil pro
    ingénieur électronique industrielle
    Inscrit en
    Mars 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : Tunisie

    Informations professionnelles :
    Activité : ingénieur électronique industrielle
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2014
    Messages : 14
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par puzzle1989 Voir le message
    merci je vais essayer tout de suite
    j'ai essayé et pour une partie de 10000 échantillon ça marche et matlab ne se plante pas
    y'a t-il une solution pour que j'applique hilbert-huang transform sur tt mon signal?
    merci d'avance

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 25
    Points : 39
    Points
    39
    Par défaut
    Tu peux modifier la fonction plot_hht, afin quelle renvoie les variables à ploter.

    Ensuite tu boucles la fonction modifiée en plusieurs fois, puis tu concatènes les multiples variables dans une seule.

    Pour finir tu peux essayer de l'afficher, si c'est possible !!!

    Sinon tu plot 1 point sur 2, 3, 4 ou plus si ça marche.

  6. #6
    Futur Membre du Club
    Femme Profil pro
    ingénieur électronique industrielle
    Inscrit en
    Mars 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : Tunisie

    Informations professionnelles :
    Activité : ingénieur électronique industrielle
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2014
    Messages : 14
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par johnette Voir le message
    Tu peux modifier la fonction plot_hht, afin quelle renvoie les variables à ploter.

    Ensuite tu boucles la fonction modifiée en plusieurs fois, puis tu concatènes les multiples variables dans une seule.

    Pour finir tu peux essayer de l'afficher, si c'est possible !!!

    Sinon tu plot 1 point sur 2, 3, 4 ou plus si ça marche.
    tout d'abord,je vous remercie infiniment pour ta réponse;
    si c'est possible, pouvez-vous m'expliquer plus votre solution .
    merci

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 25
    Points : 39
    Points
    39
    Par défaut
    Ca donnerait qqchose comme ça dans un premier temps



    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
     
    Ts=4e-9
    s=signal
    for i =1:100
    x=s(1+(length(s)/100)*(i-1):i*length(s)/100)
    [M(:,i),k1(:,i),k2(:,i),imf(:,i)] = function plot_hht_modif(x,Ts)
     
    end
     
     
     
     [M,k1,k2,imf] = function plot_hht_modif(x,Ts)
    % Plot the HHT.
    % plot_hht(x,Ts)
    % 
    % :: Syntax
    %    The array x is the input signal and Ts is the sampling period.
    %    Example on use: [x,Fs] = wavread('Hum.wav');
    %                    plot_hht(x(1:6000),1/Fs);
    % Func : emd
     
    % Get HHT.
    imf = emd(x);
    for k = 1:length(imf)
       b(k) = sum(imf{k}.*imf{k});
       th   = angle(hilbert(imf{k}));
       d{k} = diff(th)/Ts/(2*pi);
    end
    [u,v] = sort(-b);
    b     = 1-b/max(b);
     
    % Set time-frequency plots.
    N = length(x);
    c = linspace(0,(N-2)*Ts,N-1);
    for k = v(1:2)
       figure, plot(c,d{k},'k.','Color',b([k k k]),'MarkerSize',3);
       set(gca,'FontSize',8,'XLim',[0 c(end)],'YLim',[0 1/2/Ts]); xlabel('Time'), ylabel('Frequency');
    end
     
    % Set IMF plots.
    M = length(imf);
    N = length(x);
    c = linspace(0,(N-1)*Ts,N);
     
    end

  8. #8
    Futur Membre du Club
    Femme Profil pro
    ingénieur électronique industrielle
    Inscrit en
    Mars 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : Tunisie

    Informations professionnelles :
    Activité : ingénieur électronique industrielle
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2014
    Messages : 14
    Points : 5
    Points
    5
    Par défaut
    bonjour,

    j'arrive à extraire les IMFS de chaque échantillon mais concernant les imfs de tout mon signal , je me reste bloqué.
    je fais une boucle for sur plot_hht en ajoutant des "hold on" mais ça donne les courbes de chaque echantillon qui sont plus que mille figure.
    avez-vous une idée pour concaténer tous ses échantillons afin d'avoir les imfs de tout le signal?.

    merci

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 25
    Points : 39
    Points
    39
    Par défaut
    Tu as la fonction reshape pour concaténer ta matrice

  10. #10
    Futur Membre du Club
    Femme Profil pro
    ingénieur électronique industrielle
    Inscrit en
    Mars 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : Tunisie

    Informations professionnelles :
    Activité : ingénieur électronique industrielle
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2014
    Messages : 14
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par johnette Voir le message
    Tu as la fonction reshape pour concaténer ta matrice
    bonjour jobnette,

    avez-vous une idée s'il est possible d'utiliser le code trouvé sur Mathworks pour des signaux longs?

    merci

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 25
    Points : 39
    Points
    39
    Par défaut
    Aucune idée ...
    Il faudrait faire des tests pour ça.

  12. #12
    Futur Membre du Club
    Femme Profil pro
    ingénieur électronique industrielle
    Inscrit en
    Mars 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : Tunisie

    Informations professionnelles :
    Activité : ingénieur électronique industrielle
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2014
    Messages : 14
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par johnette Voir le message
    Aucune idée ...
    Il faudrait faire des tests pour ça.
    ok merci jobnette

Discussions similaires

  1. Pseudo Weigner Viller et transformée de Hilbert
    Par christophe_halgand dans le forum Signal
    Réponses: 0
    Dernier message: 07/08/2013, 15h30
  2. Spectre de la Transformée de Huang Teager
    Par Macds dans le forum Signal
    Réponses: 3
    Dernier message: 02/09/2011, 02h20
  3. [Débutant] Transformée de Hilbert
    Par noussa006 dans le forum Signal
    Réponses: 3
    Dernier message: 10/05/2011, 23h53
  4. Transformée simple de Hilbert
    Par Yann.Sch dans le forum Signal
    Réponses: 1
    Dernier message: 31/03/2011, 13h23
  5. Recherche lib Java de calcul de transformée d'Hilbert
    Par Schoubi dans le forum Général Java
    Réponses: 2
    Dernier message: 23/06/2010, 13h51

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