Waveform comparison

Hello All,
I need to compare two waveforms resulting after the surge test of coils....the first waveform I am acquiring and the other one I am reading from file ..... I need to compare their frequency of the waveform but I am just intersted in the width which is marked by arrow in attached picture....how can I do this in LabVIEW.
 And Could anybody suggest me how to compare the two waveforms with respect to their frequency their Y values and RMS ......I tried it using their Y value comaprison by making an array of the Y values of waveforms and comapring them in 5% Error range but not got correct results also  I am not able to write the waveform file which I am acquiring by using Write Waveform VI...Please suggest some hints.
Regards
Alankar
Attachments:
Wave1.JPG ‏31 KB
SCR1.vi ‏265 KB

Hello,
It sounds like you're ok getting your frequency information.  As far as detecting your width, you can program the functionality you're looking for - basically you'll be analyzing your array of data looking for the charateristics you want, however the pulse measurements VI may be useful (see the waveform measurements palette).  For writing your measurements file, what error are you receiving?  You should be able to do this quite easily - attached is an example to help you get started (it generates sine data, and then writes to and reads from a file named test.lvm to your C drive, by default).
I hope this helps!
Best Regards,
JLS
Best,
JLS
Sixclear
Attachments:
Simple Generate Data with LVM File Write and Read.vi ‏232 KB

Similar Messages

  • Trigger and compare waveforms then write to file

    I am trying to make a coincidence between two channels without using a SCA.  I have a Tek DPO 7104 scope where I have two PMT's connected.  PMT1 is on channel 1 and PMT2 is connected to channel 2.  I have my current vi setup to trigger on channel 1.  I generate a waveform that has both channels in the waveform data.  My goal is to make a comparsion between channel 1 and channel 2.  If channel 2 is "similiar" to channel 1, then write to file.  If the two channels are not similiar then do not write and go back and wait for another trigger.  I am thinking of using the "index array" to extract each channel seperately.  The next part would be to make a comparison somehow.  I was hoping someone might have an example that would help me to accomplish this.  I have been reading the post but I have not found an example that will assist me.  I would really appreaciate some help.
    Chad

    Just in case someone stumbles across this in the future, this discussion moved here:
    http://forums.ni.com/t5/LabVIEW/waveform-comparison/td-p/1158717
    Justin Parker
    National Instruments
    Product Support Engineer

  • How do I create a thresholding function for a 2-D waveform, little to no experience is driving me crazy?

    Hello All,
    I could really use some help here. I have very little experience with LabView and I am trying to create a threshold detector that outputs a boolean value once the threshold is crossed. I am getting a 2-d waveform in from my daq, that part was easy, I am trying to do this in real time and point by point. Ultimately once the threshold is crossed I need a true to go to a while loop which will then perform another operation. I am running LabView 8.0 and could really use the help to get this threshold figured out. Thank you very much, if any further information is required please feel free to let me know.
    I really appreciate it,
    Clambake

    Pictures are easier than words....  (On a Sunday evening )
    There are many ways of detecting thresholds.  Below are a few examples.  Remember that the data to the graph is often an array of numerics (doubles - usually).  So simply make use of array functions or comparison functions.  Many math functions are polymorphic and work very well with arrays.  So do boolean functions.
    Have a look at the three examples below.  Hopefully they will help.
    RayR
    Message Edited by JoeLabView on 11-18-2007 09:54 PM
    Attachments:
    arraysFun1.PNG ‏10 KB
    arraysFun2.PNG ‏18 KB

  • Detecting peaks in blood pressure waveform.

    Hello all.
    I am studying human pulse waveforms and attempting to detect peaks in real time. I have a continuous stream of data coming in a serial port, this is converted from characters into integer values which are then plotted as a moving waveform. It is a good clean signal with little noise so I thought the easiest way was to keep a running array of values and, when the present value is less than the one before the previous value, (to allow for any single sample noise) that is the point where the peak has just happened. I then switch an LED.
    The point then is that I don't want the LED to stay on all the way down the slope, just flash briefly. Then I guess I need to ignore the comparison until the signal has gone past the valley and then start looking for a downward slope again.
    Can anyone tell me how, once the peak has been detected, to ignore looking for it until I'm on the upward slope again, maybe some sort of latching case structure, unlatched by a positive slope?
    I know there are peak detection functions in LV but they don't seem to suit real time waveforms. And I can't have thresholds because the signal amplitude may vary considerably.
    Thanks for any help.
    Andrew
    BTW, I'm using LabView 2012.

    Hi ASH2020,
    how about calculating the signal's discret first derivation; the derivation's sign should indicate a positive or negative slope.
    Alex
    ♜♖ LabView 8.6 - LabView 2014 ♖♜
    Attachments:
    2013-05-09_ddx.vi ‏13 KB

  • Programmatically Extend a Waveform Chart

    Could anyone kindly tell me what property node I can use to programmatically extend a Waveform Chart on my Front Panel. 
    For instance, if a Boolen button is in the True Case, the Waveform will be short, but when in the False Case, the Waveform will be automatically elongated/extended beyond the initial length.
    Attached is the screenshot of what are trying to describe.
    Thanks in advance.
    Solved!
    Go to Solution.
    Attachments:
    Waveform.PNG ‏11 KB

    RavensFan, thanks for your response.  It actually worked for me.    Although, you answered my question already, but just allow me to ask one more thing under this thread.  If I want a flat line known as a "baseline" a numerically controlled/adjusted value to appear on the same Waveform Chart that my incoming signal(s) is/are plotting, how do I imposed or put that "baseline" on the same waveform chart?  The "baseline" is only acting the purpose for comparison or threshold?
    I would appreciate if you could just help with suggestion.
    Thanks

  • Autoscale in waveform view does not scale down

    Since, again, this follow-up question in another thread has not been answered, I will post it as a new thread here.
    The autoscaling in the waveform viewer does not seem to be working as one expects.
    When I switch to analog view the first time, it scales fine to the actual range of the signal.
    Once the signal exceeds the scale, it will rescale. But if the signal is within a smaller interval again after retriggering, it will not scale back.
    Hence, the autoscale seems to work only in one direction.
    I tried
    1) switching back to digital and then analog again - no rescaling
    2) Analog setting, toggle between auto and fixed - no rescaling
    3) trigger the signal again - no rescaling
    The only thing that helps is to restart the software, or to remove and add the probes again (which is very annoying, if one considers my other question here...   Probes in Waveform View added twice
    How can this be solved?
    Best regards
    Johannes

    I had been chasing this for months, along side another issue with the Mixed Signal Graph.
    Here's a side by side comparison of the problem. I also believe that in 8.6, if you send the Mixed Signal Graph a null array, it will break horribly, to the point that you have to delete it and read from the pallet again. (Waveform attributes become corrupt among other things) I am unable to replicate in 2009 so I think it's fixed.
    Attached is an example of the 'loose fit drift' issue.
    Reece 
    Attachments:
    Mixed Signal Errors.vi ‏40 KB

  • Turn off a single plot of a multiple plot waveform graph

    I have a multiple plot waveform graph (4 plots). I want to turn off one of the plots, say plot 2. Is this posible from the graphs property node? The property node seems to only give a reference to plot 0. I am using labview 7.
    Cheers,
    Wayne

    I think you can use "active plot" together with "plot.visible"
    property node to control which one you'd like to display. By default,
    the property node refers to plot 0, but you can change to plot 1 or
    other plots by changing active plot property node. You can search
    "Plot" in LabVIEW Help if you'd like to know details.
    Good luck,
    Jian
    On 18 Feb 2004 03:28:49 GMT, [email protected] (Computerman74)
    wrote:
    >>
    >>I have a multiple plot waveform graph (4 plots). I want to turn off
    >>one of the plots, say plot 2. Is this posible from the graphs
    >>property node? The property node seems to only give a reference to
    >>plot 0. I am using labview 7.
    >>Cheers,
    >>Wayne
    >>
    >>
    >>
    >>
    >>
    >>
    >
    >I would love to know if this is possible. I have been trying to figure i
    t out
    >myself.
    >There is a way to turn a single array off and that is what I am doing for now
    >untill this is possible. The plot is still there but reads zero when tunred
    >off. It would be cool to have the abillty to turn off a single plot.
    >I have tryed all the property nodes with no luck. The answer may be in the
    >array size but I can't seem to control that either.
    >For now you can use wire all 4 channels using the comparison select. Use a
    >constant of 0 And wire up a swtich. When the input is false the output is zero
    >in effect making the plot inactive but it still there.

  • Data Comparison

    Hello 
    I have simulated a sine wave using the 'simulate signal' block and stored ther resulting waveform as a TDMS file. 
    When I read the file and compare it with the generated sine wave of similar properties, I expect a constant true(LED) output.
    Eventhough the probes show similar values under highlight, on comparison the 'equal' comparator does not give a consistent 'true' output.
    Thanks 

    Have you tried comparing just the Y-values from the waveform? A waveform contains a t0 timestamp which will differ depending on when the waveform was started/saved so that might be why it's not showing as equal. Also, is there possibility in your code for the sine waves to become out of phase?
    Certified LabVIEW Architect, Certified TestStand Developer
    NI Days (and A&DF): 2010, 2011, 2013, 2014
    NI Week: 2012, 2014
    Knowledgeable in all things Giant Tetris and WebSockets

  • Merge Waveforms with NaN Padding

    I'm looking for a more efficient way to merge an array of waveforms that are padded with NaN's. Each waveform has the same number of samples and dt, but each one contains a fragment of a signal, padded by NaN's. The actual signal fragments do not overlap. It seems like there has got to be a more efficient way to do this, but I'm stumped, and it's Friday.
    The graph in the example (LV8.5) contains each individual waveform, and then a merged waveform.
    Any suggestions?
    Chris
    Message Edited by C. Minnella on 12-12-2008 04:32 PM
    Attachments:
    Example Merge Waveforms.vi ‏25 KB
    Merge Waveforms.png ‏34 KB

    Thanks for the link, I must have missed that. It is not entirely the same, because it does not touch the situation where there are NaN and valid values present at the same time.
    Clearly, there is some error handling, because the indexes are "-1" in the case of 100% NaNs. But if there is a single valid value in the array, it will be returned as min and max, thus the NaNs are ignored. Many times we are only interested in the max value and not its position so the index of -1 can be easily missed. I strongly feel that is incorrect to return a valid output (zero) for invalid inputs. I would feel much better if it would return NaN as min and max in this case.
    Another edge case is an input of an empty array. This also returns zeroes with -1 indexes. Even here, NaN would be more approriate.
    It is probably OK to ignore NaNs and operate on the valid values as if nothing is wrong if at least one value is valid. This behavior should be retained.
    The output of -1 under problem conditions in not documented in the LabVIEW help. In addition, the labview help contains the following sentence:
    "The function compares each data type according to the rules for Array Comparison.".
    This seems misplaced and should be deleted, because the rules for array comparisons talks about aggregate vs elements and boolean outputs.
    All this is completely irrelevant for array min&max. Right?
    In summary:
    The function should return NaN for empty array or arrays containing 100% NaN. (unless there is some common standard that needs to be followed)
    LabVIEW help page for "array min&max" needs to document the "-1" index output for invalid inputs
    The "comparison" sentence needs to be deleted from the help page on "array min&max".
    LabVIEW Champion . Do more with less code and in less time .
    Attachments:
    MinMaxNaN.png ‏14 KB

  • How to match dynamic waveform to a sample waveform?

    Hi
    My proposal is to check the signal from some pins of a microchip, under different status the chip will output different waveforms, so I capture a sample waveform as a pattern, and then I want to continuously acquire waveform from microchip to match the pattern and them trigger LabVIEW event..
    How to deal with this?
    *The best Chinese farmer*

    paulbin wrote:
    I want to continuously acquire waveform from microchip to match the pattern and them trigger LabVIEW event..
    How to deal with this?
    You can use an Event Structure [ES] configured inside a while loop. Either in the ES' timeout event or in some other event configured for a Front Panel Boolean control [say, Acquire], you can put your acquisition code for getting the waveform continually.
    Then you can have a Compare button under whose value change event you ll do the comparison of the sample & acquired waveforms. Here, you should trigger the other LabVIEW event you want using the Value(Signalling) event for that control.
    Please explore the NI Example Finder thro' Help -->> Find Examples under the title "acquire"; you ll find a lot of examples.
    - Partha
    LabVIEW - Wires that catch bugs!

  • Compare waveform with array

    I have a waveform and I want to compare it with an array. I cannot make it work. Please help!
    Attached is the program
    Attachments:
    interval.PNG ‏32 KB

    natasftw wrote:
    If you're looking to debug, any constant would suffice for simulating a measurement.  Why go to such lengths to create a constant when numeric constant already exists?
    And yes, you don't want to compare floating point exactly.  Even before we worry about that, though, it doesn't seem you understand the rest of what is happening with that loop.  If you haven't already made changes to handle float comparisons, you might consider using integer types to understand the comparisons using a simple numeric constant.  From there, it'll be easier to expand to float logic.  From there, you can modify your constant input to be your actual measurements.
    Hi natasftw!
    This is the main program i created and I am looking for solutions to make that interval work.
    Attachments:
    distance interval interface.PNG ‏37 KB

  • Report for Comparison of Material Qty

    Hi All,
    I need to Develop an Interactive report for Comparison of Material Qty. ordered through Purchase requisition, ordered material through PO and corresponding Material Receipt report.
    Can Someone Give a brief description about this & fields tcode & tables regarding this report.A sample code would be much appreciated.
    Thanks & regards,
    Ravi S

    To get the material number combined with the PO text you will need the help of an ABAP programmer.  The programmer can create a report for you using the function module READ_TEXT in the function group STXD.  The tables to use are:
    STXH - STXD SAPscript text file header
    STXL - STXD SAPscript text file lines
    The selection screen should have at least the following:
    OBJECT - STXH-TDOBJECT
    NAME - STXH-TDNAME
    LANGUAGE - STXH-TDSPRAS
    TEXTID - STXH-TDID
    You find the information for these fields by going to the PO text entry screen and displaying the header information under Goto -> Header.  For materials, the object is MATERIAL, the name is "material number", the language is "EN", and the text ID is BEST.  You can use this program to get long text in lots of places like information records, purchase order texts, etc.
    Hope this helps.

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

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

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

  • How can i print out the waveform chart?

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

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

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

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

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

Maybe you are looking for