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

Scilab Discussion :

Rééchantillonnage d'un signal 1000 Hz en 50 Hz


Sujet :

Scilab

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Mars 2015
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Rééchantillonnage d'un signal 1000 Hz en 50 Hz
    Bonjour,

    je poste sur ce forum en espérant que quelqu'un saura m'aider, parce que je me casse la tête sur un problème qui je suis sûr n'est pas si compliqué que ça au final.

    Dans le cadre de mon stage de master 2 (STAPS spécialisé biomécanique), je travaille sur l'analyse de sauts dans le plan sagittal dans la pratique sportive, j'utilise une plateforme de force, couplée à un caméscope. Je suis en train de comparer des signaux de vitesses au niveau du centre de masse obtenus grâce à la trajectographie sous un logiciel de tracking vidéo (par dérivation de la position par le temps), à ceux obtenus via le logiciel fourni avec la plateforme de force (par intégration du signal d'accélération que la plateforme de force calcule grâce au PFD => a=F/m).

    Le souci est donc le suivant arrivé à ce niveau, la plateforme de force a une fréquence d'acquisition à 1000 Hz, tandis que la vidéo est en 50 Hz,ce qui ne me simplifie pas la vie pour pouvoir comparer facilement les vitesses entre elles, ou éventuellement pouvoir faire des corrélations. Il me faut ré-échantillonner mes valeurs obtenues grâce à la plateforme de force pour les passer de 1000 à 50 hz, et c'est bien là que le bas blesse.

    Scilab entre donc en jeu, connaissant quelques bases en Scilab, je sais qu'il y a un moyen de coder une fonction pour ré-échantillonner mes valeurs vers du 50 Hz, mais je ne trouve pas la bonne. J'ai écumé le web en tapant "ré échantillonnage", "resampling", "downsampling",... j'ai cru être tombé sur la bonne fonction mais les essais sous Scilab se sont avérés peu concluants.

    En regardant certaines pages web dédiées à la fonction resample est visiblement directement implémentée dans Matlab, mais à mon grand désarroi pas dans Scilab... Si une âme charitable pouvait m'apporter un petit coup de pouce, je pense que ça m'éviterait quelques cheveux blancs.

    N'étant pas trop programmateur, et encore moins mathématicien je suis à la recherche d'aide pour un script sur Scilab qui me permettrait de pouvoir retraiter mes données en 1000 Hz pour les passer en 50 Hz.

    Je vous remercie d'avance pour vos réponses, bonne journée.

    Mickaël

  2. #2
    Membre averti
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Juin 2012
    Messages
    257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2012
    Messages : 257
    Points : 321
    Points
    321
    Par défaut
    Bonjour,

    En prenant simplement 1 échantillon tous les 20 échantillons du signal d'origine cela ne marche pas ?

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Octobre 2013
    Messages : 30
    Points : 26
    Points
    26
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    // resampling selon x : ACorr, BCorr
    exec('interp1h.sci'); // HOMEMADE
    ACorr = interp1h(varA_time', varA', x', 'hold');
    BCorr = interp1h(varB_time', varB', x', 'hold');
    interp1h c'est du homemade chez moi mais c'est basé sur la méthode fourni par scilab ;: interp1

    interp1

    one_dimension interpolation function

    Calling Sequence

    [yp]=interp1(x, y,xp [, method,[extrapolation]])

    Note que cette fonction a plein de petites soeurs...


    L'idée est donc la suivante :

    1 - tu prends ton signal à 1000Hz
    2 - tu créés ton temps de référence à 50Hz
    3 - tu interp1 ton signal à 1000Hz avec ta nouvelle référence de temps

    Pour faire ton signal à 50Hz un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    B50Hz= [A1000Hz(1):0.2:A1000Hz(length(A1000Hz))]


    Je te conseille de jeter un oeil sur Shanon et sur la perte d'informations si tu veux passer de 1000->50Hz.

Discussions similaires

  1. [Signal] Rééchantillonnage d'un son
    Par Clement69 dans le forum Algorithmes et structures de données
    Réponses: 9
    Dernier message: 15/12/2006, 15h47
  2. [VB6] [MDI] Signaler la fermeture d'une fille à la mère
    Par cpri1shoot dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 13/04/2004, 08h57
  3. [LIMIt 0,1000]
    Par viny dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 18/01/2004, 10h15
  4. Dxdiag me signale que j'ai 510M de ram
    Par Goetz dans le forum DirectX
    Réponses: 1
    Dernier message: 29/09/2003, 14h33
  5. Interception du signal SIGINT
    Par macleod dans le forum MFC
    Réponses: 2
    Dernier message: 01/07/2003, 18h39

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