Nombres d'échantillons

Bonjour,
je viens vers vous car je bloque sur une question d'échantillonage..
Je dispose d'un boitier NI USB 6211 ( 16 bit , 250 kS/s ) , j'utiliserai son entrée analogique et sa sortie analogique aux mêmes fréquences . La fréquence maximale que je serai amené à mesurée est de 15 Hz et au maximum 7500 Hz.
Mon entrée analogique récéptionne une accélération et ma sortie analogique génère une tension sinusoidale à fréquence variable.
Quelle formule concrète permet de définir le nombre d'échantillons à prélever ?
Cordialement
Résolu !
Accéder à la solution.

Bonjour Geof,
Je principe est d'utiliser le théorème de Nyquist. Celui ci indique que pour retrouver être capable de récupérer la fréquence de ton signal, il faut échantillonner à une fréquence égale au minimum à deux fois la fréquence la plus élevée de ton signal.
>> Sampling Theorem
>> Bandwidth, Sample Rate, and Nyquist Theorem
Cela permet de récupérer la bonne fréquence/période de ton signal. Pour récupérer la bonne forme du signal, il faudra augmenter cette proportion. En principe, il est conseillé d'échantillonnée à une fréquence de 5 à 10 fois la fréquence max de ton signal.
Cela répond-il à ta question?
Bonne journée,
M-Junior

Similar Messages

  • Rampe logarithmique et Nombre d'échantillons

    Bonjour,
    Voici mon problème, je genère des tableaux de valeurs pour ensuite générer une tension. Je définis ainsi une valeur minimale et une maximale comme ci-dessous :
    Min = 30hz
    Max = 100hz
    j'applique une échelle logathmique à ma rampe de valeurs allant de 30 Hz à 100 Hz. Lorsque j'ai 350 échantillons ma génération est " parfaite ", signal précis ( ( pas de trop grand bond entre les valeurs)  et rapide.
    Mon problème c'est que lorsque je change de valeur min et max comme ci-dessous :
    Min = 30 hz
    Max= 500 hz
    Si j'applique la même régle (( Max - Min ) x 5) j'obtiens 2350 échantillons et mon signal passe par beaucoup trop de valeurs, il est donc très ralenti... La raison c'est que ma "règle" ne vaut pas grand chose lorsque l'on souhaite l'utiliser dans un cas logarithmique. Quelqu'un peut-il me donner une relations qui me permettrait de générer un taux d'échantillons proportionnel d'une consigne à une autre? 
    Cordialement

    Non finalement j'ai résolu mon problème ! En faite dans la description du vi rampe on peut voir la formule qui lie le max le min et les n échantillons ^^

  • Nombre echantillo​n a lire avec frequence echantillo​nage 100kHz

    Bonjour
    Je dois faire l acquisition de 32 signaux en continue et les enregistrer. Pour cela j utilise une frequence d echantillonnage de 100kHz, mais je ne sais pas quoi mettre comme valeur dans le sample to read, car j ai essaye avec 1k 2k 10k 25k 50k et a chaque fois j obtiens le meme message d erreur comme quoi mes donnes ont ete ecrase.
    Si quelqu un pouvait m aider ce serait vraiment utile pour moi.
    Voici les parametres de ma cartes :
    My card ; Ni pxi 6115, min rate sample = 20kS/S, max rate sample= 10Ms/s , inpuit fifo buffer= 32Ms
    Merci de votre aide
    Romaric GIBERT

    Bonjour,
    Merci d'avoir posté votre question sur le forum de National Instrument
    Lorsque vous utilisez DAQ, les données acquises sont importées dans votre logiciel (LabVIEW, SignalExpress, code C, etc) en deux étapes de transfert important. Dans la première, les données sont transférées à partir du périphérique DAQ dans la mémoire vive (RAM) de votre ordinateur. Il ya une quantité finie de l'espace dans la mémoire vive, appelée la mémoire tampon (buffer), qui est réservée au transfert. Dans le second, les données sont lues à partir de la RAM et dans votre logiciel par morceaux. Ainsi, lorsque vous êtes invité à entrer un nombre d'échantillons pour la mesure en continu, il faut rentrer les paramètres de taille de ces transferts.
    Ainsi, par exemple, lorsque vous configurez le DAQmx Timing VI pour votre tâche dans LabVIEW, il y a essentiellement la configuration du premier transfert depuis la carte vers la RAM. Ce buffer est en dehors du hardware et est distincte de toutes les données accessibles dans votre logiciel. Une des entrées du VI timing est Sample per Channel. Lorsque le mode d'entrée de l'échantillon est mis à échantillons continus, les échantillons par canal définit la taille relative de ce buffer qui est réservé dans la RAM.
    Si vous mettez la valeur de la Sample per channel à -1, vous allez lire les données de la mémoire tampon à chaque fois que vous appelez la fonction de lecture. Si cela corrige votre problème, alors cela signifie que vous ne lisez pas la mémoire tampon assez vite donc il se remplit et vous obtenez cette erreur de débordement.
    Brice S.
    National Instruments France

  • échantillons de prédéclenchement

    J'utilise le VI Express Déclenchement pour extraire un signal prédéfini d'une acquisition en continu (1000 points à 10kHz) afin de l'enregistrer dans un fichier. Ce vi offre la possibilité de configurer le niveau de déclenchement, le nombre d'échantillons à extraire ainsi que le nombre d'échantillons de prédéclenchement également à extraire. Ce vi permet de récupérer les échantillons de prédéclenchement même si ceux ci appartiennent au signal d'acquisition précédent (parmi les 1000 points lu précédemment) et permet aussi d'attendre le nombre de points désiré si tous ne sont pas disponible dans les 1000 points lus actuellement.
    Je voudrais pouvoir commander et modifier la valeur des échantillons de prédéclenchement depuis la face avant. La seule manière de la faire actuellement est de double cliquer sur le vi depuis le diagramme et de changer les paramètres.
    Est ce que quelqu'un pourrait me dire comment y parvenir?

    Hello Nicodemi,
    Avant de pouvoir te répondre, j´aurais juste besoin d´une précision de traduction. Est-ce que le VI Express Déclenchement (en francais) correspond au VI Express ´Trigger and Gate` (en anglais), dont j´ai joint l´image.
    Attachments:
    Trigger and Gate.JPG ‏27 KB

  • Problème d'affichag​e sur un graph

    Bonjour,
    Dans le cadre d'un projet je dois créé un logiciel d'acquisition de donées via les cartes NI-USB. J'arrive a acquérir les donées que je souhaite mais j'ai un problème d'affichage lorsque que je fait des acquisition a quelque dizaine de Hertz j'ai 2 image d'acquisition qui se supperpose ( voir les pieces jointe, les 2 images se supperpose ), le tout produit un clignotement pas tres agréable a regarder. 
    J'ai réussis a atténué tres fortement ce probleme en augementant  la tempo dans la boucle d'acquisition mais jamais a le supprimer totalement.
    Ce soucis ne se produit que en basse fréquence < 100Hz, dès que j'augemente la fréquence d'acquisition l'affichage se fait normalement ( ce que je trouve bizare, quand il a peu de point a géré il déconne, dès qu'il y en a plus il fonctionne correctement )
    Je vous remercie d'avance
    Pièces jointes :
    probleme1.png ‏33 KB
    probleme2.png ‏16 KB
    probleme affichage.vi ‏66 KB

    Après quelque recherche, je me suis aperçu que la courbe "parasite" ( voir :"probleme2.png" ) est en fait les données en fonction du nombre d'échantillon. Hors cette courbe ne m'intéresse pas, je ne comprend toujours pas pourquoi elle s'affiche. Ce qui est affiché par le graph est bien une waveform avec les T0 et dt et mise dedans.

  • Problème arrêt acquisitio​n sur graphique CVI

    Bonjour,
    voici mon problème :
       je fais l'acquisition de température en continue mais je souhaiterais l'arrêter aprés un certain temps
    Le problème c'est que plus je diminue mon sleep plus plus l'acquisition sur le graphique mets de tempsà s'arrêter
    voici mon programme
    #include "graphessai.h"
    #include <windows.h>
    #include <NIDAQmx.h>
    #include <formatio.h>
    #include <analysis.h>
    #include <ansi_c.h>
    #include <cvirte.h>    
    #include <userint.h>
    #define echelletc                30
    #define offsettc                -50
    #define nbpointtc                10
    #define NUM_PLOTS           20100
    #define ABS_DATE_TIME_FORMAT_STRING "%X  %B %#d, %Y"
    #define REL_DATE_TIME_FORMAT_STRING "%#M:%S.%3f"
    #define MSG_FORMAT_STRING "Current window: %s  -  %s"
    static int PanelHandle, PlotArray[NUM_PLOTS] = { 0 }, CurrentPlotIndex;
    static double StartTime;
    static void TakeSample (void);
    double tc1[10];
    double tc_mean;
    double curTime;
    TaskHandle tc1_task; 
    int main (int argc, char *argv[])
        if (InitCVIRTE (0, argv, 0) == 0)
            return -1;  /* out of memory */
        if ((PanelHandle = LoadPanel (0, "Graphessai.uir", PANEL)) < 0)
            return -1;
        DAQmxCreateTask("TC1",&tc1_task);
        DAQmxCreateAIVoltageChan (tc1_task, "PXI1Slot5/ai6", "", DAQmx_Val_RSE, 0, 10, DAQmx_Val_Volts, "");
        DisplayPanel (PanelHandle);
        RunUserInterface ();
        DiscardPanel (PanelHandle);
        return 0;
    int CVICALLBACK QuitCallback (int panel, int control, int event,
            void *callbackData, int eventData1, int eventData2)
        switch (event)
        case EVENT_COMMIT:
            QuitUserInterface (0);
            break;
        return 0;
    static void TakeSample (void)
        double value;
        double i;
        for(i=0;i<20/0.001;i++){
                DAQmxReadAnalogF64 (tc1_task, 10, 10.0, DAQmx_Val_GroupByChannel, tc1, 10, NULL, 0);
        Mean (tc1, 10, &tc_mean);
         if (StartTime == 0.)
            StartTime = curTime;
        GetCurrentDateTime (&curTime);
        value = tc_mean * echelletc+offsettc; 
        // gPlotArray is a circular buffer; if we've looped around, discard the old plot
        if (PlotArray[CurrentPlotIndex])
            DeleteGraphPlot (PanelHandle, PANEL_GRAPH, PlotArray[CurrentPlotIndex], VAL_DELAYED_DRAW);
       PlotArray[CurrentPlotIndex] =PlotXY (PanelHandle, PANEL_GRAPH, &curTime, &value, 1, VAL_DOUBLE,
            VAL_DOUBLE, VAL_CONNECTED_POINTS, VAL_EMPTY_DIAMOND, VAL_SOLID, 1, VAL_RED);
                  Sleep (1);   
            if (++CurrentPlotIndex == NUM_PLOTS)
            CurrentPlotIndex = 0;
    int CVICALLBACK START (int panel, int control, int event,
            void *callbackData, int eventData1, int eventData2)
        switch (event)
            case EVENT_COMMIT:
             TakeSample ();
                break;
        return 0;
    j'aimerais que l'acquisition s'arrête au bout de 20 SEcondes (juste pour l'exemple plus tard il faudra que je l'arrête au bout de 24 h)) mais mon programme s'arrête environ 25 minutes plus tard
    si quelqu'un à une idée elle serait la bienvenue
    Cordialement

    Bonjour,
    Je n'utilise pas DAQmx pour mes applications du coup je ne l'ai pas installé et je n'ai pas accés à l'aide. Cependant ces fonctionalités étaient déjà disponibles dans le driver précédent (NIDAQ). D'après les quelques documents présent sur le site de NI, la création de mémoire tampon se fait certainement à l'initialisation de la tache d'acquisition (fonction DAQmxCfgSampClkTiming je pense). Le lancement de la tache se fera avec DAQmxStartTask et l'arret avec DAQmxStopTask puis DAQmxClearTask. Pour la lecture des données et le rafraichissement du graphe, il est possible de créer un évenement qui sera déclenché tout les N échantillons acquis (fonction DAQmxRegisterEveryNSamplesEvent). C'est dans la fonction associée a cet évènement qu'il faudra utiliser la fonction "xxxRead" pour lire vos échantillons et les afficher. A vous de dimensionner la mémoire tampon et le nombre d'échantillons qui provoquent l'évènement afin d'obtenir un rafraichissement du graphe plusieurs fois par seconde. J'espère que cela va vous aider ... sans carte d'acquisition et sans aide sur l'API de DAQmx je ne peux pas vous en dire beaucoup plus !  Fouillez dans les exemples de code, il y a certainement un exemple d'acquisition avec mémoire tampon (Buffered acquisition) et un autre sur les évènements DAQmx.
    cordialement,
    Stéphane        
    Labwindows/CVI user since version 4.0

  • Sacades lecture fichier wave si action sur la fenêtre

    Bonjour,
    J'ai comparé deux exemples de lecture de fichiers waves
    1) Sound player
    2) Sound File to sound output
    Dans le 1er , on fait appel à une DLL et aucun soucis de fonctionnement
    Dans le 2eme qui me semble plus intéressant pour diverses raisons, je rencontre un soucis de sacade de lecture du wave dès que je touche à la fenêtre du VI , (simplement en redimensionnant la fenêtre par exemple)
    J'ai changé la valeur du nombre de samples à 44100 ce qui améliore le résultat, mais qui alourdit  le temps des actions dans la boucle while, ( si par exemple je veux faire stop, il faut attendre 1seconde)
    Quel est l'origine de ce phénomène ?
    Peut-on y palier  ?
    Merci de vos réponses

    Bonjour backsatge68,
    Merci d'avoir posté sur le forum National Instruments.
    Je ne rencontre aucun soucis de lecture lorsque je déplace ou redimensionne la fenêtre.
    Pour ce qui est du temps d'action allongé, c'est normal puisque vous ne pouvez arreter votre programme tant que le VI "Sound Output Write" écrit les samples demandés. Soit dans votre cas 44100 samples.
    Ainsi, plus vous augmenterez le nombre d'échantillons, plus le programme mettra de temps à s'arrêter.
    Le Sound Player quant à lui n'a pas ce problème.
    Romain P.
    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 2011, le mardi 8 février au CNIT de Paris La Défense

  • Fonctionnement des interruptions et gestion de la fin de tache

    Bonjour
    Je suis actuellement en train de coder un petit programme qui lit des fichiers et émet leur contenu en C en utilisant nidaqmx.h sous Visual Studio 2010.
    Etant donné la taille des fichiers, je ne peux pas tout lire d'un coup ni tout envoyer la carte d'un seul coup.
    J'ai donc choisi d'utiliser un fonctionnement sur interruption avec  la fonction DAQmxRegisterEveryNSamplesEvent( genTaskHandle, DAQmx_Val_Transferred_From_Buffer, NbreEchParInt, 0, OnEveryNSamplesEvent, NULL)
    Ma question porte sur le fonctionnement de cette fonction. En utilisant le paramètre 2 comme ci-dessus, je pensais qu'il y avait une interruption chaque fois que NbreEchParInt était émis par la carte. Le problème c'est que j'ai l'impression que l'interruption est généré chaque fois que NbreEchParInt est envoyé du PC sur le buffer de la carte. Je m'explique: lors du lancement de mon application, les premières interruptions sont générés très rapidement (jusqu'à saturation du buffer de la carte ?) puis les suivantes ont lieu à la cadence que je désirais. A la fin, je crois que le programme est en attente de la fin de l'envoi des données du buffer de la carte mais ne génére plus d'interruption. Ce qui m'amène à la gestion de la fin de la tache : y a-t-il un genre de timeout pour l'envoi des données ? Le problème que j'ai est que dans certains cas, l'application plante pendant que j'attend la fin de la tache sans que j'ai le moindre message d'erreur (juste la fenêtre windows pour l'envoi d'un rapport d'erreur)
    J'ai également une question à propos de la fonction DAQmxCfgOutputBuffer. J'ai essayé de définir la taille de mon buffer à 4 fois le nombre d'échantillons par interruption  (NbreEchParInt). Si on essaye de redimmensionner le buffer de la carte vers une plus petite taille, la commance est-elle ignorée ?
    J'espère avoir été assez clair. Merci d'avance de toute l'aide que vous pourrez m'apporter.
    Cordialement
    Luc

    No one are as good as FormCentral. Others are not professional. I need to receive the information up to July 13th. And I understand that to complete form, it is possible only upto end of June. It is correct ? I have paid now several months, only to be ready in few weeks. And now, I have to change system. I am very unhappy.
    Message d'origine----
    De : [email protected]
    Date : 21/01/2015 - 17:21 (EO)
    À : [email protected]
    Objet :  Fin de la disponibilité d'Adobe FormsCentral
        Fin de la disponibilité d'Adobe FormsCentral
        created by Sara.Forsberg in FormsCentral - View the full discussion
    Hi cse2015,
    We understand that this news came unexpectedly, and apologize for the inconvenience. This document offers some alternative solutions: End of support | Adobe FormsCentral. Hopefully, one will work for you.
    Best,
    Sara
    If the reply above answers your question, please take a moment to mark this answer as correct by visiting: https://forums.adobe.com/message/7117646#7117646 and clicking ‘Correct’ below the answer
    Replies to this message go to everyone subscribed to this thread, not directly to the person who posted the message. To post a reply, either reply to this email or visit the message page:
    Please note that the Adobe Forums do not accept email attachments. If you want to embed an image in your message please visit the thread in the forum and click the camera icon: https://forums.adobe.com/message/7117646#7117646
    To unsubscribe from this thread, please visit the message page at , click "Following" at the top right, & "Stop Following"
    Start a new discussion in FormsCentral by email or at Adobe Community
    For more information about maintaining your forum email notifications please go to https://forums.adobe.com/thread/1516624.

  • Générer une implusion avec "Sine Wave Generator" en FPGA

    Bonjour,
    Content de vous rejoindre sur ce forum. Tout nouveau en Labview (pas très à l'aise avec certaines notions), je voudrai soliciter votre aide. En fait, je veux créer une impulsion de 100Hz avec la fonction " Sine Wave Generator" de FPGA. En simulation j'ai réussi mais dès que je compile en target il m'affiche ce message : "Top-level clock rate does not match rate for which the Sine Wave Generator VI was configured. Reconfigure the Sine Wave Generator or the top-level clock so that their rates match. You also might need to modify computed values for the frequency (cycles/tick) input."  
    Je change donc FPGA clock rate et je choisis 40MHz (la seule qu'il me propose). Mais dans ce cas, je me perds pour retouver mon impulsion (qui doit durer une période 0.01sec). J'ai essayé de jouer sur le nombre d'échantillons en changeant le nombre d'itérations de la boucle For afin de générer toujours une période ( pièces jointes)  mais ça marche pas!!!
    Pourriez vous m'aider à déchiffrer ce problème?
    Merci d'avance
    Pièces jointes :
    burst sine.png ‏372 KB
    burst sine_40MHz.png ‏336 KB

    Bonjour M2IM,
    En mode simulation, on utilise une fonctionnalité appelée "Interactive Execution" car l'exeuction/affichage ne peut être géré à une fréquence élévé (40 MHz dans le cas de la Top Level Clock par défaut).
    En mode FPGA target, la vitesse est plus élevé et donc uniquement certains points du sinus seront afficher mais le signal electrique lui sera bien un sinus.
    Je t'invite à regarder le lien ci-dessous qui reprend quasiment la problématique que tu rencontres:
    Generate a sine with LabView FPGA and connect it to an AOModule
    Bonne journée,
    Valentin
    Certified TestStand Architect
    Certified LabVIEW Developer
    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;}
    Travaux Pratiques d'initiation à LabVIEW et à la mesure
    Du 2 au 23 octobre, partout en France

  • Generer des impulsions avec la sortie numerique NI USB-6008

    Bonsoir
    je suis un nouveau utilisateur de labview , j ai un probléme dont j'aimerais que vous m'aidiez
    j ai une carte NI USB-6008 et je veux
    réaliser des impulsions dont je pourais régler le rapport cyclique , la fréquence et le nombre d'échantillon sur une des sorties numériques sans utiliser la sortie counter ou analogique.
    Merci
    Cordialement

    Bonjour Midas,
    Pour réaliser cette fonction vous avez en effet besoin d'utiliser une boucle while ou for avec un control logiciel, comme indiqué par Helmut O'Brian.
    Pour ce qui est de la création de votre pattern numérique, il vous faut concevoir un algorithme respectant votre CDC.
    Vous pouvez vous inspirer de l'exemple ci-dessous disponible depuis la recherche d'exemple LabVIEW, qui permet d'écrire des données numérique sur un port de façon continue:
    C:\Program Files\National Instruments\LabVIEW 2010\examples\DAQmx\Digital\Generate Values.llb\Write Dig Chan.vi
    Pour obtenir plus d'information sur l'utilisation du driver NI-DAQmx et de l'API DAQmx, je vous invite à prendre connaissance des éléments présents depuis les liens suivants:
    Getting Started with NI-DAQmx: Main Page
    http://zone.ni.com/devzone/cda/tut/p/id/5434
    Learn 10 Functions in NI-DAQmx and Handle 80 Percent of Your Data Acquisition Applications
    http://zone.ni.com/devzone/cda/tut/p/id/2835
    Cordialement,
    Rémi 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;}
    >> Les rencontres techniques de NI - Mesures et acquisition de données : de la théorie à la mise en ...

  • MOTIF RAMPE

    Bonjour,
    D’après ce que je sais, la sous-VI de LabVIEW qui nous génère un motif de rampe peut le faire à la base, soit avec un nombre d’échantillon, soit avec un delta.
    Donc, toujours, nous aurons une rampe qui tient ses éléments également espacés.
    Mon problème ce que je dois générer une rampe qui possède les deltas dedans l’écart, variables. Pour cela, j’ai le premier élément, le dernier ainsi que le nombre d’échantillons, et l’information du delta pour les premières valeurs et pour les dernières valeurs (le delta pour les valeurs au milieu de cet écart doit être plus au moins une moyenne des deltas de l’extrémité).
    Par exemple : Je sais que le première élément doit être 5, et le dernière 355. Les premiers éléments avec un delta de 5 et les dernières avec un delta de 10, au milieu, un delta moyen à peu près, (tout en sachant le nombre d’échantillon total). Donc, on aura :
    5, 10, 15, … 200, 207.5, 215, …. 335, 345, 355.
    Ce qui serait superbe, ce d’avoir une transition entre les des deltas continus (avec un incrément tout petit), comme cela :
    5, 10.4, 16, … 200, 207.5, 215.6, …. 333,8, 344,5, 355.
    N’hésitez pas à me faire des corrections, je suis tout débutant.. =)
    Je vous remercie pour toute l’attention.
    Cabral
    Solved!
    Go to Solution.

    Let's say we take your numbers and you want a fixed delta of 7.5 (the average of 5 and 10) with a range from 5 through 355.  Either the final value will not be equal to 355, or the final delta will not be equal to 7.5, because you cannot divide 350 by 7.5  You have the same problem with a variable range, because the average delta will still be the same.  So, you will need to make a decision.  Which is more important, the start and end points or the delta values?
    Here is one possible solution, assuming that the end points are more important than the deltas.  It adjusts the delta values to get a whole number of steps.

  • Rampe delta variable

    Bonjour,
    D’après ce que je sais, la sous-VI de LabVIEW qui nous génère un motif de rampe peut le faire à la base, soit avec un nombre d’échantillon, soit avec un delta.
    Donc, toujours, nous aurons une rampe qui tient ses éléments également espacés.
    Mon problème ce que je dois générer une rampe qui possède les deltas dedans l’écart, variables. Pour cela, j’ai le premier élément, le dernier ainsi que le nombre d’échantillons, et l’information du delta pour les premières valeurs et pour les dernières valeurs (le delta pour les valeurs au milieu de cet écart doit être plus au moins une moyenne des deltas de l’extrémité).
    Par exemple : Je sais que le première élément doit être 5, et le dernière 355. Les premiers éléments avec un delta de 5 et les dernières avec un delta de 10, au milieu, un delta moyen à peu près, (tout en sachant le nombre d’échantillon total).
    Donc, on aura :
    5, 10, 15, … 200, 207.5, 215, …. 335, 345, 355.
    Ce qui serait superbe, ce d’avoir une transition entre les des deltas continus (avec un incrément tout petit), comme cela :
    5, 10.4, 16, … 200, 207.5, 215.6, …. 333,8, 344,5, 355.
    N’hésitez pas à me faire des corrections, je suis tout débutant.. =)
    Je vous remercie pour toute l’attention.
    Cabral

    Bonjour Cabral,
    Hélas créer un delta modulable pour une rampe n'est pas du tout quelque chose d'immédiat. La meilleure solution serait de découper la rampe initiale et d'en faire des rampes continues par morceau dont le Delta est fixe sur chaque "segment".
    J'ai quand même été plus loin et propose ici une version polynomiale de la rampe. Le polynôme est d'ordre 2 ici mais on peut facilement reprendre le principe pour avoir un ordre plus élevé.
    On a les même paramètres de rampe (init, final, et step), plus la force du polynôme entre 0 et 1. Une valeur de 0.5 donne une rampe linéaire. Plus on s'éloigne de cette valeur, plus la différence à mi-chemin entre la rampe linéaire et le polynôme est élevée. Attention à ne pas dépasser les 0.2 et 0.8 car on n'a plus une monotonie du motif.
    Derrière, le calcul est marticielle/polynomiale donc ce n'est pas chose aisée, comme dit en début de poste.
    Cdt,
    Eric
    Eric M. - Application Engineering Specialist
    Certified LabVIEW Architect
    Certified LabWindows™/CVI Developer
    Pièces jointes :
    Progressive_Ramp.vi ‏21 KB

  • Carte audio : générer des paliers de fréquence

    Bonjour.
    Je travail sous LB 8.5
    Je voudrai créer un programme qui génére des paliers de fréquence d'une durée fixe ( un balaye de 1hz à 1khz en 300 points et à chaque point, on garde la même fréquence pendant 3 seconde). Pour cela j'utilise le VI fournit dans les exemples de LB le " Generate sound.vi
    J'ai créé un sous-VI pour générer mes échantillons ( cf programme echelle log.vi ) mais je n'arrive pas insérer une temporisation pour générer une fréquence constente et ensuite la modifier. Quand je place une tempo ( 2 sec par exemple ), j'entend une impulsion de fréquence dans le casque puis pendant la tempo rien ne se passe puis l'impulsion augmente bien en fréquence mais ne reste pas fixe.
    Bref au lieu d'avoir :
      _|
    _|
    J'ai
           |
        |  |
    _|_|_|_
    Le programme test.vi génére mes varations de fréquence mais sur une droite.
    Cette application me sert pour créé un pot vibrant et en attendant je génére ces variations de fréquence dans un casque audio.
    En paramètre j'ai le nombre d'échantillons par décade ( 100 ), le nombre de décade ( 3 ) et la fréquence de départ du balayage. Avec ces paramètres je créé juste un compteur jusqu'a 300 et j'obtient bien un balayage sur 3 décades mais trop rapide.
    Merci de votre aide.
    JohannB
    Résolu !
    Accéder à la solution.
    Pièces jointes :
    echelle log.vi ‏10 KB
    test.vi ‏37 KB

    Bonjour,
    J'ai modifié votre exemple afin de pouvoir faire des paliers.
    N'hésitez pas à me dire s'il y a des parties que vous ne comprenez pas.
    Cordialement,
    Yann C.
    France
    Pièces jointes :
    test.vi ‏32 KB
    balayage.vi ‏18 KB

  • Lire un fichier de mesure tdms et le soustraire en temsp réel (débutante)

    Bonjour,
    Je souhaite lire une valeur de tension dans un fichier réference en format TDMS et la soustraire à la valeur de tension mesurée en temps reel.
    L'utilisation de la boite "lire un fichier de mesure" ne renvoit pas le même type de donnée que la valeur de tension mesurée en temps reel.
    Comment faire pour savoir quel valeur est renvoyée car mon fichier de référence comporte plusieurs colonnes.
    Avez vous une idée pour résoudre mon problème?
    Je vous joins le VI.
    Cordialement,
    LM
    Résolu !
    Accéder à la solution.
    Pièces jointes :
    soustraction_fichier.JPG ‏131 KB

    Dans le VI que j'ai envoyé précédemment j'ai oublié de préciser que vous devez sélectionner le fichier tdms que vous souhaitez lire, la voie d'acquisition utilisée et le nombre d'échantillons.
    J'ai fait une modification du VI car la version précédente n'était pas bonne. Commencez par utiliser le VI seul cela devrait fonctionner.
    Sinon concernant votre question, le fichier tdms est un fichier binaire à la base. Si vous arrivez à lire le fichier sous excel c'est que vous disposez du TDM Excel Add-In qui vous permet de lire les fichiers TDMS sous Excel. Cet Add in met automatiquement le fichier en forme sous excel. Gardez bien à l'esprit que ce qui s'affiche dans excel n'est pas ce qui est "naturellement" dans le fichier tdms mais est une mise en forme de ce qui est dans le fichier tdms.
    Jean-Luc D. NI France
    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;}
    Journées techniques : du contrôle d'instruments aux bancs de test
    Du 4 au 13 juin : Grenoble - Pari...
    Pièces jointes :
    exemple2.vi ‏63 KB

  • Probleme de trig avec des echantillo​ns de predeclenc​hement

    Bonjour,
    Comment fonctionnent les fonctions de trig de labview avec echantillons de predeclenchement (cf fichier joint et fenetre d'erreur).
    Je travaille avec une carte PXI4472 et je souhaite pouvoir declencher sur une voie des que l'acceleration sort de l'intervalle +/-50g (declenchement bipolaire) et pouvoir recuperer des echantillons avant le predeclenchement. Est-ce possible?
    D'autre part, comment se comportent les applications labview quand on utilise des instruments virtuels (AI). Il semble que le signal qui rentre sur une AI virtuelle est déterminée à partir de la cadence d'échantillonnage et du nombre d'échantillons en entrée du noeud Daqmx timing.vi, est-ce qu'il est possible de générer des patterns via MAX ou autre pour simuler des signaux arbitraires en entrée des AI en mode virtuel.
    Merci.
    JF 
    Attachments:
    daqmx_trig.vi ‏48 KB
    error_daqmx_read.jpg ‏38 KB

    Bonjour Chouca,
    Concernant ton erreur -200278 je me permets de te renvoyer
    vers ce lien
    qui explique pourquoi elle est survenue et indique comment la résoudre.
    Concernant l'utilisation des fonctions de trigger pour une PXI-4472 je t'envois
    vers la partie de Timming/Trigger du manuel DSA.
    Si tu as des questions n’hésites pas à reposter.
    Benjamin R.
    R&D Software Development Manager
    http://www.fluigent.com/

Maybe you are looking for

  • How Do I Know If I Have A Virus

    I opened an email from my brother who later told me he got hacked and emails were sent out under his name.  I had opened the email that took me to a web site but I did nothing further.  Are there any Apple utilitis that will let me know if my compute

  • Canon Pixma 180 Navigator/Scanner stopped working with Snow Leopard?

    Hi, I recently got a new IMac with Snow Leopard. Everything was backed up from Tim Machine and the Apple store installed the drivers for my Canon MP Pixma 180 all-in-one printer. The printer does work but my Navigator shuts down when I choose the Sca

  • System unstable

    my computer worked well with old catalyst drivers and directx 8.1 but now when i installed dx 9 and catalyst 3.0 drivers, my system has become unstable it boots randomly when i use windows, expecially when playing video clips with windows mediaplayer

  • Setting Up an External Video Monitor

    Hello All, Fairly well versed amateur here, but still with large gaps of knowledge, as you will see. I have been working on projects that were exclusively intended to be presented on the web, but I had someone ask me to produce a commercial that will

  • Track Ball Issues

    The trackball on my new Tour is not very responsive.  I've adjusted the horizontal and vertical sensitivity and am still having no luck.  Is it just a faulty phone or is this one of the downfalls of this new phone? Message Edited by Twixter915 on 08-