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 :

Filtrage peak pour un signal "en escalier"


Sujet :

Signal

  1. #1
    Futur Membre du Club
    Inscrit en
    Juin 2012
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juin 2012
    Messages : 4
    Points : 7
    Points
    7
    Par défaut Filtrage peak pour un signal "en escalier"
    Bonjour à tous

    Ce post relève peut-être plus d'un problème d'algo, à vous de me dire !

    Voici mon problème :
    Je cherche à récupérer les valeurs hautes du signal en pièce jointe (courbe rouge), de manière à obtenir un signal continu (les portions de droites conviennent aussi) en perdant un minimum d'info. Le vecteur d'ordonnée contient près de 3600 valeur tout de même.

    J'ai donc trouvé une fonction toute faite sur le site coopératif de matlab, envelope1.1, qui identifie les peaks via :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    extrMaxValue = y(find(diff(sign(diff(y)))==-2)+1)
    puis interpole entre. Une fois là, je pensai ma journée presque terminée... Hé non !

    Premier problème : aux alentours de 1050 il y a une rupture de pente qui n'est pas un max, mais malgré tout une info que je souhaite garder. J'ai donc procédé par étape en découpant le signal en 2 à cet endroit pour forcer ce point. Solution peu élégante, une autre est sans doute disponible ?

    Deuxième problème : La courbe verte montre la première tentative "brute", avant découpage du signal en 2. Clairement, ça marche pas du tout ! Quelques poignée de cheveux plus tard, j'ai compris le pourquoi : il y a très peu de "vrai pics", voir la 2nd image jointe, à cause de l'échantillonnage. Pour "délisser" la courbe j'ai tenter d'appliquer une moyenne flottante avec un convn prenant de 5 à 100 valeurs autour. Réussite moyenne : les vrais pics apparaissent en moyennant sur trop de valeurs, je perd donc beaucoup d'information sur les hauteurs de pics.

    Bravo à ceux qui en arrivent là ! En résumé voila mes problèmes :
    - Comment inclure à un filtrage peak les "ruptures de pente" (cf x=1050 premier graph) ?
    - Comment faire pour détecter les peaks pour des signaux "carrés" (cf graph 2) ?

    Merci d'avance, la calvitie me guette à cause de ce problème !
    Images attachées Images attachées   

  2. #2
    Futur Membre du Club
    Inscrit en
    Juin 2012
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juin 2012
    Messages : 4
    Points : 7
    Points
    7
    Par défaut
    J'ai fini par résoudre mon problème en ré-échantillonnant mon signal sur un nombre inférieur de valeur avec un spline (interp1). Comme ça les pics sont bien visible, sans perdre trop d'info. Et comme par miracle un pic est apparu sur la valeur de rupture de pente que je souhaitais garder.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Filtre passe-bande pour un signal audio
    Par thedep dans le forum Traitement du signal
    Réponses: 6
    Dernier message: 02/01/2010, 01h57
  2. REQ : Algo pour vérification saisie du "Numero TVA"
    Par Eric.H dans le forum Langage
    Réponses: 4
    Dernier message: 28/01/2009, 10h23
  3. Filtrage parfait d'un signal
    Par xenemesis dans le forum Signal
    Réponses: 1
    Dernier message: 13/08/2008, 08h11
  4. filtrage moyenner pour image
    Par hassiba_45 dans le forum C++
    Réponses: 1
    Dernier message: 04/03/2008, 13h04

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