Phase shift, frequency of 2 analog signals, Diadem 9.0 or 9.1

I have to acquire 2 signals: FORCE (N) and VELOCITY (m/s) for many frequencies parameter in Diadem 9.0 (5 to 150 Hz). This frequency parameter is a analog voltage output signal which is converted in frequency by a frequency vibrator instrument. The measured signals on the vibrator (force and velocity) are considered as SINE Functions. – 1) How do I measure the output frequency of the two signals and how can I save this data ? – 2) How can I estimate the phase shift between FORCE and VELOCITY ? – 3) How can I automate the estimation of the phase shift by the 145 measurement (150-5Hz) ? – 4) Is a continue measurement of Phase Shift depending on the frequency possible ? – Best Regards from Germany and from France.
Jean-Pierre, Junior Engineer Germany

Hello KenT. I have test your DIAdem exemple. Your idea with a stop-time was not bad for measuring the phase shift beetween 2 generators by 1Hz. I have used this formula by many phase shift and it works. I had change the 2 generators frequency by 2Hz, and the formula works not anymore and that is normaly because of the reduce of the periode lenght (this problem have I show on Picture 3 of the PDF Data). On the picture 6 and 7 have I try to make another solution. My new solution works only for frequency from 1Hz to 5Hz. What about frequency like 150Hz ? I don't know if you have understood what I realy want to do, but if you have any idea to resolve my problems, please write to me. '[email protected]'
Jean-Pierre, Junior Engineer Germany
Attachments:
DIAdemTexte.pdf ‏435 KB

Similar Messages

  • How do I use a counter to measure frequency and multiple analog signals in the same VI?

    I have a PCI-6071E, an SC-2345 with multiple modules, and a PXI-8184 (with a PXI-1002 Chassis).
    My goal is to monitor pressures, flows, temperatures, and speed in one VI.
    I am using Measurement and Automation Explorer version 3.1.1.3004 to manage my channels.
    My speed is a PWM signal which I recently rewired through the counter 0 of my board.
    I was hoping to configure this to read frequency directly in measurment
    and automation, have this scale the value to RPM, and then feed it
    directly in to my labView program.
    In labView, it will not except this signal though.
    I get error -200300 from the DAQmx Start Task.vi
    Possible reasons(s):
    Invalid timing type for this channel.
    Property: SampTimingType
    You Have Requested: Sample Clock
    You Can Select: Implicit, On Demand
    After doing some research, it seems that the counter wants "Implicit"
    selected for the DAQmx Start Task.vi, but then I cannot use my other
    channels. Also, counter is included in the "Sample Clock" option
    description, so I do not understand why it is not working.
    Does anyone know how to work around this problem or a way to configure the counter so that it will work in this way?
    All my other channels are Analog.
    Thank you.

    I am working on getting just the counter working by using
    the program posted previously, and I am running into issues. Periodically I get
    the error:
    Error -200141
    occurred at DAQmx Read (Counter DBL 1Chan 1Samp).vi
    Possible reason(s):
    Data was overwritten
    before it could be read by the system.
    If Data Transfer
    Mechanism is Interrupts, try using DMA. Otherwise, divide the input signal
    before taking the measurement.
    It seems to work better if I use cascaded counters, but I need timer 0 for
    analog channels when I run this code along with the program for the other
    measurements.
    I have tried averaging, and selecting different values for the millisecond
    timer, and these did not seem to have an effect.
    I tried different DAQms configurations and "Counter DBL 1Samp" seemed
    to work the best.
    The program will work for a while and then it will give me the above error
    message.
    If I use counter 0 as a cascaded counter input, the program runs fine. If I run
    this with other analog channels, it errors out because the analog channels use
    counter 0.
    If I use counter 1 as a cascaded counter input, it seems to work better than a
    single channel, but it will still error out with the above error.
    If I use only counter 1, I get the error above even faster.
    Also, none of the
    configurations give measurements outside the While Loop.
    The only place I can add a speed dial for the front panel is within the While
    Loop.
    Is there someway to get the signal to continuously send out of the while loop?
    I thought if I could get the signal out of the while loop, I could condition it
    anyway I wanted without the program erroring out.
    Any suggestions would be much appreciated.
    Thank you.
    Attachments:
    Counter_error.jpg ‏45 KB

  • How can I measure the frequency of an analog signal?

    Hi,  I am trying to measure the frequency of VAC signal coming from a gas turbine engine at my university.  If I can get the values of frequency, I can determine the speed (RPM) of the engine.  I am fairly new to LabVIEW and I have been looking through manuals like crazy in order to find out how to obtain the frequency.  I have measured the signal with an oscilliscope and the highest frequecy will be about 1.5kHz.  I am currently using a USB-6218 and it can collect the voltage signal with ease, but it won't give be analog frequency so simply.  Can anyone explain a way for me to obtain the frequency values?  And if you could show or tell me in a very simple way (because I am not very fluent in LabVIEW yet), that would be amazing!  Thanks!

    Check this out:
    Attachments:
    RPM.vi ‏17 KB

  • Detect frequency of an analog signal coming in through myRIo AudioIn analog port

    I am working on a fire-fighting robot that runs using myRio. I have a small mic plugged into the 'AudioIn' port of the myRIO and the robot has to detect a certain frequency(2.8 or 3.5 KHz) to start navigation. The AnalogIn express VI gives me raw voltage amplitudes of type 'Double' but the 'Tone Measurment' vi I wanted to use takes in a 'Signal' data type. I tried converting the raw data to dynamic data and feeding it in but did not work. One problem is that I cannot control the sample rate of the AnalogIn express VI (LabView 2013), I appreciate any suggestions on how to go about doing it.
    Solved!
    Go to Solution.
    Attachments:
    Capture.PNG ‏16 KB

    Thank you all for your feedback.
    @Bob_Schor the robot competition is tomorrow. Thanks for the suggestions but the High Throughput Add-on turned out to be what I was looking for.
    @MilanR thank you so much. I installed LabView 2014 and the myRIO 2014 High Throughput Add-on and I now have access to low level VIs that will let me control sampling frequency and number of samples.
    I am now using 'Tone measurments' to measure the frequency of the sound. But the frequency measured is not accurate, but it is atleast consistent. I am sampling at 7 KHz and taking 5000 samples at once. The two frequencies I want to detect are 2.8 KHz and 3.5 KHz. However, the mesaured frequecies I get from Tone Measurment VI are 0.400 Hz and 0.499 Hz, which are always consistent. Picture is attached below.
    Attachments:
    Capture3.PNG ‏10 KB

  • Determine phase shift ben input & output

    hello guys,
    I want to determine the phase shift between input and output signals. I want to measure the phase difference as lomg as I apply input. And save that to a file for reveiwing it later.Can anyone please help me with that. I am using Labview 7.1.
    Thanks,
      Jinal    

    Hi Jinio,
    Please take a look at the following KnowledgeBase article:
    How Can I Determine Phase Mismatch Between Two Channels?

  • Phase shift base signal

    Hello,
    I have two sinusoids which have a phase difference which varies slowly over time,  the difference being indicative of position. To measure the phase difference, i have used a premade vi called "Graph and Calcuate Phase differece". I have also used an example online to somewhat sucessfully calculate the phase some of the time.  The example would be the code that was posted in this thread.
    http://forums.ni.com/ni/board/message?board.id=170​&message.id=6956&query.id=101197
    These examples work great with theoritcal signals, but there is a problem (see figure below) I am having in practice..  Since the phase shift can occur in the range [-360,+360], i believe the index of the peaks are getting lost, causing it to pick up the next peak in the sequence, thus, causing a phase shift (see figure below, plot of phase shift) to be measured.  Another way of saying this is that after a small amount of phase shifting occurs, the lead peak begins to references the next peak in the comparison signal.
     Im at  loss on how to identify the peaks and track them so i can accurately measure phase shift.  Any help is appreciated. Im sure this is soemthing that has been done before, esp since there is a vi just for measuring phase shift. I guess i just dont know the key words to find it...
    Below is a screen shot showing the two signals. The bottom plot is showing there is a relative small shift in phase which periodically jumps.
    many thanks
    Jim from CT
    Message Edited by JimmyinCT2 on 01-23-2008 07:17 PM

    dahhh, okay, i think i finally figured out what is going on here, and i think im just being somewhat dumb or maybe just assuming to much.
    Looking at matts example helped a lot as i see why.
    with one of the old VIs for measuring phase shift, we were getting a phase shift range of [-360, 360] or more.    We were just assuming that was the range here with this new VI. 
    With the new dual channel measurement (or the example you posted), when phase is measured, there is an inflection point at some angle of phase difference..  The way your example works (and the express vi) is with an inflection at 180 degrees.  So, lets imagine we have a measurement of phase shift that is 178 degrees, as this difference increases, the next is 179,  and then 180..  Now as it continues to move, the next phase measurement will not bet 181 but instead -179.   As the signal continues to move in the same direction, its then 178, 177, 176.. So there is an inflection point at 180 degrees with two sinusoids, in simple terms, its because the phase difference of one sinusoid to the other has shifted and is now being measured in reference to the next peak in the series.
    Its troubling for measurements are if you turn on a machine that is measuring phase, and it happens to be right near -/+180, it can cross that boundary often, creating substantial noise.   Also, that for certain types of peak detection, such as for motion, its desirable to have a larger range such as [-360,360] which should be theoretically possible (like the first vi we used)  but i guess [-720, 720] could be done too assuming there is enough difference between the peaks.  It would have been awesome to have a VI that measures peak movement outward to infinity.   We were originally using a VI that calculated out these larger differences, think it was doing the calcs in frequency domain (imaginary nums) rather then cross correlation like the example.
     I think for now, we are going to have to work inside the range [-180,180] and initialize our hardware to 0 phase so we dont start near the inflection point and see if that works.
    Message Edited by jimmyinCT on 01-26-2008 07:54 PM

  • Simulate Signal phase shifting loop

    I am trying to use a loop to phase shift a simulated signal across 360 deg. My loop will change amplitude, frequency, offset, but it won't change the phase, does anyone know how I can do this? I have attached a code that shows the fundamental problem.
    Solved!
    Go to Solution.
    Attachments:
    SimSigPhaseShift.vi ‏34 KB

    When you wire a graph to it and set the graph to ignore timestamps, you see the phase shift. If you wire a chart to it, wire a true constant to the reset input of the simulate signal.

  • Measuring frequencies present in an analog signal

    Hello,
    I want to measure the frequencies present in an incoming analog pulse signal.
    I tried it as shown in the vi using ‘Extract single tone information.vi’ which was showing the value as ‘39m’ I dont understand what is this value. Can someone explain the right way of measuring the frequencies present in the signal so that I can feed them to my bandpass filter limits.
    Thanks.
    Solved!
    Go to Solution.
    Attachments:
    Measure_Frequency.vi ‏102 KB

    Hello,
    The acquired analog signal is pretty much filtered as shown in the attached image.
    Now I am collecting data for 5 seconds (collecting 2500 samples using collector.vi ) and finding the single tone frequency from it and plotting the measured frequency after 5secs in a waveform chart.
    But I am confused with these1)The original detected signal has an amplitude of above 1.6V but the measured amplitude only shows 0.6V and 2) how the waveform chart has a plot plotted over the duration of 5seconds  when the frequency is measured for every 5seconds data I mean shouldn’t  the chart has a plotted value of HeartRate plotted  for every 5 seconds.
    Can someone explain a bit about these.
    Thanks.
    Attachments:
    Freq.JPG ‏74 KB
    Frequencyplot.vi ‏94 KB

  • Determining Analog Signal Frequency with Prebuilt VIs

    Don't know what is wrong with this code.  Am trying to determine the frequency of a signal from an analog signal (paddlewheel flowmeter).  As a starting point, I'm using a simulated square wave with the "Timing and Transition Measurements" VI and am getting following error:
    ~~~~~~~~
    Error -20308 occurred at Timing and Transition Measurements -> frequency_determination_example.vi
    :3"  (waveform index 0 of 1)
    Possible reason(s):
    Analysis:  The waveform did not cross the mid reference level enough times to perform this measurement. Check the signal length, reference levels, and ref level units.
    ~~~~~~~~~
    However, there seems to not be any options in the "Timing and Transition Measurements" VI to set mid reference levels.
    Any insight into why this simple problem is occuring would be appreciated.  Attached is my program's simple code.
    -tsippel
    Attachments:
    frequency_determination_example.vi ‏101 KB

    Hi,
    Dennis was right (without looking at the code). You generate one (1) square wave, if you had generated 1000 sampled you'd get the correct answer.
    Ton
    Free Code Capture Tool! Version 2.1.3 with comments, web-upload, back-save and snippets!
    Nederlandse LabVIEW user groep www.lvug.nl
    My LabVIEW Ideas
    LabVIEW, programming like it should be!

  • Phase shift a signal data

    hi all
              i want to phase shift a signal of 90 degree. i am having the signal data  as 1d array,using the data i want to shift the phase of the the signal .....any one....
    Indrajit
    | [email protected] | [email protected] .

    Hi Indar,
    You have several options--however the best is to devise a formula for the phase shift and then put this is the formula node in LabView to process the array data. Alternatively, you can use the Hilbert Transformation to apply a uniform phase shift to waveform data. Please refer to Echo Detector.vi or my simple example attached below.
    Ipshita C.
    National Instruments
    Applications Engineer
    Attachments:
    Hilbertwitharray.vi ‏90 KB

  • Measure phase shift

    Hi!
    I have got a question relating the measurement of the phase-shift between an in- and outgoing voltage (both analog and the same frequency) of my DAQ-Device.
    I can´t find a VI to detect or measure the phase-shift and I don´t know how to solve this problem. So somebody can help me? Somenone can tell me if there´s a VI in the /examples folder or can send me a self-made VI? Or someone just can tell me how to begin...???
    Thanks!
    [email protected]

    Mario,
    This is a difficult thing to do accurately in software. Since the two signals may be different amplitudes, you need to measure the time difference between the zero crossings.  Sample the two signals at a high rate using a simultaneous sample and hold A/D card, then measure (calculate) the time difference between each signal's zero reading (i.e. the zero crossing).
    Hope this helps,
    John

  • Analog signal duty cycle incorrect

    I am using an NI PCIe 6535 board to send digital timing signals to a custom PCB.
    The signals are digital square wave signals with various duty cycles and phase shifts.
    I also need to send a 12 bit ramp signal to the board.
    I am having issues with the frequency.
    I need the timing signals to run at 833.33333 khz.
    I need the lsb of the ramp to run at 416.666666khz.
    To create the timing signals I am using "Create Analog signal", so that I can set up the square wave with the appropriate phase shift and duty cycle.
    Then I conver from analog to digital.
    I am using a DAQmx generate to output the signal to the PCB. I have noticed that the DAQmx gen frequency directly controls the ramps frequency.
    However for the digital timing signals there is some scaling factor. The frequency of the digital timing signals can be set in the timing signals them selves. The sample rate in the analog signal also effects the frequency.
    To get the frequencies that I need. I had to set the"create analog signal" sample rate at 2.778G S/s, the "create analog signal" frequency to 1.2889GHZ, and the DAQmx generate frequency to 1.66666 MHZ. At those numbers, I get the timing signals to output at 833.333KHZ and the second bit of the ramp at 416.6666HZ (for the ramp I upped it to 13 bit and I don't use bit 0, as it outputs at 833KHZ).
    However at these settings all of my timing signals have the same phase, and the same duty cycle, even though I have them set differently.
    Can someone please help? I think the issue is that I have the sample rate and frequency of the "create analog signal" block set too high, but if I set them lower my signals will not be at the right frequency.
    Attachments:
    timing signal 1.JPG ‏44 KB
    timing signal 2.JPG ‏47 KB
    daqmx gen.JPG ‏55 KB

    Hi David,
    We found that there seems to be a weird divider between the sampling rate of the analog signal module, the analog signal sample rate, and the f daqmx gen.
    After various tests we made a chart of what we observed. Fsignal and sample rate are values set in the "create analog signal" module, Fdaqmxgen is set in the "DAQmx generate" module. We used a "create anaolg signal" module to create the square wave, then convert analog to digital convert the square wave to digital.
    We have "repeated signal" and "N periods" checked.
    Fsignal
    Fdaqmxgen
    Sample rate
    Frequency   measured on the scope
    1GHZ
    10MHZ
    100G s/s
    100KHz
    100MHZ
    10MHZ
    100G s/s
    10KHZ
    1GHZ
    1MHZ
    100G s/s
    10KHZ
    10GHZ
    10MHZ
    100G s/s
    1MHZ
    100GHZ
    10MHZ
    100G s/s
    10MHZ
    100GHZ
    10MHZ
    100G s/s
    5MHZ
    The equation we came up with is Feff = (Fsginal/FDaqmxgen)*1000.
    To meaure the frequencies were using an HP 54600A oscilloscope, and probing standoff pins on our custom pcb.
    We have several versions of the project, attached is the latest one.
    Kyle,
    How do I set the compression to false?
    The picture below looks like labview? We are using signal express.
    I can't change the frequency on the DAQ mx gen because I need the ramp to run at a set frequency.
    There is a divider between the daqmx gen and the f signal. I have to set the Fsginal in the GHZ to get it to out at the right frequency. The equation we came up with is Feff = (Fsginal/FDaqmxgen)*1000.
    Thanks,
    Devin

  • Calculation of phase shift

    Hi all,
     I am continuously acquiring two sinusoidal signals from the analog inputs of a daq card and saving the samples of the two signals into two different float type arrays. Can anyone tell me that how to calculate the phase shift between these two signals and as well as the peak voltage of the two signals? Please expain me with the help of an example code.
    Thanks

    Hi AI S
    I have gone through the example of phase diff e.g and i have written the following code but when i run it , it gives the max value of 1st sine wave (outarray1) nearly equal (i-e 7.7 volt ) but it should be 8 V pk.
    But for the 2nd sinewave (outarray2) it gives the max value from 0 volt to 1.5 volt pk but it should give 1.5 Volt pk only and the phase difference is displayed as 0.000 , even there is no update in decimals in it.
    One more thing to tell that 1 complete sine wave consists of 1024 samples , therefore in outarray1 and outarray2 , there are 8 cycles each. In one iteration of the loop outarray1 is filled and in other iteration outarray2 is filled , then i calculate the phase shift.  Please tell me what i am doing wrong.
    Here is my code
    double outarray1[8192],outarray2[8192] ;
    double *peakLoc, *peakAmp, *peakDeriv;
        int count;
    static double wave1maxval = 0.0;
    static int wave1maxind = 0;
    static double wave2maxval = 0.0;
    static int wave2maxind = 0;
    static double phasediff;
    PeakDetector (outarray1,8192,0.0, 3, 0, 1, 1, &count, &peakLoc, &peakAmp, &peakDeriv);
        if (count>0)
            wave1maxind = peakLoc[0];
            wave1maxval = peakAmp[0];
     SetCtrlVal(panelHandle,PANEL_wave1maxind, wave1maxind);
     SetCtrlVal(panelHandle,PANEL_wave1maxval, wave1maxval);   
        if (peakLoc)
            FreeAnalysisMem (peakLoc);
        if (peakAmp)
            FreeAnalysisMem (peakAmp);
        if (peakDeriv)
            FreeAnalysisMem (peakDeriv);
        PeakDetector ( outarray2,8192,0.0, 3, 0, 1, 1, &count, &peakLoc, &peakAmp, &peakDeriv);
        if (count>0)
            wave2maxind = peakLoc[0];
            wave2maxval = peakAmp[0];
      SetCtrlVal(panelHandle,PANEL_wave2maxind, wave2maxind);
         SetCtrlVal(panelHandle,PANEL_wave2maxval, wave2maxval);
        if (peakLoc)
            FreeAnalysisMem (peakLoc);
        if (peakAmp)
            FreeAnalysisMem (peakAmp);
        if (peakDeriv)
            FreeAnalysisMem (peakDeriv);
        phasediff = (8/8192) * (wave1maxind - wave2maxind) * 360;
        phasediff = fmod (phasediff, 360);
       SetCtrlVal(panelHandle,PANEL_Phase_Diff,phasediff);

  • How do I apply a uniform phase shift to a waveform?

    In LabVIEW 6.0, I am attempting to apply a uniform phase shift to a non-periodic waveform but have run into a problem. Theoretically, if I take the Fourier transform of the signal, apply an offset to the phase and then take the inverse transform of that, the output of this process should be my original waveform with all of its frequency components delayed by the same number of radians (different amounts of time). However, I am not getting this result from LabVIEW. In the attached example code I generate a sine wave burst, take the FFT, convert from cartesian to polar, apply an offset to the phase, convert back to cartesian and take the inverse FFT. However, instead of getting a phase-shifted, same-amplitude versio
    n of the input at the output, I get an amplitude shifted, same-phase signal. What am I doing wrong?
    Attachments:
    phase-shift.vi ‏51 KB

    This only works (partially) if your array size is an integral power of 2 (e.g. 512, 1024, etc.), i.e. in cases where the fast fourier transform can be used.
    You need to use the complex FFT (and the hilbert transform)
    Please see my example posted HERE
    LabVIEW Champion . Do more with less code and in less time .

  • FFT phase shift

    I am using LabView7.1 and am trying to understand how the FFT measures the phase difference between 2 analog input signals.  The 2 signals have about the same amplitude and their phases will be about the same. I am getting a phase difference of exactly 0.000000 but there should still be a difference. Not sure how the FFT block compares the two signals. Do I need to specify which is the reference signal? If so, how do I go about doing that?
    Thanks,
    SparkEE
    Attachments:
    BTB Acceleromter.vi ‏378 KB

    I admit this is not 100% on mark but may give you some ideas. In this thread I suggested using a zero-phase shift filter. Ignore this post if it does not help.
    Ben
    Ben Rayner
    I am currently active on.. MainStream Preppers
    Rayner's Ridge is under construction

Maybe you are looking for

  • Can I get rid of parts of the JRE for my app?

    I am trying to figure out how to easily deploy a stand-alone desktop Swing application. It's more like Microsoft Word than the typical Swing business app that deals with networks and databases. I'd like to make this easily downloadable by regular peo

  • S_ALR_87012050 does not tie to G/L

    Hello Guru's., I am struggling with this puzzle.  I have 2 line items appearing in G/L (same asset) but only 1 is appearing on S_ALR_87012050 report.  I searched here in the network and saw that where someone else was having the same issue but was re

  • How to delete Services For Objects Attachments?

    How can I delete records from SOFFCONT1 selectively, to recover Database space, without corruption of Database integrity in other tables? Thousands of scanned images have been uploaded to SAP R3 as 'Attachments' to Financial documents, and produced m

  • Can't get NEW black ink cartridge to work in 5515 HP all-in-one-printer

    Can't get NEW black ink cartridge to work in printer..help

  • Balance Score card data show in aggregation

    Hi All, I am developing a score card where I am using a structure which is displaying data in query as follows: fiscal period   sales 007.2007          30 008.2007          40 But when I see the same data in score card  it is displaying the sum and t