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étecter les pics max d'un signal bruité


Sujet :

Signal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti Avatar de mdw_42
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Janvier 2016
    Messages : 25
    Par défaut Détecter les pics max d'un signal bruité
    bonjour ,
    Je voudrais récupérer les sommets d'un signal bruité en sachant que le temps entre deux pics consécutifs n'est pas uniforme, il varie donc nous ne pouvons pas faire une boucle for sur l'axe des temps, on aurait certes quelques valeurs mais tous les valeurs . En outre, nous ne pouvons pas fixer un seuil de valeurs à partir duquel nous sélectionnerons toutes les valeurs au dessus car si nous le faisons, nous risquons de perdre des pics qui sont plus petits que le seuil fixé .

    Enfin, l'objectif est d'avoir les pics du signal réel sans les valeurs provenant du bruit.

    Merci pour l'aide

    Voici comment se présente mes valeurs et l'instant d'acquisition de chaque valeur

        peaks             seconds
    -55,3000000000000    25,5275000000000
    -44,8500000000000    25,6575000000000
    -61,2700000000000    25,7375000000000
    -65,1900000000000    29,3525000000000
    -66,6000000000000    29,3925000000000
    -57,2300000000000    29,4225000000000
    -60,2700000000000    29,4825000000000
    -55,0200000000000    29,5775000000000
    -62,4900000000000    29,6575000000000
    -66,7800000000000    29,6775000000000
    -65,3200000000000    29,7575000000000
    -60,1100000000000    33,3025000000000
    -53,6000000000000    33,3925000000000
    -62,0300000000000    33,4525000000000
    -48,4800000000000    33,4975000000000
    -63,2800000000000    33,5825000000000
    -65,9200000000000    33,6825000000000
    -65,7100000000000    37,1625000000000
    -65,8000000000000    37,1775000000000
    On remarque le temps est non uniforme et qu'il y'a beaucoup de valeurs qui sont pas des valeurs du signal mais des valeurs émanant du bruit.


    Voici le code que j'ai écrit mais qui ne marche car je faits une boucle for parcourant le temps par saut de 4s et aprés chaque saut , il me sélectionne valeur à l'instant t , la valeur à l'instant t-1 e celle à l'instant t+1 , il compare les valeurs et prend la plus grande. Ce raisonnement n'est pas tout à fait bon car comme je vous l'ai dit le temps n'est pas uniforme et je ne peux pas fixer de seuil aussi.

    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
        %file loading 
        load('mesure.mat');
     
        %selection of colons of peaks and colons of time
        peaks = mesure(:,1);
        time = mesure(:,2);
     
       %Matrix definition 
        matrix = [peaks time];
        [nb_lines,nb_colons] = size(matrix);
     
        %jump  of 4s between the lines 
     
        for counter=1:4:nb_lines
     
            %comparison of value n-1 , n and n+1 , return the biggest value 
     
            if matrix(counter,:)>matrix(counter+1,:)& matrix(counter+1,:)> matrix(counter+2,:)
     
                matrix(:,counter+1);
     
            else  
     
                if matrix(counter,:)>matrix(counter+2,:)
                     matrix(counter+1,:) ;
                 else
                     matrix(counter+2,:);
                 end    
            end
        end

    merci pour votre aide

  2. #2
    Membre Expert
    Homme Profil pro
    Inscrit en
    Mai 2008
    Messages
    2 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 040
    Par défaut Détecter les pics max d'un signal bruité
    Bonjour,

    Peut-être :

    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
    clear
    S=[-55.3000000000000    25.5275000000000
        -44.8500000000000    25.6575000000000
        -61.2700000000000    25.7375000000000
        -65.1900000000000    29.3525000000000
        -66.6000000000000    29.3925000000000
        -57.2300000000000    29.4225000000000
        -60.2700000000000    29.4825000000000
        -55.0200000000000    29.5775000000000
        -62.4900000000000    29.6575000000000
        -66.7800000000000    29.6775000000000
        -65.3200000000000    29.7575000000000
        -60.1100000000000    33.3025000000000
        -53.6000000000000    33.3925000000000
        -62.0300000000000    33.4525000000000
        -48.4800000000000    33.4975000000000
        -63.2800000000000    33.5825000000000
        -65.9200000000000    33.6825000000000
        -65.7100000000000    37.1625000000000
        -65.8000000000000    37.1775000000000];
     
    plot(S(:,2),S(:,1))
    grid
    hold
     
    [pks,locs] = findpeaks(S(:,1));
    plot(S(locs,2),pks,'.r','MarkerSize',23)

  3. #3
    Membre averti Avatar de mdw_42
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Janvier 2016
    Messages : 25
    Par défaut
    BONJOUR ,

    merci de la réponse mais la fonction findpeaks ne marche pas chez moi sa me dit :

    Attempt to execute SCRIPT findpeaks
    as a function:
    E:\MATLAB\findpeaks.m

  4. #4
    Membre Expert
    Homme Profil pro
    Inscrit en
    Mai 2008
    Messages
    2 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 040

  5. #5
    Membre averti Avatar de mdw_42
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Janvier 2016
    Messages : 25
    Par défaut
    j'ai téléchargé le code sur matlab mais celà me dit qu'il y'a beaucoup d'argumente en entrée


    Error using findpeaks
    Too many output arguments.

  6. #6
    Membre Expert
    Homme Profil pro
    Inscrit en
    Mai 2008
    Messages
    2 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 040
    Par défaut
    Effectivement, il y a plusieurs function.
    essaie :
    https://www.mathworks.com/matlabcent...ml?access_key=

Discussions similaires

  1. Réponses: 3
    Dernier message: 07/02/2015, 00h04
  2. Réponses: 0
    Dernier message: 08/12/2009, 19h05
  3. Détecter les pics d'un histogramme
    Par Hallu33 dans le forum MATLAB
    Réponses: 5
    Dernier message: 05/10/2009, 10h40
  4. algorithme détection pic signal bruité
    Par mariono dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 04/11/2008, 14h16
  5. Réponses: 28
    Dernier message: 27/11/2007, 10h40

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