Signal time delay waveforms

Hi,
I`m using Labview 2009. I wann simulate various signal time delays. Pls find the attachment.
I tried with waveform generator and component tool eg: dt, t0 but `d not simulate my requirement.
Also I tried searching in forum for similar VI but `d not get 4 my requirements.
Pls help.
Regards,
Manoj
Attachments:
Waveforms.JPG ‏171 KB

I`m simulating PTT kinda situation so I have used Digital Random Generator in my VI.
Whenever PTT is pressed (active low), data enable shud be become high after a few delay say T1.
Whenever PTT is pressed (active low), audio signal (sine waveform) shud pass through after a few delay say T2 & so on.
Similarly for rest of the waveforms.
But here `m not able to get a constant delay for all the transitions of 0s & 1s using my VIs inspite of using waveform components like t0, dt.
I was stuck here. So only I didnt proceed with sine waveforms(audio signal).
pls tel me how to go abt dis
Regards,
Manoj

Similar Messages

  • 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

  • Creating a 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

    Hi Mark,
    I forgot that all analog waveforms generated needed to have the same number of samples in a single task. By introducing a delay into your square wave, I effectively added samples that waveform. So the same number of samples added to the square wave has to be added to your sine wave. I added code that extends the number of samples of your sine wave (# delay + square wave samples). Let me know if this works for you.
    Regards
    Way S.
    NI UK Applications Engineer
    Attachments:
    flow vis + trigger-m70.vi ‏872 KB

  • Signal Extraction & Making time delayed copy

    I am considering there are three signals in  my environment but I am interested in getting the signal having frequency 4 KHz.I am adding a Band Pass filter to extract that particular tone and making a delayed copy.Unfortunately I am not getting the output.Check my VI.Suppose if I have unknown signals in the environment and and I want to find out how many of them are are there and what are their frequencies, can we find ?can we visualize independently?
    Attachments:
    Signal Extraction and Time delayed signal.vi ‏144 KB

    Hello,
    I apologize for the confusion of what you were looking for.  I was able to offset the X-Axis of one set of data using a XY Graph instead of just a Waveform graph.  See the attached VI.
    Regards,
    M. Whitaker
    ni.com/support
    Attachments:
    Offset the X-Axis for One Set of Data.vi ‏144 KB

  • Generate two sine waves with time delay

    I have not been using the waveform generation tools so I hope this is an easy one for somebody.  I want to create two sine waves at different frequencies say F1 = 1.00 KHz and a second at F2 = 1.20 KHz.  I know that to combine them into one I can just add them.  Them problem I have is that I want F1 to start first then a few millisecond later have F2 sum into F1.
    T0 = F1
    T0 + Delay = F1 + F2
    Is there a VI capable of a time delay?  Tried to sum individual signals together but seems more difficult because of the waveform cluster format.
    Any help is appreciated,
    Matt
    Matthew Fitzsimons
    Certified LabVIEW Architect
    LabVIEW 6.1 ... 2013, LVOOP, GOOP, TestStand, DAQ, and Vison

    Would the attached VI work for you?
    Attachments:
    Add Delayed Sinewave.vi ‏54 KB

  • Fluorescence Time-delay Measurement using an Oscilloscope

    Currently, I'm examining fluorescence through scanning through wavelengths on a monochrometer and averaging the signal on the oscilloscope, storing it all in an array and graphing in the end. 
    My goal is to time delay the value attributed to each wavelength in order to weed out rapidly decaying noise in my samples.  The light source will be chopped, and a trigger line feeds into the oscilloscope.
    Can this be done either:
        through adjusting instrumental settings (I'm using a Tektronix 220, interfacing through GPIB)
        or through manipulation of a triggered output waveform using integration with specified boundaries relative to the trigger time?

    Hello Matt G:
    I'm not sure if your instrument can handle this. Have you looked through the manual or tried contacting Tektronix about it?
    Regards,
    Roland A.
    Applications Engineer
    National Instruments
    Check out VI Roadshow

  • Crosscorrelation time delay question

    Hi!
    I have a project, where i work with 2 microphones, and i want to calculate the time delay between the two signals. I had made a simple method for it, but it's a bit bad...
    So now i  try it with crosscorrelation, but i can't get a correct time-format...i had made the correlation correct, i have just some problem with the time format...
    If i convert the time format into string with %<digit>, then i always becom 0...
    Here is my vi, can somebody help me?
    Attachments:
    CrossCorrforum.vi ‏134 KB

    I took a peek- your problem is with the format string on the timestamp to string functions.  Your format strings are "%5u" and "%S"  the %5u returns a string that represents 5 digits of fractional seconds, the %S converts only the whole number of seconds
    FROM the help-
    for format timestamp to string
    ..." Time
    format codes include the following:
    %a (abbreviated
    weekday name),
    %b (abbreviated month name),
    %c (locale-specific date/time),
    %d (day of month),
    %H (hour,
    24-hour clock),
    %I (hour, 12-hour clock),
    %m (month number),
    %M
    (minute),
    %p (a.m./p.m. flag),
    %S (second), %x
    (locale-specific date),
    %X (locale-specific time),
    %y (year within century),
    %Y (year including century),
    %<digit>u (fractional seconds with <digit> precision).
    So, How do you want to display the time information?  If you want 1 January 1900 12:00:00.000AM to display as "1/1/1900 12:00:00.0am" your format string should be "%d/%m/%Y\s%I:%M:%S%1u\s%p"  (ESCAPE CODES DISPLAYED)
    Jeff

  • Use the LabView time delay in a while loop instead of using the instrument inherent time loop.

    I have a zes lmg500 that I use. It has the option of continues measuring data, with a user control cycle loop (still using a while loop but the delay is coming from the instrument). The problem is that the loop time is not constant. Can I use a very short time (100ms) as the instrument cycle time but use a longer time delay in the while loop that collect the data?
    I know many instrument offer the same abilities, so the question is relevant to all of them.
    Thanks for any help
    Solved!
    Go to Solution.

    Does that measurement VI have built-in wait functionality and a timeout?
    If not, then you are simply polling the VI at 1 kHz, but I suspect that this is not the case or your Waveform Chart probably wouldn't look as you expect (getting 0's put in everytime measurement data is not available).
    I expect that if you have the instrument set up to send data at a fixed time interval (i.e. 100 ms), all the data that it is sending you will end up residing in your serial buffer (or the instrument driver will have taken it out and put it in another internal buffer), so if you come back to read it 1 sec later, then you will have 10 data points to go through.  Whether you can read them all at once with the read VI or have to call it a whole bunch of times until empty I can't say.
    What is your objective?

  • Urgent: Please help. how to solve the time delay during buffer read and write using vc++

    I need to continuously acquire data from daqmx card, write into a file and at the same time corelate (in terms of time) the data with signals from other instruments. The current problem is that there is time delay during read and write data into buffer,thus causing misalignment of the data from multiple instruments. Is there a way to solve  the delay? or Is there a way to mark the time of the data acquisition in the buffer?  If I know the starting time (e.g. 0) of data acquisition and sampling rate (e.g. 1kHz), can I simply add 1ms to each data sample in the buffer? The current code is shown below.
    void DataCollectionWin::ConnectDAQ()
    DAQmxErrChk(DAQmxCreateTask ("", &taskHandle));
        DAQmxErrChk(DAQmxCreateAIVoltageChan(taskHandle,"Dev1/ai0,Dev1/ai1,Dev1/ai2,Dev1/ai3,Dev1/ai4,Dev1/ai5,Dev1/ai16,Dev1/ai17,Dev1/ai18,Dev1/ai19,Dev1/ai20,Dev1/ai21,Dev1/ai6,Dev1/ai7,Dev1/ai22","",DAQmx_Val_Cfg_Default,-10.0,10.0,DAQmx_Val_Volts,NULL));
      DAQmxErrChk(DAQmxCfgSampClkTiming(taskHandle,"",1000.0,DAQmx_Val_Rising,DAQmx_Val_ContSamps,60000));
      DAQmxErrChk (DAQmxRegisterEveryNSamplesEvent(taskHandle,DAQmx_Val_Acquired_Into_Buffer,50,0,EveryNCallback,NULL));// Every 50 samples the EveryNSamplesEvent will be trigured, to reduce time delay.
      DAQmxErrChk (DAQmxRegisterDoneEvent(taskHandle,0,DoneCallback,NULL));
      DAQmxErrChk (DAQmxStartTask(taskHandle));
    int32 CVICALLBACK EveryNCallback(TaskHandle taskHandle, int32 everyNsamplesEventType, uInt32 nSamples, void *callbackData)
     DAQmxErrChk (DAQmxReadAnalogF64(taskHandle,50,10.0,DAQmx_Val_GroupByScanNumber,data,50*15,&read,NULL));
       //memcpy(l_data,data,6000);
      SetEvent(hEvent);
    l_usstatus_e[0]=g_usstatus[0];// signals from other instruments that need to be corelated with the data from daq cards.
     l_optstatus_e[0]=g_optstatus[0];
     if( read>0 ) // write data into file
       //indicator=1;
     for (i=0;i<read;i++)
     {  //fprintf(datafile,"%d\t",i);
      fprintf(datafile,"%c\t",l_usstatus_s[0]);
      fprintf(datafile,"%c\t",l_usstatus_e[0]);
            fprintf(datafile,"%c\t",l_optstatus_s[0]);
      fprintf(datafile,"%c\t",l_optstatus_e[0]);
              fprintf(datafile,"%.2f\t",data[15*i]);
     //   sprintf( pszTemp, "%f", data[6*i]);
     // pListCtrl->SetItemText(0, 2, pszTemp);
        //pWnd->m_trackinglist.SetItemText(0, 2, pszTemp);
         fprintf(datafile,"%.2f\t",data[15*i+1]);
         fprintf(datafile,"%.2f\t",data[15*i+2]);

    Hello kgy,
    It is a bit of a judgment call. You should just choose the board that you think has the most to do with your issue. For example, this issue was much more focused on setting up your data acquisition task than the Measurement Studio environment/tools, so the MultifunctionDAQ board would have been the best place for it. As for moving your post to another board, I do not believe that is possible.
    Regards,
    Dan King

  • Time delay error

    I am currently programming in DasyLab using previously collected data.  I continually get an error when using the time delay module that I am not sure what to do about.  The Time Delay module works fine if I use a delay defined in units of blocks, but if I change to delaying the signal by units of samples or seconds, I get an error that reads "The data at one input of the module are of the wrong type."  I have not changed the input, only the delay units (from blocks to samples or seconds).  Why do I get this error?  I have even started over with a blank page, using only my input data and a time delay, to make sure it wasn't anything else on my worksheet that was creating this error.  Please advise.
    Thank you.

    Hello,
    i have the same probleme with a 3gs and my brother with a 3g.
    and i don't find any solution...
    the time is not correct only for the receveid sms, for the sms that i send is correct instead.
    with the other telephones the time is correct. I have the problem only with the iphone
    Message was edited by: Buon-Luca
    Message was edited by: Buon-Luca

  • Estimate time delay during execution

    Hi, everyone.
    Currently, I have a VISA program for reading signals from a GPS receiver. From the program, I want to measure time delay of execution, i.e. time delay between start and end as shown in the jpg. Are there any vi in LabView facilitating this purpose? Thanks a lot.
    Regards,
    yukfai88
    Solved!
    Go to Solution.
    Attachments:
    VISA.vi ‏12 KB
    Estimate delay.jpg ‏54 KB

    See attached VI and below screenshot which shows how to use it in your code. Just one solution...
    Attachments:
    Elapsed time LV80.vi ‏27 KB

  • Impulse trigger to create a time delay of x ms to perform an action for y ms

    Hello all,
    Here is what i'm trying to do:
    I'm measuring an audio signal when a sound level is above a certain value Y (controllable) i need to wait a few ms (around 900ms) to get pass the main sound compound. Yhen i need to filter the next few ms (around 500ms) of data and do a FFT of that part of the filtered data only once until Y is reached again.
    I can do all this with saved data but i'm struggling to do it as it occurs without saving the data.
    I have everything in place i just need to know in general how to use an impulse trigger to a create time delay of x ms to perform an action for y ms.
    Do you have any ideas how i can achieve this?
    Thank you in advance,
    Frederic.

    Hi Frederic,
    I've looked at your program and I have a few questions. What is the purpose of the Two While Loops that simply have a Case Structure that nothing in the false case and a Wait (ms) function in the true case? As it stands if these loops go into the false case then there is nothing to slow down the execution so the will try to run as fast as possible and not give the processor any time for other tasks which may explain why your computer goes so slow whilst this is running. This also applies to the While Loop where the false case says "If its not time to write the measurement file, do nothing."
    I believe that what you want to look at is a Producer/Consumer(data) Pattern, where you have one loop that generates your data (producer), in this case reads in the sound data, and then a processing loop (consumer) that will do the Fat's and log data to a file etc.
    More information about this can be found here: http://zone.ni.com/devzone/cda/tut/p/id/3023
    Hopefully this helps you a bit. Let me know any questions you have.
    James W
    Controls Systems Engineer
    STFC

  • How to measure time delayed measurement

    Hi All:
    I am using TDS3064 scope to measure time delay betwwen two channels (using IVI driver
    complience package 2.2 for scope IVI driver). I look through drivers, but not able to find
    delayed measurement function. Is there any alternate way to measure time delay betwwen two
    channels. If possible please provide me example. I am new to LV programming.
    Thanks
    DBhagat

    You have to understand something about IVI class drivers. To support portability, those functions that are common to a class are what you see in the driver. Some scopes might have the ability to measure time delay between trigger points on different waveforms but many don't. If there is such a function supported by your scope, then you can make a call to the instrument specific driver or a VISA Write/Read. Of course, you then loose the portability feature of IVI which, imho, is about the only reason to use IVI class drivers. What I would recomend is that you do a capture of both traces and then do an analysis of the raw data in LabVIEW. One way to do this is with Trigger Detection for 1 Channel (Analyze>Waveform Monitoring palette). Wire each channels data to the function and obtain the time for each trigger event. The function will return the time for each event that you can use to calculate the difference.

  • My recirculating pump in sub vi simulation link doesnt work in the second iteration .It opens for maybe half a second whereas i gave the time delay for 5 secs..plz help very urgent

    Hi,
         I have attached my simulation loop.In the model attached i hav eone main pump with constant rpm which drives the 5 smaller pumps and fills the tank at the same time.As soon as the tanks reach their 90% level,the valves of the five pumps close(SP1,SP2,SP3,Sp4,Sp5).After that the recirculating pumps opens for 5 secs of the first tank.As soon as the recirculation finishes,the drain valve(SV1) for tank 1 open and the volume goes to interim storage.This happens for all the remaining tanks.
    My simulation works the first time,but when the second time the loop starts,it skips the recirculation pump even though i gave a time delay for 5 secs.Plz help ..I have attached the simulation.
    Thanks,
    Rami
    Attachments:
    Spatial Logic_2_Final.vi ‏223 KB

    Rami,
    I suspect that you have a race condition. The widespread use of local variables frequently leads to race conditions. Your subVI (Spatial Logic Sub_2.vi was not included) so I cannot run the VI. You have no way of knowing whether the subVI or the inner case structure will execute first, because there is no data dependency between them.
    I think a shift register or a few and some dataflow thinking would allow you to eliminate the inner case structure, the local variables, and, probably, most of your problems.
    Some of the SPi are indicators and some are controls. How are they used?
    The last case of the inner loop retursn to Case 1. Would case 0 be better?
    As for the second time through issue, it may be related to the Elapsed time function Auto Reset. From the help file: "Resets the start time to the value in Present (s) when the Express VI reaches the Time Target (s)." If more than 5 seconds elapses between the first time you use this and the next, it will exit immediately on the subsequent calls.
    Lynn

  • DAQ AO to AI time delay

    Hallo,
    I'm working on an academic control project, where I need to read (ni9215) 3 or 4 channels very fast,
    process the data and write them back (ni 9263) via usb-chassis 9172. To check the accuracy and time
    delays I tried a loop from AO to AI (only one channel) and generated a step, saved the timestamp of the
    step and checked, when the step was readed in the written measurement log. I doesn't see andy difference
    in using two VI's to read and to write or combining them in one VI, so I added images of two VI's.
    While comparing the timestamps of the sampled step and the log file, i noticed time delays of about 200ms
    from output to input. So my VI's are times too slow for my control purpose... anybody knows, what to try?
    In this VI I read data with 500hz, 10 samples to read and 10 samples/channel. The read timeout is set to
    default, but if I set it to zero, strange (negative) times are written to the measurement log... I tried
    to change from N samples acquisition to single sample acq, but it didn't speed up the VI.
    Thanks for answering!

    Hi IoInNBlack,
    first of all thank you for posting in this forum.
    I think you should synchronize your input/output operation, otherwise I don´t understand how you can take the timestamps and consider them
    reliable for your evaluation. I suggest you to modify the LV example here attached with timestamps and file I/O to build up your test and see what results you get then. Consider also that  20 ms are necessary for the acquisition of the samples and then you have add the time necessary to manage the file I/O.
    Best regards.
    Andrea P.
    Message Edited by pxchellone on 07-06-2009 09:23 AM
    Attachments:
    Multi-Function-Synch AI-AO.vi ‏35 KB

Maybe you are looking for