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

Calcul scientifique Python Discussion :

Codage d'une fonction de détection de pics


Sujet :

Calcul scientifique Python

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 26
    Points : 8
    Points
    8
    Par défaut Codage d'une fonction de détection de pics
    Bonjour à tous,

    A l'issue d'un projet basé sur le codage d'un logiciel en Python devant permettre d'acquérir, visualiser et traiter les données issues d'une carte électronique récupérant le signal ECG d'un patient.
    Le signal ECG arrive comme signal audio sur le PC (car un audio codec est présent sur la carte électronique) et ce signal se présente au final comme un tableau de 44100 échantillons (fréquence d’échantillonnage). Je suis bloquée par la manière de coder. La façon de procéder est la suivante.

    Tout d’abord j’ai mon signal, un vecteur de points. Je cherche à enregistrer les maxima locaux sachant que l'indice de ces pics ne peut pas être trop proche les uns des autres. 5000 points minimum entre l'indice de 2 pics voisins me semble correct pour éviter qu'un battement cardiaque soit considéré comme 2 pics. Je pensais utiliser la fonction findpeaks de Python ici.

    Ensuite je veux enregistrer tous les indices de ces points dans un vecteur de taille n.

    Ensuite je fais ensuite la différence entre le point suivant et le point courant pour avoir tous les intervalles de battements. Ce qui donnerait un vecteur de taille n-1.

    Enfin je ferais la moyenne arithmétique des ces intervalles pour trouver l’intervalle moyen. Ce qui me permettrait d’obtenir ma fréquence exprimée en nombre de points. Si f=23000, pour la mettre en bpm : f(bpm) = f/44100*60, où 44100 est la fréquence d’échantillonnage et je multiplie par 60 car c’est par minute.

    Je vous remercie par avance pour votre aide.

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Salut,

    Quelle est la question ?

    Tu semble avoir compris le principe, est-ce un problème de code ?

    Copie sur ta voisine on ne dira rien.

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 26
    Points : 8
    Points
    8
    Par défaut
    Oui tout à fait. Je ne sais pas comment utiliser la fonction findpeaks sur mon signal ni même continuer à coder la suite.
    Pourriez-vous m'aider s'il vous plaît?
    Merci d'avance!

  4. #4
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Ce n'est pas comme utilisé sur le lien que je t'ai mis ?

    Comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
        # find R-peak using a translation of findpeak.m
        findpeaks = vrp.recordedSignal.findpeaks
        peaks, locs = findpeaks(self.recordedSignal, minheight, minwidth)
        beat = zip(peaks, locs)
        self.delta = minheight-minwidht
        self.pouls = 44100/self.delta

Discussions similaires

  1. Réponses: 1
    Dernier message: 22/04/2015, 11h01
  2. Problème avec une fonction "recherche de pics"
    Par gantix dans le forum Calcul scientifique
    Réponses: 3
    Dernier message: 09/07/2014, 16h57
  3. [Débutant] Calcul précis de la dérivée d'une fonction pour trouver des pics
    Par abel413 dans le forum MATLAB
    Réponses: 3
    Dernier message: 25/07/2013, 11h24
  4. détection de pic et creux sur une image ?
    Par didierBB dans le forum Traitement d'images
    Réponses: 4
    Dernier message: 28/12/2012, 11h03
  5. codage du calcul de dérivée d'une fonction mathématique
    Par pispa2005 dans le forum Mathématiques
    Réponses: 5
    Dernier message: 08/01/2005, 20h54

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