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.
ChadJust 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 -
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,
ClambakePictures 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 KBRavensFan, 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
JohannesI 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,
WayneI 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. -
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.
ThanksHave 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 KBThanks 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! -
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 KBnatasftw 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 STo 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 KBHi 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 KBhi 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
AlanThe 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
-
How to render direction (route) on Elocation Map?
Hi, I have to build a OAF page where I have the latitude and longitude for source and destination points and when I submit a request from OAF page the Elocation Map should render the driving directions and route on the Map. I have found the following
-
i have a 2010 MBP I installed a program that put files in wrong place I want to do a clean install fro my external hard drive back up and dont know how. I know very little about computers
-
Mobile Hotspot not working after upgrading to 4.4.2
My husband and I have identical Motorola phones. He let his upgrade to Android 4.4.2 over a month ago. Since then, his Mobile Hotspot cannot be used to connect to our home PC. If you use your mobile hotspot, DO NOT LET IT UPGRADE!!!!!!!! Three visits
-
Looking for a way to automate a print/export function
I have a document with a 1000 pages, and want to print/export in 10 page ranges (i.e. 1-10, 11-20, 21-30, etc.) to end up with 100 individual files. Is there a way to do this one time as oppose to print/export 100 times?
-
I Had to reboot my computer. I reinstalled itunes and now...
It refuses to open. I tried unistalling completely and reinstalling i did the same with quicktime and then on top of that i even tried down grading to itunes 8 and still didnt work i keep getting an error "iTunes has encountered a problem and needs t