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 :

Recherche de pic dans un signal


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    R&D
    Inscrit en
    Mai 2008
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : R&D
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2008
    Messages : 101
    Par défaut Recherche de pic dans un signal
    Bonjour à tous,

    Mon problème je pense est assez simple et je suis sur que certains d’entres vous auront de nombreuses idées à proposer…

    Voilà j’ai deux signaux (réponse en fonction d’une fréquence) assimilable à deux sons différents (fig1). Dans un premier cas, courbe verte, j’ai un pic et dans le second, courbe bleue, uniquement du « bruit ».

    Je cherche à créer une fonction oui/non en réponse à la question « ce pic est-il présent dans mon signal ? ». La réponse serait ici oui pour le vert et non pour le bleu.

    Pour le moment j’utilise une approche un peu simple :
    - recherche du Max sur la zone affichée
    - calcul de la dérivée première et recherche du point d’inflexion

    Si le Max. est compris entre deux valeurs (ici 23-2 et 23+2) et que le point d’inflexion correspond au Max, alors je dis que le pic est présent.

    Ce que je voudrai éviter c’est l’utilisation d’un seuil (ici la valeur 23 à connaître) donc si quelqu’un à une idée je suis preneur…

    Pour faire simple et plus général, comment identifier si un pic est présent ou non dans un signal (idéalement sans notion de seuil).

    J’espère avoir été assez clair,

    Merci beaucoup !
    Images attachées Images attachées  

  2. #2
    Membre Expert
    Inscrit en
    Août 2010
    Messages
    1 124
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 1 124
    Par défaut
    Bonjour,
    Il n'existe pas (à ma connaissance) de réponse parfaite à ton problème.
    Dans ton cas néanmoins, ce qui va faciliter la tache, c'est qu'il n'y a qu'un seul pic.

    tu n'echapera pas à la notion de seuil, mais il existe des manières intelligentes de le définir:

    * La première piste, intuitive, est d'enlever les valeurs en dur. Plutôt que d'utiliser 23 +/- 2 prend des quantités relatives, par exemple:
    max(x)/mean(x) > 2
    max(x)/median(x) > 3
    max(x)/min(x) > 10 - pour un signal > 0 seulement

    il y a des raffinements. Par exemple, isole une fenetre autour du max, calcule le max hors de cette fenêtre, puis utilise le rapport des 2 max. Tu peux aussi t'assurer que les seuils précédents sont atteints sur une fenêtre autour du max (si tu es sur que pic s'étale sur plusieurs observations).

    *Une autre piste, plus statistique, est de modéliser la loi de ta courbe bleu, et de définir un pic comme une valeur supérieur à un quantile de cette loi (on s'approche alors de la notion de test en statistiques).

    Dans tous les cas, il faut que tu mobilises l'information dont tu disposes a priori
    - ordre de grandeur (relatif au reste du signal) du pic
    - plusieurs ou un seul pic ?
    - loi de proba plausible pour tes 2 signaux

    * D'autres piste plus élaborées:
    - Analyse en ondelette pour définir des pics à différentes fréquences.
    - Si tu disposes de plusieurs courbes bleues et vertes (dont tu sais qu'elle sont un signal ou du bruit), et que tu as une nouvelle courben tu peux comparer la nouvelle courbe aux anciennes et décider en fonction de cette comparaison si la nouvelle courbe est un signal ou du bruit.

    * L'utilisation du point d'inflexion est une bonne idée, mais si ta courbe est un peu bruitée, cela ne marchera pas.

    enfin, la "meilleure" solution dépendra de ta fonction de cout, i.e t'est-il plus dommageable de classer un signal comme étant du bruit, ou du bruit comme étant un signal.

  3. #3
    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 : 84
    Localisation : Suisse

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Par défaut
    Salut!
    Il n'existe pas (à ma connaissance) de réponse parfaite à ton problème.
    Le problème est qu'il n'existe pas de définition rigoureuse et générale dans le cas d'un signal échantillonné.
    Jean-Marc Blanc

  4. #4
    Membre confirmé
    Homme Profil pro
    R&D
    Inscrit en
    Mai 2008
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : R&D
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2008
    Messages : 101
    Par défaut
    Tout d'abord, bonjour et merci pour vos réponses.

    Citation Envoyé par VV33D Voir le message
    Il n'existe pas (à ma connaissance) de réponse parfaite à ton problème.
    Je me doutais de cette réponse, mais qui ne tente rien n'a rien !

    Citation Envoyé par VV33D Voir le message
    * La première piste, intuitive, est d'enlever les valeurs en dur
    C'est je pense ce que je vais choisir comme solution (simple et rapide) même si celle ci manque peut être un peu de robustesse.

    Citation Envoyé par VV33D Voir le message
    Une autre piste, plus statistique, est de modéliser la loi de ta courbe bleu, et de définir un pic comme une valeur supérieur à un quantile de cette loi (on s'approche alors de la notion de test en statistiques).
    Le problème est que ma courbe bleue n'aura pas toujours le même profil, j'ai un peu peur qu'en observant une distribution des valeurs, et qu'en faisant intervenir les quantiles, j'ai des faux positifs.

    Citation Envoyé par VV33D Voir le message
    * D'autres piste plus élaborées:
    - Analyse en ondelette pour définir des pics à différentes fréquences.
    L'idée me plait bien mais je ne suis pas du tout expert dans ce milieu. Un papier ou une fonction qui pourrait m'aider ?

    Citation Envoyé par VV33D Voir le message
    * L'utilisation du point d'inflexion est une bonne idée
    J'utilise une approche multiparamètrique : pic max + point inflexion d1 + pic d2 ce qui limite les faux positifs liés au bruit.

    Merci encore et bonne journée !

  5. #5
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Citation Envoyé par matt41fr Voir le message
    Le problème est que ma courbe bleue n'aura pas toujours le même profil, j'ai un peu peur qu'en observant une distribution des valeurs, et qu'en faisant intervenir les quantiles, j'ai des faux positifs.
    Il y a tout de même un énorme ratio signal/bruit (SNR) entre ces deux courbes.

    Un calcul du SNR (=moyenne/ecart-type) sur une fenêtre glissante le long du signal devrait te permettre de mettre en évidence la présence/absence du pic.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  6. #6
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Par défaut
    Et un top-hat ?
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

Discussions similaires

  1. Recherche de sinus dans un signal
    Par Timy123 dans le forum Signal
    Réponses: 11
    Dernier message: 19/08/2014, 18h59
  2. Suppression de pics dans un signal audio
    Par marina123 dans le forum Signal
    Réponses: 5
    Dernier message: 09/08/2012, 11h22
  3. detection de pics dans un signal audio
    Par sliders_alpha dans le forum Traitement du signal
    Réponses: 22
    Dernier message: 04/02/2009, 00h32
  4. recherche de doublons dans un fichier texte
    Par portu dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 07/10/2003, 14h13
  5. Recherche de donnee dans une table associée
    Par josoft dans le forum Requêtes
    Réponses: 2
    Dernier message: 14/07/2003, 15h22

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