Inelectronics, acoustics, and related fields, the waveform of a signal is the shape of its graph as a function of time, independent of its time and magnitude scales and of any displacement in time.[1][2] Periodic waveforms repeat regularly at a constant period. The term can also be used for non-periodic or aperiodic signals, like chirps and pulses.[3]
The waveform of an electrical signal can be visualized in an oscilloscope or any other device that can capture and plot its value at various times, with suitable scales in the time and value axes. The electrocardiograph is a medical device to record the waveform of the electric signals that are associated with the beating of the heart; that waveform has important diagnostic value. Waveform generators, that can output a periodic voltage or current with one of several waveforms, are a common tool in electronics laboratories and workshops.
The Fourier series describes the decomposition of periodic waveforms, such that any periodic waveform can be formed by the sum of a (possibly infinite) set of fundamental and harmonic components. Finite-energy non-periodic waveforms can be analyzed into sinusoids by the Fourier transform.
I am reading from a USB module with data acquisition at 500 Hz. In order to achieve this within the loop time, I need to acquire multiple samples per loop. Once I have those samples (output in waveform), is there a way to append the waveform that maintains the time stamps?
I am currently using the "get time array", then inserting that data into a shift register of the same. I'd like to re-insert that data into the rest of the appended waveform to make writing the information that much easier. If that doesn't work, I'll probably just stick to making a 2D string array to write the data.
You need the correct dt and t0 in the initalizing constant Leave Y and Attributes empty. dt and t0 of waveform B are ignored by append waveform and the dt and t0 on the SR will be preserved and propigated through the loop.
The only information in the documentation I can find about plotting multiple waveform data type signals on a single chart says to build both waveforms into a 1D array and plot that on the chart. When I try that I get 2 overlayed plots, regardless of if I select overlay or stack plots.
The reason I'd like to do this is to display a stacked chart with a meaningful timestamp. I can get my signals to display on a stacked chart by bundling the signals, but then the x-axis displays the sample count rather than the time. I can set it to look like it's displaying time, but it actually just converts the sample count into a timestamp, so every 60 samples it thinks it a minute.
I have a quandary about obtaining X and Y data from a 1D array of Waveform. I can not use the standard waveform tools (get waveform XY for example). I get a message stating I am wiring different data types. And, if I try to get the data in array format starting with "TDMS read", it only returns the values, not the time stamp or the data point numbers.
So, I am scratching my head how to extract this information without building a new array with the appropriate information. All other post I read indicate using the waveform tools or assigning a type of data to beging with.
You will need to use Get Waveform Components. The waveform has 3 major pieces of information: the Y array waveform, T0 (initial timestamp of the initial element), and dt (timing between samples.) A 4th less commonly used element is a variant called Attributes.
Your other post indicates this is for a thesis, which I consider homework. What have you done? What do you understand? What do you get from a waveform chart? Do you have one plot, or 10 plots? If you have one plot, what do you get as the datatype for the chart's data? If you have more than one plot, what do you get? What is the datatype that a waveform graph accepts? Have you looked to see how that's defined?
As an example, let's say you have one plot on your chart. When you get the data you get ... a 1D array of values. That kind of makes sense, right? Well, what's the waveform datatype? It's composed of a starting time, delta time between points, and an array of values. Hmmmm... So how about using the Build Waveform function? Just a thought...
Actually i aquired data from accelerometer on waveform chart of Lab VIEW, i.e voltage in time domian(apmlitude versus time). I have to find some parameters of my signal in frequency domain for my thesis work...problem is various frequency domain express VIs or functions can only wired to waveform graph . Some of the Frequency domain VIs get wired to waveform chart but getting blank plot there....i m totally confused......plz help as only few days left for my thesis submission.....thanks.
Main problem is i m unable to convert time domain signal in frquency domain, according to me the reason for this is the acquisition of signal on waveform chart......i think if it displays on waveform graph, i can get frequency domain signal.
A chart is like a FIFO buffer, accepting one (or several) points at a time, appending it to the existing data. There is a finite size history buffer, and once it is filled, the oldest data is irreversibly lost as new data arrives. X is typically time.
A graph takes a finite collection of points and graphs them at once. If a new set of points arrives, the new data is shown and the old data is irreversibly lost. X can be anything you want (time, frequency, distance, etc.).
You can get all current data from a chart by reading the history buffer via a property node. Remember that very old data might have fallen off the far end of the buffer by the time you try to read it.
Charts and graphs are polymorphic and accept simple data (scalars for charts, arrays for graphs) or more complicated datatypes (waveforms, dynamic data, etc.). Charts and graphs assume that the x-values are linear and thus spaced equally, and can be fully described by a single pair of values: x0 (the x-value of the lefmost point) and dx (the x increment between points). For simple data, these value pairs descibe the linear relationship between the index of the array elements and the actual associated x-value and vice versa.
Thanx a lot sir for ur valuable answer, but still i m in trouble, it may be because i m unable to implement ur solution in my VI, i.e i didn't get ur solution, . Sir, actually the thing is "I Want to Convert the time domain signal i got on "waveform chart" into frequency domain ." I used spectral measurement express VI but instead of getting amplitude v/s frequency proper graph, i got a single vertical line from which i can't analyze the frequency components and without that i can't proceed further in my VI.
Thanks sir , ur solution in ur very 1st reply makes my problem solved. Build waveform function actually works for me toconvert/transfer the signal from waveform chart to waveform graph. Actually in first attempt i used this function outside the loop, thats why i didn't get the desired results, but yesterday when i kept them inside loop , i got the waveform on waveform graph.......
Since the function call is long, it gets truncated. That makes it hard to see which waveform is which when there's more than one (one needs to expand the field, or hover the mouse pointer over, or double click and open the properties menu...)
I'm looking for a way to change the waveform name. Best case I can imagine: my custom calculator function would set a property or similar on the waveform, such that when plotting with the calculator, it shows up with the name I set instead of the default that is shown above.
awvPlotList(window(1) list(list(1 2 3 4 5) list(2 3 4 5 6)) list(1 2 3 4 5) ?expr
list("expr1" "expr2") ?index list(3 4) ?color list("y1" "y66") ?lineType
list("line" "line") ?lineStyle list("solid" "dash") ?lineThickness list("medium"
"thick") ?showSymbols list(t t) ?dataSymbol list(4 5))
I understand you are plotting your results from the Calculator using your custom SKILL function. If I understand correctly, for every simulation set you perform, you must manually run your custom SKILL function using the Calculator after loading the arguments to your custom SKILL function into the Calculator. Without knowing the details of your function, I will propose the following slightly more automatic process that will, I believe, allow you to address your naming concern. Have you considered defining an output for your simulation set which is an ocean script? You may load your custom SKILL function into the script and execute it as long as you can access its arguments in ocean. An ocean script can use the ViVA SKILL functions within the script. Hence, after running your custom SKILL function and creating the waveform, you may plot it within the script and change its name using the SKILL function avwPlotList(), as an example.
To add an ocean script as an output, simply choose ocean as the type when defining a new variable as shown in Figure 1. A simple ocean script that prints an output to a text file using the ocnPrint() command is shown in the attached script (with the ".txt" extension included to allow me to upload it to this post).
Instead, you can alter the expression of your outputs - there's an approach shown in this article: How to create a calculator function that constructs a new waveform from numerical inputs but also works in Explorer/Assembler. This is using a (currently) private function, so maybe you could contact customer support to add another request for it to become public and documented. At the moment there are three duplicate CCRs asking for this, but two of them were filed by me and one by a member of my team, so it would be good to have somebody else asking for it!
3a8082e126