Lire waveform

Bonjour,
J'aurais aimé savoir comment convertir un fichier waveform (issu du vi "écrire des waveforms dans un fichier") en simple texte afin de pouvoir le lire sous matlab par exemple. Il y a bien le vi "exporter des waveform dans un fichier tableur", mais ce n'est pas ce que je veux.
J'en profite pour poser une seconde question : est-il possible de faire une boucle cadencée à moins d'une milliseconde sous Labview ?
Merci d'avance.

Bonjour Cyco,
Pour ton premier point, je te propose de t'inspirer du snippet suivant qui expose 2 méthodes : soit le texte émanant de la waveform est mis dans un tableau, soit dans une chaine de caractères simple avec tabulations.
Pour la seconde question, la réponse est non. 1ms correspond à la période de l'horloge logicielle de Windows et est donc la plus petite unité de temps pour une boucle cadencée, sauf si on utilise une horloge matérielle (voir les exemples dans LabVIEW). Néanmoins, il faut savoir que Windows ne réagit pas précisément dès lors qu'on descend sous les 10ms. On a alors de variations importantes du temps d'exécution, dépendantes notamment de l'utilisation processeur, des interruptions dues au clavier, à l'écran, etc... En gros on a beau mettre 1ms en temps de boucle, il se peut que Windows rame et mettre 4ms (par exemple) à exécuter le code.
Cdt,
Eric
Eric M. - Application Engineering Specialist
Certified LabVIEW Architect
Certified LabWindows™/CVI Developer

Similar Messages

  • Error 4803 lors de lecture de plusieurs Waveforms

    Bonjour.
    J'ai tenté une recherche sur cette erreur, mais elle ne pas donné satisfaction.
    Mon but est de jouer un son, a partir de Waveforms (des sinusoides pur). Ces Waveforms sont aux nombre de 6 et sont comprises entre 80 et 700Hz.
    Le problème c'est que lorsque je connecte plus de 2 signaux sur le VI "Jouer un son" , j'ai une erreur a l'execution de cette partie du programme qui est affiché sur l'image jpeg :
      LabVIEW:  (Hex 0x12C3) Le driver ou la carte son ne supporte pas l'opération désirée.
    J'ai enregistré, toujours a l'aide de quelques sous VI comme Enregistrer une waveform dans un fichier .Wav, Trois de mes signaux sur les 6 au totales, que je met a disposition.
    Ce fichier est représentatif de mon erreur : C'est pourtant un fichier .wav que Labview a lui même generé avec 3 sinusoides de 80 a 700hz, et pourtant il n'arrive pas à lire le fichier, que ce soit par mon application, ou par un exemple "Sound File to Sound Output", l'erreur est la même.
      C'est à coucher dehors, surtout que l'application arrive bien à lire deux de mes 6 signaux en même temps. A partir de trois, c'est la cata.
    Une idée ? Ca fait 3 nuit que je taffe dessus et j'ai pas trouver
    Attachments:
    son.zip ‏30 KB

    Hi Jerdl.
    This part of forum is the English one. To get a faster answer you should repost in English here.
    The french community is here.
    Could you tell us more details?
    Which OS, LabVIEW version, soundcard do you use? Have you got the latest driver version of your soundcard?
    Regards.
    Romain D.
    National Instruments France
    #adMrkt{text-align: center;font-size:11px; font-weight: bold;} #adMrkt a {text-decoration: none;} #adMrkt a:hover{font-size: 9px;} #adMrkt a span{display: none;} #adMrkt a:hover span{display: block;}
    NIDays 2010 : Conférence mondiale de l'instrumentation virtuelle
    >>Détails et Inscription<<

  • Ralentissement : lecture vidéo et waveform

    Bonjour à tous,
    Voila plusieur temps que je travaille sur un VI pouvant lire une vidéo de type AVI et un tableau de waveform en même temps (ces 2 fichiers ont été enregistrés avec un autre VI).
    Cependant quand je lance la lecture, il y a de fort ralentissement...
    Pourtant, j'ai essayé de faire marcher la lecture d'un tableau de waveform et la lecture d'un AVI séparé, ça marche nickel. Le souci viendrait donc de les faire marcher en même temps... et correctement !
    Ci-joint le VI qui me pose problème avec ses subVI
    J'ai aussi rajouté les VIs qui m'ont permi de lire un tableau de waveform seul ou une vidéo seule.
    J'ai également poster un tableau de waveform (je peux pas vous poser de .AVI car ils sont trop lours (550 Mo pour 15 sec de video :-/)
    Je vous remerci
    Geoffrey, LabVIEW Associate Developer
    Pièces jointes :
    Waveform + Video - Lecture.zip ‏3022 KB

    Bonjour George,
    Il y a plusieur choses qui pourraient causer ces ralentissements dans votre programme:
    La première est que vos deux fonctions sont dans la meme boucle, du coup la plus rapide doit attendre la plus lente a chauque itération. Il serait peut etre plus judicieux de séparer ces deux fonctions dans deux boucles distinctes.
    De plus, vous n'utilisez aucune temporisation. Vore VI va tourner aussi rapidement que le CPU ne l'autorise (100% de la puissance d'un coeur réparti sur le nombre de coeurs de votre machine). L'idéal serait de rajouter une temporisation dans vos boucles pour éviter de surcharger le processeur.
    Il y a aussi d'autre remarques d'ordre plus général (et probablement non liées a votre problème). Deux en particulier m'ont sautées aux yeux:
    * La présence de "coercion dots". Ces pounts rouges aux entrées de certaines fonctions signifie que le type de donnée donnée  n'est pas le même que le type de donnée attendu. Il y a des fonctions de conversion dans LabVIEW qui vous autorisent a convertir les différents types de données numériques (entre autres). Vous les trouverez dans la palette numérique de LabVIEW.
    * Vous ne transmettez pas les sorties d'erreur entre les itérations de votre boucles ni ne les lisez en fin d'execution. 
    Cordialement 
    Florian Abry
    Application Engineer Group Leader
    NI Germany

  • Moyenner une waveform

    Bonjour, 
    Je doit réalisé sur LabVIEW un oscilloscope. Le signal à traiter est donné par un GBF, récupéré via une carte d'acquisition. Dans le programme, j'utilise un assistant DAQ (permet de régler les paramètres d'acquisition : le nombre d'échantillons, la fréquence d'échantillonnage...) dans une boucle while. 
    Cet assistant revoit une waveform et génère une courbe à chaque itération de la boucle while. Comme tout sur "bon ascilloscope", je cherche à y introduire une fonction qui permet de réduire le bruit du signal. Pour cela, j'aimerai faire un système pour moyenner le signal. 
    Est-il possible de stocker quelques itérations, en faire une moyenne et retourner cette moyenne dans un graph ?
    Pour ne pas ralentir l'affichage (afficher une courbe à chaque itération et non toutes les 5 itérations si on moyenne sur 5 itérations), est-il possible de faire un stockage "glissant" ?
     Si dessous une image de l'assistant : 
    Révélation (Surlignez pour lire)
    J'espère avoir été assez clair. 
    Simon 

    Bonjour,
    Je ne suis pas tous les jours devant mon PC... qui est en panne.
    Si le problème consiste à "nettoyer" la réponse d'un système linéaire à une excitation sinus, alors c'est assez simple.
    La réponse est normalement sinus et le bruit en haute fréquence, un filtre passe bas un pôle suffit parfois. 
    On peut le faire en ligne sur la boucle WHILE avec un registre à décalage et la relation:
    y(n) = y(n-1) *(N-1)/N   + x(n)/N
    N est le nombre de moyennes,
    n est l'indice de la donnée, x pour l'entrée et y pour la sortie du filtre
    Il faut initialiser le registre par 0 par exemple. Le transitoire sera curieux, mais pour un sisgnal sinus par définition stationnaire, ce n'est pas un soucis
    Il faut placer le filtre entre le bloc d'acquisition et le graphe...
    Le filtre va introduire un déphasage, donc placer le même filtre pour tous les signaux si on veut les comparer dans le domaine des temps. Le retard est  N/Fe...
    Il faut évidemment respecter la règle de Shannon ( Fe > 2* F sinus) mais bien plus si on veut regarder le signal sur l'oscillo. Il faut prendre au moins le rapport 20 au lieu de 2
    Par exemple :
    Fc fréquence de coupure du filtre passe bas = 2 * F sinus 
    Fe fréquence d'échantillonnage = 20 * F sinus
    N nombre de moyennes = Fe / Fc = 10 dans l'exemple..
    Cela devrait répondre au problème.
    Merci de me tenir au courant du résultat. Je n'ai pas en ce moment dde PC avec LV, pour tester

  • Transformer données waveforme 1D en tableau

    Bonjour,
    Je souhaite faire de l'acquisition de deux voies différentes, pour cela j'utilise le DaqmX Lire, mes données en sortie sont sous la forme d'une waveforme analogique 1D.
    J'aurais voulu séparer mes données et les mettre dans un tableau avec par exemple dans la 1ere colonne le temps, la 2ème les données de la voie 1 et dans la 3èmes les données de la voie 2. Comment pourrais je faire pour réaliser un tel tableau ?
    2ème question, je voudrais avoir un affichage sur ma face avant des données de la voie 1 et 2 , issues de la waveforme 1D, comment faire cela ?
    Je vous remercie par avance de votre aide.

    Bonjour,
    Encore merci d’avoir modifié le vi
    J’ai quatre questions sur son utilisation :
    actuellement les données ne sont pas enregistrées à la
    fréquence d’enregistrement que je spécifie dans le Daqmx et sur la face avant
    (par exemple 1s) mais à une fréquence beaucoup plus élevée, par conséquent pour
    un essai de quelques dizaines de secondes je me retrouve avec un nombre de
    points considérables et des fichiers lourds (environ 500ko pour 10s), chose
    assez gênante car je souhaite faire des acquisitions sur des longues durées
    (plusieurs semaines) et pour cela je pense régler la fréquence d’enregistrement
    de manière à obtenir un point toutes les 10 ou 30s.
    au lieu d’enregistrer les données « brutes »,
    n’est-il pas possible de sauvegarder les données en sortie du vi « lissage
    de deux wfm » ?
    je ne vois pas comment modifier le programme de manière
    à ce que lorsqu’on active le bouton « SaveWave0 » (sur la face avant) cela enregistre les
    données de la voie 0 dans un fichier tableur, dont le chemin est spécifié par
    la « boîte de dialogue fichier » située en dehors de la boucle d'enregistrement et
    dont j’ai indiqué le nom de fichier « Voie0 ». L’idée est que les données soient
    sauvegardées au fur et à mesure de l’exécution du programme, de manière à les
    avoir même si le vi plante pendant son exécution.
    je me pose la même question pour la voie 1
    Merci beaucoup pour ton aide.
    Christophe
    Pièces jointes :
    Acqu_Tempv5.vi ‏123 KB

  • Synchronisation vidéo et waveform

    Bonjour à tous !
    Le problème est dans le titre, j'arrive pas à synchroniser ma vidéo et ma waveform quand je veux les lire en même temps.
    Quand je lance une lecture : la vidéo est bien synchronisée pendant les 5 premières secondes puis ça se décale de plus en plus...
    Une idée ?
    Merci
    Geoffrey, LabVIEW Associate Developer
    Pièces jointes :
    Vidéo + Son + FFT.vi ‏74 KB

    " ... c'est ce que j'ai trouvé de mieux, si quelqu'un a une meilleur idée
    pour avoir un cadencement proche de 33,33333333 ms "
    Sur un OS multitâches comme Windows et en dehors d'un véritable environnement "Temps Réel",
    il est illusoire d'espérer une précision temporelle supérieure à 1 (voir 2) ms.
    Davantage de soins au Diagram serait un plus. Pour toi même ... et pour ceux à qui tu demandes de l'aide
    par exemple, ceci :
    peut rapidement devenir ceci, nettement plus lisible et compréhensible :
    Mon intention n'est pas de te heurter, mais de t'aider.

  • Départ d'une waveform à 0 ?

    Bonjour,
    J'acquière des waveform via DAQmx Lire (voir en PJ). Le graphe déroulant qui affiche ces waveform ne commence jamais à to = 0. Impossible de le forcer à 0, de quelque façon que ce soit, car ces waveforms sont générées par le daqmx lire.
    Est-ce que qq sait comment afficher un graphe qui commence à 0 lorsque l'on commence chaque acqui ?
    Cdlt,
    Wilfried.
    Pièces jointes :
    Sans titre 1.png ‏12 KB

    Bonjour,
    Avec le VI "Définir un attribut de Waveform" vous devez pouvoir vous débrouiller.
    Cordialement,
    Da Helmut
    Pièces jointes :
    exemple.vi ‏28 KB

  • Lire un fichier tableur 2D pour dessiner un graphe XY

    Bonjour, je souhaiterai lire un fichier tableur 2D, plus précisément lire deux colonnes de valeurs d'un même fichier tableur pour ensuite afficher une waveform.
    Si une personne peux m'indiquer comment le faire, ça serais super!
    Merci d'avance.
    Résolu !
    Accéder à la solution.
    Pièces jointes :
    Lire tableur 2D.vi ‏15 KB

    Et voilà...

  • Frequence echantillonnage nombre echantillon a lire

    Bonjour,
    J utilise actuellement LABVIEW mais j ai du mal a comprendre certaines choses pour l acquisition de donnees continues et en particuler quelle est exactemement la difference entre la frequence d echantillonage et le nombre d echantillon a lire?
    Est ce que la frequence d echantillonnage est la frequence a laquelle on lit le signal et ensuite on stocke tous les points dans une memoire et qu apres on choisit le nombre d echantillon que l on souhaite lire dans LABIVEW parmit tous ces points avec nombre d echantillon a lire?
    J ai deja cherche sur votre forom mais je bloque toujours sur cette notion.
    Si quelqu un pouvez m aider s il vous plait.
    Merci d avance
    Romaric GIBERT
    Résolu !
    Accéder à la solution.

    bonjour la fréquence d'échantillonnage est le (1/dt) entre deux points de la mesure, avec dt en seconde dont 1/dt fréquence Hz. Le nombre de points à lire est .... le nombre de points de mesure à récupérer à chaque lecture. Simplement la carte d'acquisition réalise des mesures avec un temps de dt entre 2 points, et le code LabVIEW via le driver d'acquisition retourne N points. cela représente une waveform, qui est une structure t0 temps de départ de la mesure, dt temps entre deux points en seconde (inverse à la fréquence) et un tableau Y des N mesures
    Luc Desruelle | Voir mon profil | LabVIEW Code & blog
    Co-auteur livre LabVIEW : Programmation et applications
    CLA : Certified LabVIEW Architect / Certifié Architecte LabVIEW
    CLD : Certified LabVIEW Developer / Certifié Développeur LabVIEW

  • How can i display Waveform chart in a subpanel using Vi templates.

    Hi All
    I am new to Labview hence need  some help. I am trying to develop an application which reads some data from a Wireless Sensor Network (WSN). The WSN consists of base station connected to the USB port which recieves data from other sensor nodes.  The data comes in a certain format.  Node name, temperature reading, humidity reading etc. I want to read the data from the serial port and  based on the Node name, i want to display the information for each node in s separate window or subpanel etc. So if a new node is detected then a new window is created for that node. Since all the nodes have the same sensors on board i only need a one template. I can read the data using the serial port, parse the data to detect which node it is and also what the sensor readings are. I have created a template VI for the sensor node. I am having problems in displaying the template VIs in a subpanel. I can succesfully display a Waveform graph in the subpanel but i am having problems in displaying a waveform chart in the subpanel. I can see the actual waveform chart in the subpanel, but i cannot see the plot. Would be greatful if someone could point out what i am doing wrong here.
    Many Thanks
    Raza
    Solved!
    Go to Solution.
    Attachments:
    template_graph.vi ‏16 KB
    graph_template.vit ‏11 KB

    Hi All
    I think i have solved the problem. It seems like i was running the Vi in a loop. I have taken the Run Vi outside the while lopp and this works fine. Also i need to close the reference at the end.
    Raza

  • How can i print out the waveform chart?

      hello everybody,
    how can i print out the "waveform chart". can i do it just push the button. ( example; stop button is stop the program etc..)
    i checked the NI examples but i can't understand. i'm new to the Labview.
    pls help me.
    i added the my program
    look forward your reply
    regards from turkey...
    Message Edited by hknmkt on 05-29-2008 04:15 AM
    Attachments:
    29.05.2008_11.vi ‏37 KB

        hi jim,
    i tried the program but it's not running. When i run the program, it's print out without run the program
    i added the printed file.
    look forward your reply
    hakan
    Attachments:
    error8.JPG ‏8 KB

  • How can I tell if an arb is currently generating a waveform? (LabView 8.5)

    I have a VI which configures the load impedance of a 5421 arb card by changing the value of the property node "Load Impedance".
    This only works if the arb is not generating at the time of the call to the VI.
    I wish to be able to call the function when the arb is either generating, or not generating a waveform.
    Is there a way I can determine whether the arb is generating a waveform so that if necessary it can be aborted, then the Load Impedance changed, then the output re-initiated?
    Thanks
    Alan

    The fastest way to do this is to Disable the output (with enable output.vi) change the impedance and re-enable the output.
    Of course if you want to wait untill a generation session is complete you will need to configure the Done event to output something you can monitor (hardware only for unknown reasons) and use that to gate your changes.
    Jeff

  • Missing Waveform Monitors - New Install, Most Recent Premiere CC 2014

    Hi,
    I recently downloaded and installed Premiere Pro CC and related apps with a cloud subscription on a new Mac Pro tower. I connected by working RAIDs and opened a PPro project originated on my previous edit system, an iMac.  Right away I noticed some strange behavior and key features missing when I went to color correct my footage.
    With the desired timeline active in the "Editing" workspace, I used the keyboard shortcut (I also tried this with the dropdown menu) and switched the workspace to color correction. Rather than the timeline activated in the "editing" workspace, a completely different timeline in the project appeared in the "color correction" space. This occurred multiple times with seemingly every timeline, but the one I desired to correct activating in the "color correction" space.
    Also, the waveform monitors are absent from both the reference and program viewer menus. I can't seem to the find them anywhere. This leaves me feeling a bit crazy, as I was operating in the most current PPro CC version on the iMac just yesterday and everything was in its place.
    Thoughts on what  is going on here?
    Here are my system specs:
    Mac Pro
    Yosemite 10.10.1
    Processor: 3.5 GHz 6-COre Intel Xeon E5
    Memory: 32 GB 1886 MHz DDR3 ECC
    Graphics: AMD FirePro D700 6144 MB
    For now I suppose, I'll try uninstalling and re-installing the app. Other ideas? Anyone else experiencing this?
    Lindsay

    Thank you for all of the feedback. I have tried un-installing and re-installing twice now. Once using the cleaner tool and once without. Neither has remedied the problem. I was sure to check "Remove Preferences" when performing the un-install, but when I opened a new project after the re-installation, PPro opened in the "Color Correction" workspace rather than opening in the standard editing workspace and still no scopes.
    Other ideas?
    I found this thread, which isn't boosting my confidence in a healthy Premiere / Mac Pro relationship, but I have seen no mention of the missing scopes issue I am experiencing. And really I haven't progressed to the point of attempting an export or render. As you well know, scopes are vital, and there's no point exporting if I can't properly polish a product.
    Premiere Pro CC and the New Mac Pro (2014)

  • What deterimes the amount of data in a waveform from a TDS 1012 scope

    Hello,
       What determines the amount of data that is in a waveform that comes out of a TDS 1012 scope? I am assuming that I will have to look at the driver vi to determine the commands sent to the scope to figure it out. I am in a situation that I need to have the y axis to have a high resolution, that results in very little data being collected from the scope.
    Regards,
    Kaspar
    Regards,
    Kaspar

    Hello,
        The amount of data that comes out of the TDS 1012 scope is determined by the data start (DATaTARt)  and data stop (DATaTOP)  commands that are defined on page 58 (2-38) in the  346 page programming manual for the scope. I found of that the data start was not set to 1, which is the beginning of the data.
        I also had a very low level signal on channel that was all most unreadable by the scope that caused me to think that I was not getting all of the data.
    Regards,
    Kaspar
    Regards,
    Kaspar

  • Time delay between 2 waveforms

    Hi,
    Please bear with me while I explain what I’m trying to do :-)   Basically, in the attached LabView file (“flow vis + trigger-m.vi”), I am generating 2 signals: a sinusoidal waveform (used to drive an actuator) and a square waveform (used as a TTL signal to trigger image capture on a CCD camera). Currently when I run the program using LabView 7, both signals are started simultaneously. I would like to introduce a time delay that can be manually specified in the VI, such that when the program is started (i.e. at time t0), the sinusoidal waveform also starts (i.e. at time t0) before the square waveform (i.e. at time t0 + delay time). In a practical sense, this means allowing the actuator to run for several seconds before capturing any images.
    It sounds like it should be quite straightforward to do, but I’m not so sure how to progress. I have begun to modify the original VI (“flow vis + trigger-m_2.vi”, as attached), but would be much appreciative of any help or suggestions on how I can complete the VI to meet the above requirement.
    Many thanks,
    Mark
    Attachments:
    flow vis + trigger-m.vi ‏939 KB
    flow vis + trigger-m_2.vi ‏895 KB

    Please refer this URL for an example VI I made to solve the problem:
    http://forums.ni.com/ni/board/message?board.id=170&message.id=227603
    Way S.
     NI-UK Applications Engineer

Maybe you are looking for