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

LabVIEW Discussion :

Echantillonnage d'un signal pour obtenir une waveform


Sujet :

LabVIEW

  1. #1
    Membre du Club
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Mars 2006
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

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

    Informations forums :
    Inscription : Mars 2006
    Messages : 71
    Points : 63
    Points
    63
    Par défaut Echantillonnage d'un signal pour obtenir une waveform
    Bonjour,

    J'ai un signal brut sans info temporelle obtenu à partir d'une camera thermique.
    La valeur de ce signal en °C met à jour en permanence une variable de type double 64 bit Reel.
    (Temperature)

    J'essaie d'utiliser le contenu de cette variable pour convertir le signal en waveform.
    J'ai compris quil fallait utiliser la fonction construire une waveform.

    Il faut donc :
    • un "timestamp" t0 (Début d´acquisition)
    • une période d'échantillonage dt
    • un tableau 1-D contenant les valeurs des points.

    Ma question est : Comment effectuer l'échantillonage d'un signal brut dont l'acquisition est effectuée en temps réel pour remplir ce tableau 1-D contenant les valeurs des points ?

    J'ai trouvé une solution possible, voir posts suivants.

    Merci d´avance

    Chris

  2. #2
    Membre du Club
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Mars 2006
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

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

    Informations forums :
    Inscription : Mars 2006
    Messages : 71
    Points : 63
    Points
    63
    Par défaut
    Je ne suis pas sûr d´avoir été très compréhensible, je reformule avec un exemple de mon problème.

    J´ai un signal sans information temporelle qui provient d´un appareil de mesure. La valeur de ce signal évolue au cours du temps, je souhaite stocker dans un tableau la valeur de ce signale toute les 40 ms (Echantillonage).

    Mon problème c´est que ce signal est obtenu dans une boucle while mise à jour toute les 40ms (Je suis obligé de la garder pour des raisons matériels, le vi que j´utilise est plus complexe)

    Comment dois-je modifier l´exemple si dessous pour chronologiquement :

    - Stocker la valeur du signal prise toute les 40 ms dans un tableau [Résolu]
    - Convertir le signal en waveform (Signal + infos temporelles) [Résolu]
    - Visualiser en direct dans un graph sur la face avant son évolution au cours du temps avec une echelle en abscisse du temps réel



    Cela fonctionne avec un graph DBL mais le problème c´est que le temps affiché ne correspond à rien de cohérent et je n´arrive pas en changeant les propriétés du graph à avoir ce temps en ms.

    Merci
    Fichiers attachés Fichiers attachés

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2009
    Messages : 44
    Points : 37
    Points
    37
    Par défaut
    tu as des graphes simple (au lieu des graphes XY) qui te permettent de visualiser directement tes mesures. en abscisse, tu auras le nombre de points et en ordonnée la valeur de chaque point.
    il ne te reste plus qu'a faire une petite conversion pour passer du nombre de points au temps.

  4. #4
    Membre du Club
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Mars 2006
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

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

    Informations forums :
    Inscription : Mars 2006
    Messages : 71
    Points : 63
    Points
    63
    Par défaut
    J´ai eu la même idée au début, mais je débute avec LabVIEW en version allemande, et je n´ai pas trouvé ou on peut faire cette conversion.

    Avez vous une idée de la précision du wait? J´ai lu dans un post que c´est de l´ordre de la milliseconde mais cela reste à confirmer.

    Merci

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2009
    Messages : 44
    Points : 37
    Points
    37
    Par défaut
    l'axes des abscisses de ton graphe de droite est gradué en mesure. (en gros, c'est ton nombre de points que tu as déjà pris.
    a toi de faire la conversion je pense. ou sinon, tu acquières une valeur tous les secondes ^^.

  6. #6
    Membre du Club
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Mars 2006
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

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

    Informations forums :
    Inscription : Mars 2006
    Messages : 71
    Points : 63
    Points
    63
    Par défaut
    Ce qui m´inquiête c´est la non cohérence du temps entre les deux graphs.

    Celui de droite me parait correct en théorie

    car 50 x 40 ms = 2000 ms <=> 2 s

    J´ai essayé de mesurer avec ma montre la cohérence pour 2 minutes de capture du signal et il semblerait que l´échelle du graph waveform soit fausse.

    Sur le graph DBL de la face avant l´affichage en absisse en MM:SS me conviendrais si l´échelle était cohérente à celle du graph waveform.

    Il y a forcément une raison et une solution

    Merci

  7. #7
    Membre chevronné

    Inscrit en
    Avril 2005
    Messages
    1 144
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 1 144
    Points : 1 973
    Points
    1 973
    Par défaut
    Sur ton premier graph, l'échelle est incrémentale et pas au format temps. LV fait une conversion mais pas celle que tu attends....

    Si tu veux un graph réellement temporisé ( sais pas si ca se dit ..) , il faut que tu lui passe en entrée une waveform comme tu as fait. Ainsi, il peut adapter les abscisse du graph et pas faire un simple incrément
    L'urgent est fait, l'impossible est en cours, pour les miracles, prévoir un délai et un bon thermos.
    Quant aux MP techniques, autant les poster sur le forum approprié car, là, ils auront des réponses.

  8. #8
    Membre du Club
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Mars 2006
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

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

    Informations forums :
    Inscription : Mars 2006
    Messages : 71
    Points : 63
    Points
    63
    Par défaut
    Merci Scyrius

    Mais comment puis je faire pour avoir l´affichage sur un graph pendant l´éxécution du VI avec une échelle "réellement temporisé". Le probléme c´est que le tableau n´est transferé qu´a la sortie de la boucle while et par conséquent le graph n´est mis à jour uniquement qu´à la fin du VI dans mon cas.

    Il y aurait pas une autre solution en utilisant des registres pour créer la waveform dans la boucle while?
    (J´ai eu cette idée mais je n´arrive pas à la concrêtiser

    Question subsidiaire:

    Quel est la précisions sur un OS Windows d´une tempo de 20 ms?

    Car si c´est à 1 ms près et que la boucle s´éxécute 9 000 fois, j´ai 9 secondes d´erreur pour 3 minutes de capture et donc pas terrible

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2009
    Messages : 44
    Points : 37
    Points
    37
    Par défaut
    tu peux crée grâce au compteur d'impulsion d'horloge un chronomètre.
    tu peux donc avoir la précision de ta tempo.
    Je crois que cela dépend des instructions que tu fais faire a la boucle...

  10. #10
    Membre du Club
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Mars 2006
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

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

    Informations forums :
    Inscription : Mars 2006
    Messages : 71
    Points : 63
    Points
    63
    Par défaut
    Merci pour les conseils.

    Dans la boucle while de mon application réelle, j´utlise un VI issu d´un toolkit pour ma caméra thermique, et à ma grande surprise, il est trés vorace en temps de calculs. Mon CPU Pentium IV 2GHZ est utilisé à 100% avec un une periode d´échantillonnage de 250 ms. (Vitesse d´acquisition et de traitement des données limitées par les performances du CPU)

    Avec une période plus petite le tableau se remplit quand même mais au "grés du vent" et cela induit des erreurs monumentales

    Cela explique pourquoi mes temps n´étaient pas correcte dans mon application réelle alors que dans l´exemple que j´ai présenté il l´était.

    Encore merci à tous pour votre aide

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

Discussions similaires

  1. pb avec un formulaire pour obtenir une image
    Par maxsurf dans le forum IHM
    Réponses: 2
    Dernier message: 05/07/2007, 09h59
  2. À lire avant de poster
    Par Community Management dans le forum PHP & Base de données
    Réponses: 0
    Dernier message: 30/10/2006, 23h12
  3. Réponses: 5
    Dernier message: 29/07/2006, 00h35

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