Multiplier un signal par une constante

Bonjour,
J'utilise deux cartes: une 4472 ou je récupère un signal analogique
6527 ou je récupère un signal numérique sur 8 bits.
Mon problème apparait quand j'essaie de les multiplier...
Mon signal d'entré (prenons le cas d'une sinusoide) est correcte par rappport à la sortie de mon générateur, mais au moment ou mon signal est multiplié par la constante (calculée grace au 8 bits saisie mais constant) j'obtiens des discontinuité dans mon signal!! (le signal a des micros coupures!!)
Fred

If you multiply 8bit numbers, you must ensure that the result is still within the numerical range of U8 (0...255). You probably exceed the range with the multiplication result. Try to convert your data to U16 before multiplication and see if it looks any better.
LabVIEW Champion . Do more with less code and in less time .

Similar Messages

  • Envoyer un signal pendant une duree T

    Bonjour,
    Je souhaite envoyer des signaux
    de fréquence f donnée avec une Fe=10*f, pendant une durée T bien
    déterminée!!
    J'ai quelques soucies pour géré le temps pendant
    lequel le signal est généré...
    Voici ma fonction d'envoie:
    void Signal(int f){
    int32 error=0;
    TaskHandle taskHandle=0;
    float64 data[1000];
    char errBuff[2048]={'\0'};
    bool32 done=0;
    int i=0;
    int32 written;
    int Freq=1000*f;
    int Fe=100*Freq;
    for(;i<1000;i++)
    data[i] = 5.0*sin((double)i*2.0*PI*Freq/Fe); // /!\ Formule pour une fr�quence F!!!
    /*/ DAQmx Configure Code
    DAQmxErrChk (DAQmxCreateTask("",&taskHandle));
    DAQmxErrChk (DAQmxCreateAOVoltageChan(taskHandle,
    "Dev1/ao0", //The physical name of the channel
    "", //The name to associate with this channel
    -10.0, //10v minimum
    10.0, //10v maximum
    DAQmx_Val_Volts,
    NULL));
    DAQmxErrChk (DAQmxCfgSampClkTiming(taskHandle,
    "", // external clock source line or use "" for internal clock
    Fe, // expected rate of external clock or actual rate of internal clock
    DAQmx_Val_Rising, // acquire on rising or falling edge of ticks
    DAQmx_Val_ContSamps, // continuous or finite samples
    1000));
    /*/ DAQmx Write Code
    DAQmxErrChk (DAQmxWriteAnalogF64(taskHandle,1000,0,1,DAQmx_Val_GroupByChannel,data,&written,NULL));
    /*/ DAQmx Start Code
    DAQmxErrChk (DAQmxStartTask(taskHandle));
    printf("Generating voltage continuously\n");
    /*/ DAQmx IsDone Code
    DAQmxErrChk (DAQmxIsTaskDone(taskHandle,&done));
    J'ai
    tenter de changer les parametres de la fonction NIDAQmWriteAnalogF64()
    mais sans succès.
    Une idée? Merci d'avance!

    Bonjour Paul,
    Une génération finie te permettrait de générer un nombre d'échantillons fixe et déterminé au préalable et ceci à une fréquence (Fe=10*f) connue et donc tu auras une génération qui aura une durée fixe est déterminée. Dans ton exemple, la generation et continue eet donc ne peut être arrétée que par une erreur ou la décision de l'utilisateur (décision logicielle).
    Cordialement,
    Jérémy M. | Certified LabVIEW Developer
    Design Engineer - LinkedIn - Contact
    Don't forget to give Kudos to good answers.
    N'oubliez pas de donner un compliment aux bonnes réponses.

  • I can't access iPhoto because of this message (sorry, it is in French) : "Votre bibliothèque est utilisée par une autre application ou est devenue illisible"

    Here is messaqge : "I can't access iPhoto because of this message (sorry, it is in French) : "Votre bibliothèque est utilisée par une autre application ou est devenue illisible"".
    I am on a iMac 27"with OS X Lion.
    The problem appeared while I was doing an import from an USB hard disk and an electric shutdown happened... The iMac and everything started well after but ipohoto.

    OK, when you find the solution please post it, it may help others in the future. BTW there are some other simple resets you can do, first is restart in Safe Mode, this will clear some caches. It's possibe one has become corrupt. Next would be to do SMC and PRAM resets, the instructions for both are:
    SMC RESET
    Shut down the computer.
    Unplug the computer's power cord and all peripherals.
    Press and hold the power button for 5 seconds.
    Release the power button.
    Attach the computers power cable.
    Press the power button to turn on the computer.
    PRAM RESET
    Shut down the computer.
    Locate the following keys on the keyboard: Command, Option, P, and R. You will need to hold these keys down simultaneously in step 4.
    Turn on the computer.
    Press and hold the Command-Option-P-R keys. You must press this key combination before the gray screen appears.
    Hold the keys down until the computer restarts and you hear the startup sound for the second time.
    Release the keys.

  • J'ai importer des CD sur iTunes et entrer toutes les infos une par une sauf que quand je regarde le fichiers dans l'explorateur windows, il n'y a que le titre et rien d'autre

    J'ai importer des CD sur iTunes et entrer toutes les infos une par une sauf que quand je regarde le fichiers dans l'explorateur windows, il n'y a que le titre et rien d'autre. Comment faire pour que les infos des musiques iTunes sois les memes sur le fichiers en questions ?
    Mes musiques se trouvent dans un dossier sur mon bureau.
    Merci

    http://en.wikipedia.org/wiki/Comparison_of_audio_formats
    http://translate.google.com/translate?sl=auto&tl=fr&js=n&prev=_t&hl=en&ie=UTF-8& layout=2&eotf=1&u=http%3A%2F%2Fen.wikipedia.org%2Fwiki%2FComparison_of_audio_for mats&act=url
    http://fr.wikipedia.org/wiki/Format_de_fichier_audio#Caract.C3.A9ristiques_des_f ormats_audio
    I think the bit rate of 1023kbps as opposed to 1411kbps illustrates that the Apple Lossless file is 72% of the size of the original, however it sill consists of 16bit stereo sampled at 44.1KHz. You can also compare the lossy AAC formats to see if you can hear any difference at higher sample rates.
    Wav -> Apple Lossless -> Wav = original data
    Wav -> ACC -> Wav = degraded data
    Je pense que le débit binaire de 1023kbps contre 1411kbps illustre le fait que le fichier Apple Lossless est de 72% de la taille de l'original, mais il se compose de filon-couche stéréo 16bit échantillonnées à 44,1 KHz. Vous pouvez également comparer les formats avec perte AAC pour voir si vous pouvez entendre aucune différence des taux d'échantillonnage élevé.
    Wav -> Apple Lossless -> Wav = données d'origine
    Wav -> ACC -> Wav = données dégradées
    tt2

  • Sur ipad 2 l'accés à Icloud bloque par une adresse mail fausse

    Bonjour,
    J'ai achate un IPAD2 d'occasion chez cash converter "donc d'occasion"
    J'ai peu le réinitialise pour tout sauf l'acces à Icloud bloque par une mail inconnu!!
    L'ancien proprietaire ne connais plus le mot de passe et ne peu plus m'aide
    Demande votre aide
    Merci d'avance
    Dechnord

    I think you need to talk directly to Adobe to fix this
    Adobe contact information - http://helpx.adobe.com/contact.html may help

  • Filtre de signal par la fenêtre rectangula​ire ou bien hanning

    Salut,
    je fait traitement de signal transmis par un échantillon  par labview mais je trouve que les signaux obtenu varient dans mon idée et de filtre mon signal par la fenêtre rectangulaire ou bien hanning
    mon question comment filtre un signal par la fenêtre rectangulaire et hanning à partir de labview
    le signal et un signal transmis des ondes ultrason dans un échantillon donc signal pas stationnaire
     merci

    I tried running your question through google translate, and it didn't do too well. But it appears that you are using windowing on an ultrasonic signal before spectral analysis and are not seeing what you expect.
    Remember that windowing is a trade-off. Applying a window to your data can allow you to resolve narrower spectral peaks, but it will distort the amplitude of those peaks. Using no window, or a rectangular window (which is really the same thing) does not distort amplitude but narrow peaks will tend to bleed together.
    Hope this helps...
    Mike...
    Certified Professional Instructor
    Certified LabVIEW Architect
    LabVIEW Champion
    "... after all, He's not a tame lion..."
    Be thinking ahead and mark your dance card for NI Week 2015 now: TS 6139 - Object Oriented First Steps

  • Comment doit on enregistrer un formulaire, afin qu'il puisse être rempli par une autre personne et qu'il puisse le renvoyer

    Comment doit on enregistrer un formulaire, afin qu'il puisse être rempli par une autre personne et qu'il puisse le renvoyer

    Bonjour,
    Formulaire PDF
    De : JR_Boulay 
    Envoyé : lundi 9 février 2015 21:30
    À : Michel GRANGEON
    Objet :  Comment doit on enregistrer un formulaire, afin qu'il puisse être rempli par une autre personne et qu'il puisse le renvoyer
    Comment doit on enregistrer un formulaire, afin qu'il puisse être rempli par une autre personne et qu'il puisse le renvoyer
    created by JR_Boulay <https://forums.adobe.com/people/JR_Boulay>  in Forums en français - View the full discussion <https://forums.adobe.com/message/7178381#7178381>

  • Iphoto Library remplacée par une autre, plus ancienne

    Bonjour,
    Lors d'une mauvaise manip, j'ai remplacé ma bibliothèque iphoto par une plus ancienne, datant de décembre. Je pensais avoir donc perdu toutes mes photos mais je les ai toutes retrouvées dans "Masters" apres avoir fait "Ouvrir le contenu du paquet" en cliquant droit sur le dossier "Iphoto librrary"
    Dans ce dossier Master, j'ai toutes mes photos y compris celles qui se trouvent dans la bibliothèque actuelle, celle qui a remplacé l'autre, mais dans le "désordre".
    Comment refaire mon ancienne et vraie bibliothèque iphoto avec mes photos contenues toutes dans Masters?
    En sachant que pas mal d'entre elles sont en double, triple..
    Merci.

    You can't have downloaded the iphoto for 10.9 as it won't be offered to you on the App Store. Installing 9.5 would not corrupt anything. If you already had iPhoto 11 then no purchase was necessary. If you didn't already have iPhoto 11 then there is no way you could have downloaded iPhoto 9.5 - the iPhoto for 10.9.
    Further, upgrading iPhoto to a later version will never fix a corrupted library. Therefore, you didn't have a corrupted Library.  So, honestly. I'm not sure what you're asking here. The only software version issues around iPhoto and Mavericks is that iPhoto 11 requires a free upgrade, and you're told about that first time you try to launch it.

  • Comment remplacer un registre à décalager par une variable globale

    Bonjour tout le monde,
    Je vous sollicite encore une fois par manque d'expérience....
    Alors cette fois-ci j'ai un VI qui va acquérir une tension et faire la moyenne de celle-ci, mais mon problème est que j'utilise une boucle while avec un registre à décalage et d'après mon tuteur c'est à cause de cette boucle que je n'obtiens pas les résultats escontés.
    Il m'a donc conseillé de supprimer ma boucle while et de mette une variable globale qui gère la période de moyennage à la place de mon registre à décalage. 
    Le souci c'est que je ne connais ni d'adem ni d'eve cette variable...
    Est-ce que quelqu'un aurait l'amabilité de m'expliquer un peu cmt ça fonctionne parce que je ne trouve pas mon bonheur dans les exemples et les autres sujets?
    Et surtout est-ce la bonne solution?
    REM: le VI a été créé par une autre personne je n'est fais que de modifier la partie moyennage, donc les autres variables globales ne sont pas de moi.
    Merci d'avance!
    Attachments:
    VI_TEST2.vi ‏50 KB
    VI_TEST2.vi ‏50 KB

    Bonjour à toi,
    Tu trouveras ci-dessous un exemple d'implémentation d'une variable globale fonctionnelle :
    Basic Functional Global Variable Example
    J'ai regardé ton programme mais je ne suis pas sûr d'avoir bien compris ce qu'il devait faire, aussi je ne peux pas te conseiller entre les deux solutions, essaye avec la variable globale fonctionnelle cela sera de toute facon un bon exercice d'apprentissage.
    Pour le reste du programme, il est en principe fortement déconseillé d'utiliser des structures séquences déroulées. Il vaut mieux, si on veut s'assurer du bon déroulement de son programme, utiliser une structure de machine à état ou bien tout simplement le flux de données, principe natif de LabVIEW :
    Programmation par flux de données dans LabVIEW
    Machine à états simple
    J'espère que cela t'aidera,
    Bonne journée,
    M-Junior

  • Générer signal avec une carte NI9401

    Bonjour,
    Je dois générer un signal numérique de type carré avec une carte NI9401.
    Comment configurer les voies pour qu'elles soient, par exemple, les 4 premières en entrées et les 4 dernières en sorties ?!
    Et comment générer un tel signal ?
    Merci d'avance !

    En allant dans aide/recherche d'exemples, vous trouverez vos réponses en consultant les exemples.
    Cordialement
    L.MICOU

  • Multiply 3D array elements by constant

    I consider myself a beginner at LabVIEW.  With that said, I have a 3D array (x,y,z) where x and y both range from 0-400 and z ranges from 0-13.  I want to multiply all of the x's and y's under each z, by a different constant.  For example, x=0-400, y=0-400 and z=0, I want to multiply both x and y by 0.4.  Then for x=0-400, y=0-400 and z=1 I want to multiply x and y by 0.43 (random cosntant), and so on.
    How can I do this?
    Thanks in advance!

    I actually asked the wrong question.  If this thread needs to be deleted and I need to start another one, just let me know.
    This is what I'm trying to do.  I have a 3D array (x,y,z) where x and y are pixel locations of an image (rows and columns ranging from 0-400) and z is wavelength (ranging from 0-13).  For each combination of x,y and z there is a value.  I want to hold z constant at 0 (z=0) and multiply every value at every pixel location by a constant.
    For example x=0-400, y=0-400 and z=0.  I want to multiply the value at every combination of x and y by a constant while holding z at 0. Then move onto z=1 and multiply every combination of x and y by a different constant.
    I attached an image of an indicator from the 3D array below.  The three white boxes are the x y and z and the fourth grey box is the value I want to change for each combination of x and y for z=0-13.

  • Evénement déclenché par une variable connectée par Datasocket à un serveur OPC

    Bonjour,
    J'utilise un serveur OPC pour lire et écrire des variables sur un automate. J'ai essayé de connecter les variables directement avec un connexion Datasocket et d'utiliser les VI en exemple. Dans les deux cas, les ressources de mon PC augmentent et les temps de réponse sont assez longs.
    Dans mon application, j'ai besoin d'"attendre" une valeur particulière d'une variable automate. Je voudrais donc dans un premier temps, vérifier que la variable n'est pas à la valeur souhaitée et si ce n'est pas le cas, avoir un événement qui se déclenche au changement de valeur de cette variable. Cette méthode de programmation fonctionne lorsque la connexion de la variable locale n'est pas activée, mais pas avec la connexion Datasocket.
    Est-ce normal? Y-at-il un moyen pour que ce soit le serveur qui informe le client Labview que la variable a changé d'état?
    Cécile

    Bonjour Cécile !
    Et bienvenue sur ce Forum ...francais
    Je ne vous apporterai pas d'élément complet de réponse car je n'ai jamais utilisé de process DATASOCKET .
    Cependant je pense pouvoir vous aider lorsque , je vous cite :
    "Dans les deux cas, les ressources de mon PC augmentent et les temps de réponse sont assez longs. "
    Je pense que vous utilisez des boucles contenant des tableaux ou des variables locales et pire encore ,pour l'espace mémoire, des fonctions concaténation, des fonctions de modification de tableau etc...
    En effet contrairement à certains languages de programmation utilisant des boucles (presque tous maintenant) Labview génére à chaque itération de boucle une allocation mémoire (différente si ce n'est pas le premier appel ) lors d'une lecture ou écriture de variable locale (imaginez alors si c'est un tableau de clusteur par ex...) l'utilisation mémoire augmente alors à chaque lecture ecriture des variables...
    Utilisez un registre à décalage (click droit sur la boucle for ou while) pour que votre variable soit transmise à la prochaine itération (même en arretant Labview, vous pouvez utiliser les valeurs précédents l'arret !) et ne soit plus réallouer à chaque itération
    vous pouvez avoir plus de détails en lisant l'Application note suivante...
    Labview Performance and Memory Management
    et un sujet (en anglais) qui définit bien la différence et le fonctionnement des variables
    locales et noeuds de propriété
    que vous pourrez retrouver dans le répertoire manuals de LAbview...n'oubliez pas de préciser à chaque sujet votre config et des infos précises sur votre problème , le monde des sytèmes electronique - informatique et vaste et varié...
    CordialemntMessage Edité par Ecosmose_CNRS le 05-26-2005 06:13 PM
    Julien
    Conception Informatique et électronique
    CNRS LCSR Web
    Orléans la Source FRANCE

  • Récupérer la valeur lue par une commande dans un tableau

    Bonjour à tous,
    Je vous explique mon problème : je récupère un tableau de valeurs. J'aimerais envoyer les valeurs de ce tableau dans une commande qui permettra alors de modifier la valeur de la fréquence en fonction de ce tableau de valeurs. 
    Seul soucis : Les fréquences générées sont bel et bien toutes envoyées par la commande (Vérification à l'oscilloscope, tout va bien). Par contre, sous labview je ne peux pas afficher ma fréquence maximale dans le tableau final (il y a apparition du caractère # dans la première case). Comment faire pour récupérer toutes les valeurs envoyées par mes commandes dans le tableau final (avec la fréquence maximale qui apparait dans le tableau au final). J'ai beau cherché je vois pas comment faire...
    Exemple : Frequence min = 30 Frequence max = 300
    Je me retrouve avec un Tableau de 30 40 50 60 70 80 90 100 et 200 mais j'aimerai que 300 apparaisse (en supprimant si possible le caractère # ?)
    J'espère que j'ai pu m'exprimer de manière claire, je vous envoie ci-joint mon programme en intégralité.
    En vous remerciant.
    Cordialement,
    Reborn
    Pièces jointes :
    Detection synchrone.vi ‏44 KB

    Bonjour,
    Merci d'avoir posté sur le forum NI.
    Pourriez vous poster un VI simplifié reproduisant l'erreur que vous rencontrez (sans utiliser les VI de communication ou autre) afin qu'ils soit plus simple pour les membres de cette communauté de pouvoir vous aider?
    Cordialement,
    Nicolas M.
    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 LabVIEW 2012 : du 27 septembre au 22 novembre
    2 sessions en parallèle : Débuter a...

  • Comment changer la tension de mon générateur par une boucle while

    Bonjour,
    Je débute sur Labview et voici mon problème.
    Une tension est rentrée manuellement sur mon générateur. Une intensité est calculée par un multimètre. Tout ceci est envoyé sur Labview qui calcul la résistance expérimentale par la loi d'Ohm. Or si la résistance expérimentale est différente de la résistance théorique (rentrée sur Labview auparavant) je veux que Labview calcul et envoie la bonne tension d'entrée pour obtenir une résistance expérimentale proche de la théorique.
    Je veux donc utiliser une boucle while qui ferait : while Rth différent Rexp faire U=Rth*I
    Sauf que je n'ai pas assez de connaissances sur Labview pour faire ce que j'ai souligné. Je pense que cela n'est pas très compliqué mais je ne trouve pas de tuto qui  explique ceci.
    Merci d'avance pour votre aide

    oups ... pas propre.
    aligner les fils, éviter les "escaliers" (un peu partout)
    les entrées et les sorties sur les "structures" ... sur les bords gauche et droit (si possible, pas au dessus, et ici cela est certainement posible)
    jamais de flux de données droite-gauche ... le flux doit toujours se propager de la gauche vers la droite.
    Je reviens sur votre code dès qu'il ne me fera plus mal aux yeux  

  • Lire la valeur retournée par une fonction (DLL) dans Pass/Fail test

    Bonjour,
    comme le titre l'indique je charche à tester une fonction en l'appelant d'une DLL (en C) en utilisant le Pass/Fail test. La fonction retourne la somme entre deux entier x et y.
    Quel sont les étapes à suivre et surtout comment je peux récupérer la valeur retournée et faire un teste sur elle!!
    Que dois-je écrire dans la rubrique "Data Source"...
    Vous trouvez ci-joint une idée de ce que j'ai fait..
    merci pour votre réponse
    Pièces jointes :
    PassFail.JPG ‏94 KB

    La question n'est pas très claire...
    Disons que si le but est de vérifier si la valeur est entre certaines bornes ex: 10<x<15 ou x<20 par exemple, alors il faut utiliser un "numericlimit test" 
    Pour réutiliser une valeur (variable) dans TestStand, le plus simple est de l'assigner à une variable locale dans TestStand. (Même méthode qu'en haut mais remplacer l'expression par Locals.MaVariable )
    Rodéric L
    Certified LabVIEW Architect

Maybe you are looking for