05-16-2019 04:05 PM
Hello!
my zip file contains a VI and an XML file. Place the XML file on your c:\ . The FFT waveform graph has data I want. As you can see in the VI I am searching for a way to get that data. I am able to get the data up stream of the FFT waveform graph, and, once graphed, it is different. See waveform graphs FFT 2 and FFT3. It's obvious to me that the data upstream of FFT waveform, is not the same as the data within FFT waveform. Setting the x and y axis scales of FFT waveform, has altered the data shown in FFT waveform.
How do I get the data from FFT waveform with no alterations? My end goal is to find the left and right -6 db down points from peak amplitude of the FFT waveform, calculate the center frequency using these -6 db down points, and then calculate the bandwidth, used these same -6 db down points.
I have about 1 month of experience. Thanks for your assistance! - Nathan
05-17-2019 01:27 AM
Hi Nathan,
please stick with your thread instead of starting a new one…
See waveform graphs FFT 2 and FFT3. It's obvious to me that the data upstream of FFT waveform, is not the same as the data within FFT waveform.
It's the very same data, only with a different X axis scaling…
Do you know the parts of that waveform datatype and their meaning?
How do I get the data from FFT waveform with no alterations?
You already get the "data from FFT" without any "alterations"…
My end goal is to find the left and right -6 db down points from peak amplitude of the FFT waveform, calculate the center frequency using these -6 db down points, and then calculate the bandwidth, used these same -6 db down points
05-18-2019 08:27 AM
Hi Gerd,
If I set the x and y scales equal for FFT and FFT2, I don't get the same graph. Why not?
I unbundled the output from Spectral Measurements (SM). I see a f0,df, and magnitude outputs. These SM outputs are input into buildwaveform's t0, dt, and Y respectively. t0 is the start value on the x-axis, dt the x increment per step, and Y the correlating y-axis function value. Each point plotted in FFT2 is a coordinate pair in (dt,Y). Next to FFT2 waveform graph I placed an array of Y values. I then was able to verify that these y values correlate to the graph of FFT2 with it's unmodified x and y scales, x going from 0-220, and y from -120 to -30. As I mentioned above, if I set the x and y scale of FFT2 equal to FFT, the graphs do not match. Using a y axis range from -90 to 0 and an x-axis range from 0-10000000, FFT2's output show a single verticle line at x=1, which, I assume is just a harsh x-axis compression of the graph when displayed using the values y-axis set to -120 to -30 and x-axis set to 0-220.
There is a difference between how FFT and FFT2 wavefrom graphs react to scale changes. I have no idea what happens.
Thank you for you guidance! - Nathan
05-18-2019 12:26 PM
You worked too hard! The "pure" FFT plot (labeled FFT, fortuitously) is what you want! All you need to do is to remove all scaling (delete the two Property Nodes that set the X and Y Scales and go into the Graph Properties and set both X and Y axes to "AutoScale"). Now run the program -- you'll find that the plot FFT (to which you've done nothing) looks identical to the plot FFT3 (where you took the Cluster apart, re-cast it as a Waveform, and plotted it as a Waveform, OK but a little weird ...). FFT2 "looks different" because you threw away the timing information, so LabVIEW can't examine the input Data Type and "figure out" the proper scaling (which it can for a Waveform or its frequency analog, same idea as the Waveform but in the Frequency Domain, produced by the FFT routines).
LabVIEW does some clever "behind-the-scenes" stuff for you. I'm guessing that as there is documentation for the Waveform data type, there is probably documentation "somewhere" for the "Freqform" data type (that's a name I just made up for a Waveform-like Cluster in the Frequency Domain, with f0, df, and Magnitude).
Bob Schor