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

C++ Discussion :

Frequence d'apparition d'un motif dans un tableau


Sujet :

C++

  1. #21
    Membre Expert
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Par défaut
    Citation Envoyé par Julian21
    Merci pour ton aide KiLVaiDeN,
    Mais la courbe n'est pas une sinusoïde (cf piece jointe post #16)
    et le problème, c'est que je ne peux pas me fier ni au 1er maximum, ni au 2nd, ni au 3e... parce que le signal présente quelques fois des pics amplitude...
    Ces motifs là, il faut les bannir.
    Je pense que tu dois maintenant voir comment procéder...
    Ce que tu peux faire en plus de ce qu'on t'a déjà dit, c'est stocker toutes les valeurs de périodes que tu trouves (entre deux maximas), et forcément tu vas voir par toi même des choses....
    Certains points vont etre aberrants, d'autres vont etre juste...
    Avec un simple petit traitement, tu devrais trouver rapidement !

    Bon courage !

  2. #22
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 22
    Par défaut
    voila rapidement l'algo auquel je pense pour calculer la fréquence d'une courbe stockée dans un tableau :

    je cherche le maximum entre début et fin
    j'enregistre son itérateur
    je cherche le maximum toujours entre début et fin mais sans chercher dans la zone du premier maximum (zone que je peux définir)
    j'enregistre son itérateur
    je cherche le maximum toujours entre début et fin mais sans chercher dans la zone du premier maximum, ni du deuxième
    j'enregistre son itérateur
    .....
    à chaque nouvel itérateur enregistré dans mon tableau de maxima, je le trie,
    ensuite je calcule la moyenne des maximums dont l'itérateur est enregistré.
    ....
    Et dès que je trouve un maximum qui est bien en dessous de la moyenne des maximas enregistrés, j'arrete.

    Mais avant, pour avoir plus de précision, il faudrait que j'élimine les premiers maximums du à l'apparition de pics dans le signal (s'ils existent),
    je pense que c'est possible en utilisant la moyenne comme précédemment, ca me permettra d'avoir une moyenne de maximums plus réel.

    Cette technique me permettrait de récupérer tous les extremums "potables" de la courbe.
    Ensuite je n'ai plus qu'à regarder l'écart entre deux maximums successifs et de faire la moyenne de ces écarts, si les deux maximums ne sont pas séparés par un pic.


    enfin fini

    J'ai peur que sa prenne beaucoup de temps
    Vous en pensez quoi si je fais le test sur un tableau de 60 000 points ???

    un des problèmes de l'application que je développe est l'acquisition en temps réels. Je n'aurai cependant à faire ce calcul là seulement toute les deux mimutes.

  3. #23
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 22
    Par défaut
    encore une petite question pour toi poukill

    tu crois que c'est compliqué à mettre en place la CImg Library ??

    C'est pas uniquement pour les images celle-ci ??

    Parce que la transformée de fourier me permettrai de faire un filtrage logiciel de mon signal (éliminer le 50 Hz) !! Mais la j'espère peut être un peu trop

    Merci encore !!

  4. #24
    Membre Expert
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Par défaut
    Citation Envoyé par Julian21
    je cherche le maximum entre début et fin
    j'enregistre son itérateur
    je cherche le maximum toujours entre début et fin mais sans chercher dans la zone du premier maximum (zone que je peux définir)
    Ton problème va justement être celui-ci. Car t'éloigner de cette zone suppose que tu aies déjà une info a priori sur ton signal...

    Imagine une seconde que la fréquence est deux fois plus grande que celle attendue??? Tu peux faire de graves erreurs sur ce point... Je connais personnellement des personnes qui se sont déjà cassé les dents sur point.

  5. #25
    Membre Expert
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Par défaut
    Citation Envoyé par Julian21
    encore une petite question pour toi poukill

    tu crois que c'est compliqué à mettre en place la CImg Library ??

    C'est pas uniquement pour les images celle-ci ??
    Non, c'est pas uniquement pour les images !!! Enfin, à la base si !
    Mais une image de dimension 400 x 1, c'est un buffer... Et un buffer, c'est un signal.
    Donc ça peut s'utiliser comme ça...

    Je l'utilise pour l'imagerie moi. C'est vrai que c'est surement pas le plus pratique pour toi!

  6. #26
    Membre Expert
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Par défaut
    Citation Envoyé par Julian21
    Parce que la transformée de fourier me permettrai de faire un filtrage logiciel de mon signal (éliminer le 50 Hz) !! Mais la j'espère peut être un peu trop
    Merci encore !!
    Oui, c'est vrai que tu peux faire un filtrage en fourier....
    Pourquoi éliminer le 50Hz?

    Le problème c'est qu'en filtrant, tu risques de couper un peu ton signal. Mais c'est une bonne idée: un filtrage passe-bas te permet de couper toutes les hautes fréquences de ton signal, y compris les pics qui t'embetent!

  7. #27
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 22
    Par défaut
    De tout façon, je suis obligé de m'éloigner de cette zone,
    j'ai tellement d'échantillons que j'ai plusieurs "maximums" pour le maximum de la courbe (j'espère ke c'est clair !! )

    La période du motif peut faire au minimum 150 points dans mon tableau et au maximum 600 points, il donc possible de trouver une zone de +/- 75 points.

    Non, c'est pas uniquement pour les images !!! Enfin, à la base si !
    Mais une image de dimension 400 x 1, c'est un buffer... Et un buffer, c'est un signal.
    Donc ça peut s'utiliser comme ça...
    C'est plutôt cool ça !!

    Pour le filtrage, j'aimerai filtrer le 50Hz parce que les échantillons que j'obtiens viennent d'une carte d'acquisition "faite maison" et que j'obtiens un peu de parasites (visiblement du 50Hz) sur ma courbe.
    Pour les pics, ce n'est pas du 50Hz, en fait, la courbe représente la pression ventriculaire d'un coeur de souris (rat ou lapin) et les pics que l'on peut observer proviennent simplement d'une arythmie du coeur, mais il ne faut pas les prendre en compte.

  8. #28
    Membre Expert
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Par défaut
    Citation Envoyé par Julian21
    De tout façon, je suis obligé de m'éloigner de cette zone,
    j'ai tellement d'échantillons que j'ai plusieurs "maximums" pour le maximum de la courbe (j'espère ke c'est clair !! )
    C'est TRES clair!
    C'est pour ça que je dis que c'est pas facile, mine de rien!
    Maintenant, si c'est un battement de coeur, alors OUI !!!
    Tu as une connaissance a priori sur ton signal, ça va marcher...

    EDIT : pour supprimer des pics, renseigne toi sur le Web pour la filtrage médian: c'est ce qu'il te faut

    C'est des battements de coeur que tu veux capter?

  9. #29
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 22
    Par défaut
    Maintenant, si c'est un battement de coeur, alors OUI !!!
    En fait, c'est pas un battement de coeur (ElectroCardioGramme), ça à vraiment la tete de ce ke j'ai essayé de dessiner en piece jointe.

    Mais effectivement, je connais l'allure du signal, quoi que j'ai deux différentes pressions et un ECG (mais celui-là, je verai plus tard, il est plus complexe mais bien filtré).

    L'algo risque parfois de ne pas marcher si le coeur ne marche pas trop bien, mais ce n'est pas grave, je permettrai un recalcul de la frequence par selection d'un bout de courbe par l'utilisateur.

  10. #30
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 22
    Par défaut
    je ne veux pas supprimer les pics dû au mauvais fonctionnement du coeur, il est important de les garder, par contre il faut que je les oublie dans mes calculs.

    Je réalise le calcul de la fréquence cardiaque par l'intermédiare de la pression ventriculaire (contraction et décontraction du ventricule).
    J'ai également d'autres calculs à effectuer, tel que le calcul de dérivée sur le motif... mais ça roule.

  11. #31
    Membre Expert
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Par défaut
    Ok, tiens nous au courant
    Et pense au

  12. #32
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 22
    Par défaut
    J'avais dû mettre sur pause ce petit problème parce que j'avais des choses plus urgentes à faire. Bref, j'ai fini par terminer d'implémenter l'algo que j'avais posté plus haut .

    J'ai pas encore eu le temps de tester sur des courbes très irrégulières mais l'algo fonctionne très bien pour le fonctionnement normal, déjà une bonne chose .

    Encore merci pour votre aide

    ++

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Réponses: 6
    Dernier message: 13/05/2009, 22h46
  2. Addition du nombre d'apparitions d'un chiffre dans un tableau
    Par stephane_gilbert dans le forum Pascal
    Réponses: 2
    Dernier message: 06/02/2009, 17h30
  3. Réponses: 7
    Dernier message: 18/01/2008, 14h36
  4. Recherche d'un motif dans une image ?
    Par MonsieurAk dans le forum Windows
    Réponses: 1
    Dernier message: 17/06/2006, 11h39
  5. [SQLite]éliminer un motif dans des champ TEXT
    Par Invité(e) dans le forum Langage SQL
    Réponses: 2
    Dernier message: 26/05/2005, 17h44

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