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

Algorithmes et structures de données Discussion :

Détection de pics parasites


Sujet :

Algorithmes et structures de données

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2012
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Avril 2012
    Messages : 87
    Points : 32
    Points
    32
    Par défaut Détection de pics parasites
    Bonjour à tous,

    Je traite actuellement un signal don't voice une vue

    Nom : Capture.PNG
Affichages : 428
Taille : 79,2 Ko

    Comme on le voit, il ya un pic d'amplitude supérieure aux autres en début de signal. SOn amplitude negative descend a quasiment -24.

    Mon but est d'écrire une function pouvant détecter ce genre de pics parasites, les dissocié des autres pics et dire le temps t auquel se trouve ce pic.

    La difference entre ce pic et les autres cest que contrairement aux autres pics, il est créer par un seul point (voir 2) qui a une valeur soudainement supérieure aux autres points. En effet, dans les pics dis "normaux", on a une pente avec plusieurs points (au minimum 3) qui decrivent cette pente.

    J'ai donc penser passer par la derive du signal et chercher les points avec une forte valeur de derive mais ma function me détecte plusieur points (notamment les point de tres faibles amplitudes dans le bruit ). surement que mes criteres de recherches ne sont pas assez sévères. en plus avec cette method, je suis obliger de prendre des criteres arbitraire qui ne sont valables que pour ce signal en particulier...

    est ce que quelqu'un aurait une idée à me conseiller pour arriver à mes fins??

    Merci d'avance

  2. #2
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 265
    Points : 352
    Points
    352
    Par défaut
    si tu es absolument certain que ce pic fait 2 points ou moins et que les autres pic font 3 pic ou plus pour moi le plus simple est d'utiliser un operateur top hat (pour les pic positif) et bot hat (pour les pic négatif)

  3. #3
    Membre expérimenté
    Profil pro
    chercheur
    Inscrit en
    Avril 2004
    Messages
    830
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : chercheur

    Informations forums :
    Inscription : Avril 2004
    Messages : 830
    Points : 1 453
    Points
    1 453
    Par défaut arbitraire = danger
    Tu es "obligé de prendre des critères arbitraires". Considère cela comme un signal d'alarme : ce que tu fais est dangereux et peut conduire à des erreurs graves. Es-tu sûr qu'il s'agit d'un artefact ? Est-ce si gênant ? Pourquoi ?
    Ce qui s'énonce clairement se conçoit bien ( Le hautbois)

  4. #4
    Nouveau membre du Club
    Inscrit en
    Avril 2012
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Avril 2012
    Messages : 87
    Points : 32
    Points
    32
    Par défaut
    Citation Envoyé par Nebulix Voir le message
    Tu es "obligé de prendre des critères arbitraires". Considère cela comme un signal d'alarme : ce que tu fais est dangereux et peut conduire à des erreurs graves. Es-tu sûr qu'il s'agit d'un artefact ? Est-ce si gênant ? Pourquoi ?
    je cherche justement à limiter au plus possible les risques. Oui sur et certain qu'il s'agit d'un artifact, cela à cause du nombre de points qui decrivent la pente. S'il s'agissait d'une mesure, on aurait une tendance avec plusieurs points, là il s'agit d'un saut du capteur (disfoctionnement peut etre d'origine electronique), d'ou le fait qu'on a un seul point qui cré cette pente. il n'est pas possible que la mesure monte d'un cout à cette valeur, sans points intermediaire. ce saut est encore plus remarquable quand on trace la derive du signal. regarde ci dessous


    Nom : Capture.PNG
Affichages : 390
Taille : 17,4 Ko

    Cest genant car ce signal sert a conduire des banc dessais et de tells valeurs peuvent soit au meilleur des cas donner une reponse abherente du banc, au pire des cas faire sauter le banc lui meme

  5. #5
    Nouveau membre du Club
    Inscrit en
    Avril 2012
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Avril 2012
    Messages : 87
    Points : 32
    Points
    32
    Par défaut
    Citation Envoyé par gpcbitnik38 Voir le message
    si tu es absolument certain que ce pic fait 2 points ou moins et que les autres pic font 3 pic ou plus pour moi le plus simple est d'utiliser un operateur top hat (pour les pic positif) et bot hat (pour les pic négatif)
    top hat et bot hat?? peut tu m'en dire plus stp?? ce sont des fonctions MATLAB???

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 265
    Points : 352
    Points
    352
    Par défaut
    ce sont des opérateurs de morphologie mathématique. leur fonction est de faire ressortir des pics <= à une taille définis.
    dans ton cas tu vas utiliser
    Code matlab : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    se=strel('line',2,0);
    imtophat(I,se));
    imbothat(I,se);

    avec I ton vecteur (que l'on considère ici comme une image 1*m)
    attention a bien avoir ton vecteur en ligne (ou a utiliser se=strel('line',2,90)).


    sinon envoie nous un .mat avec 2 - 3 acquisition, on pourra te proposer des choses plus abouti

  7. #7
    Nouveau membre du Club
    Inscrit en
    Avril 2012
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Avril 2012
    Messages : 87
    Points : 32
    Points
    32
    Par défaut
    ok jessaye ça et te tiens au courant

  8. #8
    Membre expérimenté
    Profil pro
    chercheur
    Inscrit en
    Avril 2004
    Messages
    830
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : chercheur

    Informations forums :
    Inscription : Avril 2004
    Messages : 830
    Points : 1 453
    Points
    1 453
    Par défaut
    Je viens de poster sur :https://www.developpez.net/forums/d1...erche-methode/
    La seule raison valable pour éliminer un point est qu'il soit manifestement aberrant. Le critère doit être fondé sur la réalité de ton système. Une façon de l'implémenter est de comparer à la médiane des points environnants : si la valeur est au delà de n ( à déterminer) fois le quartile, ...
    Si tu as absolument besoin de mettre un point à la place, tu peux mettre la valeur précédente, la suivante, la médiane précédemment calculée, mais n'oublie pas qu'elle est arbitraire.
    Quant au lissage, c'est pratiquement toujours une mauvaise idée. Ca transforme des artefacts en signaux et c'est trompeur sur la précision des résultats.

    Le point qui te gêne n'est pas si aberrant que cela et un critère objectif sera difficile à trouver. La question est quelle information tu veux tirer de ces données. Selon le cas il y a des méthodes permettant de limiter l'effet des points aberrants.
    Ce qui s'énonce clairement se conçoit bien ( Le hautbois)

  9. #9
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 265
    Points : 352
    Points
    352
    Par défaut
    Citation Envoyé par Nebulix Voir le message
    Le point qui te gêne n'est pas si aberrant que cela et un critère objectif sera difficile à trouver. La question est quelle information tu veux tirer de ces données. Selon le cas il y a des méthodes permettant de limiter l'effet des points aberrants.

    je pense qu'il a été assez claire en faite... un pic de moins de 3 points de long est physiquement impossible. En plus c'est un critère relativement simple de discrimination

  10. #10
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    LA solution classique fiable mathématiquement ET physiquement consiste à :

    • calculer la moyenne et l'écart-type (Ecart type (Wiki))

    • éliminer les points au dessus de X sigma (en général on considère 2.5 sigma, ici on peut facilement mettre 5).


    3 étapes :

    • calculer la moyenne

    • pour chaque point calculer l'écart entre la moyenne et le point. Sommer le carré. Calculer l'écart-type

    • repasser en éliminant les points au delà de X sigma...
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  11. #11
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 053
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 053
    Points : 9 392
    Points
    9 392
    Par défaut
    - Est-ce que tu dois traiter les données au fil de l'eau ou a posteriori ? ( En d'autres mots, quand tu traites la donnée (t, f(t)) pour dire si elle est valide, est-ce que tu connais déjà les données suivantes, ou bien tu dois te contenter des données passées ?
    - Est-ce que tu peux faire des processus itératifs / coûteux ou alors tu dois cracher un résultat très vite ?
    - Dans ton premier dessin, tu as combien de points, et peux-tu nous dire à la louche combien de points doivent être considérés comme faux.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  12. #12
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 265
    Points : 352
    Points
    352
    Par défaut
    Citation Envoyé par souviron34 Voir le message
    LA solution classique fiable mathématiquement ET physiquement consiste à :

    • calculer la moyenne et l'écart-type (Ecart type (Wiki))

    • éliminer les points au dessus de X sigma (en général on considère 2.5 sigma, ici on peut facilement mettre 5).


    3 étapes :

    • calculer la moyenne

    • pour chaque point calculer l'écart entre la moyenne et le point. Sommer le carré. Calculer l'écart-type

    • repasser en éliminant les points au delà de X sigma...

    ces pics ne sont pas aberrant en terme de valeur (enfin pas tous) en faisant ça soit il est trop restrictif et n'élimine que les point très fort (qui du coup sont éliminable avec un simple seuil sur la valeur) et si il est trop large il va supprimer du signal, en plus tu sous entend un distribution normale des valeurs ce qui n'est pas évident a voir a priori. regarde sa première image, certain pic de signal sont équivalent en intensité au pic de "bruit".

    tbc92 a raison egalement, le contexte va pas mal limité tes options.
    le mieu serait de nous envoyer des data

  13. #13
    Nouveau membre du Club
    Inscrit en
    Avril 2012
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Avril 2012
    Messages : 87
    Points : 32
    Points
    32
    Par défaut
    Citation Envoyé par tbc92 Voir le message
    - Est-ce que tu dois traiter les données au fil de l'eau ou a posteriori ? ( En d'autres mots, quand tu traites la donnée (t, f(t)) pour dire si elle est valide, est-ce que tu connais déjà les données suivantes, ou bien tu dois te contenter des données passées ?
    - Est-ce que tu peux faire des processus itératifs / coûteux ou alors tu dois cracher un résultat très vite ?
    - Dans ton premier dessin, tu as combien de points, et peux-tu nous dire à la louche combien de points doivent être considérés comme faux.
    Excusez mon délai de réponse les gars, jai passé la semaine concentrer sur le programme et je ne suis pas revenue ici.
    Alors voilà ou j'en suis,

    J'ai fais en gros deux critères pour déceler ces pics.

    Un premier critère basé sur un mélange des function don't gpcbitnik38 a parlé. soit strel, imtophat, imbothat. Je calculi les résultat en utilisant imtophat, imbothat et par la suite je cherche les valeurs de ces résultats qui sont supérieures à 3 fois l'écart type du signal.

    Un second critère ou je calculé la derivée seconde du signal. Ces piques étant détactables pas la valeur de la pente entre 2 points, plus la derive est élevée plus on a de chances detre sur un pic indésirable. Ainsi en calculant la derive seconde j'augmente encore plus la distinction entre les valeurs des pentes sur le signal et je peux ainsi mettre le doigt sur des pics dis "à risque".

    Pour te repondre tbc, jai accès à toutes mes données directs, ce n'est pas un flux. Jaimerais avoir un resultat en 15 seconds max...En gros j'ai à peut près 20000 points et on en a max une dizaine de mauvais.

    Pour les valeurs désolé les gar cest pas que je veux pas vous les transmettre, mais je ne peux pas. confidentialité oblige.

Discussions similaires

  1. Détection de pics
    Par fatenov dans le forum Signal
    Réponses: 17
    Dernier message: 15/05/2013, 20h16
  2. Détection de pics
    Par cedric06000 dans le forum Scilab
    Réponses: 20
    Dernier message: 03/08/2009, 18h41
  3. Réponses: 14
    Dernier message: 23/01/2009, 17h07
  4. [Débutant] Eliminer les "pics" parasites d'une courbe
    Par julien_cz dans le forum Signal
    Réponses: 6
    Dernier message: 23/01/2009, 08h25
  5. [LabView 8.2] Détection de pic
    Par tacoumi dans le forum LabVIEW
    Réponses: 5
    Dernier message: 06/06/2008, 09h20

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