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 :

Augmenter la précision d'une acquisition


Sujet :

Signal

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    296
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 296
    Points : 99
    Points
    99
    Par défaut Augmenter la précision d'une acquisition
    Bonjour,
    J'ai un outil qui fait des acquisitions à 100hz et une partie à 10hz je voudrais pouvoir modifier artificiellement mes données à 10hz pour les avoir à 100hz.
    En effet quand j'affiche les valeurs de mes capteurs à 10 hz ça fait des marches d'escalier car le logger enregistre la même valeur 10 fois de suite.
    les données à recalculer ressemblent à un chemin sinueux en 3D.
    Il n'y a pas de changement brusque de cap.
    Est-il possible d'utiliser une moyenne glissante ? ou une autre solution , j'ai regardé interp1 mais ça ne marche que pour de la 2D ?
    Merci

  2. #2
    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 : 45
    Localisation : Etats-Unis

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

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Points : 9 860
    Points
    9 860
    Par défaut
    Tu interpoles par une fonction.
    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.

  3. #3
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 52 882
    Points
    52 882
    Par défaut
    Citation Envoyé par sdecorme Voir le message
    j'ai regardé interp1 mais ça ne marche que pour de la 2D ?
    A mon avis, tu as mal regardé
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  4. #4
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    296
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 296
    Points : 99
    Points
    99
    Par défaut
    Tu penses que je peux faire axe par axe: X Y Z
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Xi = interp1(X,Query);
    Je voudrais calculer toutes les valeurs de ma courbe comment je peux définir Query pour toutes mes valeurs de x sachant que le delta x n'est pas constant.
    par contre je connais ma fréquence d’échantillonnage.
    Mais X n'a pas de lien avec le temps car il s'agit d'une position.
    Merci

  5. #5
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    296
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 296
    Points : 99
    Points
    99
    Par défaut
    Je viens de tenter interp1 avec ma fonction
    mais j'ai une jolie erreur.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    The grid vectors are not strictly monotonic increasing.
    d'après ce que j'ai compris ça viendrait du fait que au moins deux de mes valeurs sont identiques . Comment je peux remédier à ce petit problème.
    Voici mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    f = load (FileName);
     
    Time = f(:,1);         % s
    X = f(:,2);            % m
    Y = f(:,3);            % m
     
    Time = Time- Time(1);% reset le chrono
     
    x = 0:0.1:Time;
    ylinear = interp1 (Time, X, x);
    plot(Time,X,'.');
    plot(Time,ylinear,'r.');
    mes données sont stockées à 40hz environ et je voudrais avoir un échantillonnage régulier à 30Hz par exemple.
    ci-joint un échantillon de mes données.

    Merci
    Fichiers attachés Fichiers attachés

  6. #6
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 52 882
    Points
    52 882
    Par défaut
    Voici un exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    f = load('Interp.txt');
     
    Time = f(:,1);
    X = f(:,2);
     
    [Time,idx] = unique(Time, 'first');
    X = X(idx);
     
    Time = Time-Time(1);
     
    Timei = linspace(0, Time(end), numel(Time)/100);
     
    Xi = interp1(Time, X, Timei);
     
    figure
    plot(Time, X, '.', Timei, Xi, 'r*');
    A toi d'adapter le vecteur Timei à ton problème.
    Images attachées Images attachées  
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  7. #7
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    296
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 296
    Points : 99
    Points
    99
    Par défaut
    Super ça roule merci ,
    ma seule dernière question (pour ce post )
    Actuellement je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Timei = linspace(0, Time(end), numel(Time)/1);
    Coef = 30 / Timei(2); 
    Timei = linspace(0, Time(end), numel(Time)/Coef);
    Mais je pense qu'il y a un moyen plus propre de faire ça
    pour avoir un pas constant .

    Edit : 20h45
    Surtout que ça marche pas , le temps ne vaut pas 30 ???

    Merci

Discussions similaires

  1. Augmenter la résolution d'une image
    Par tlemcenvisit dans le forum Images
    Réponses: 3
    Dernier message: 20/10/2006, 14h03
  2. Précision pour une création de .jar exécutable
    Par cysboy dans le forum Langage
    Réponses: 5
    Dernier message: 05/08/2006, 11h03
  3. augmenter la taille d'une checkbox
    Par akrobat dans le forum Flash
    Réponses: 4
    Dernier message: 16/06/2006, 10h09
  4. augmenter la taille d'une tablespace?
    Par sali dans le forum Oracle
    Réponses: 1
    Dernier message: 01/12/2005, 15h52
  5. Réponses: 17
    Dernier message: 04/08/2005, 14h49

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