LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

FFT, How do I control the frequency domain?

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

0 Kudos
Message 11 of 14
(376 Views)

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

  1. Find that maximum peak: WaveformMinMax gives you the Y and X coordinates for the max value…
  2. Then search for those -6dB points: use Threshold1DArray two times (for left and right)…
  3. Do your calculations with the results you get from Threshold1DArray…
Best regards,
GerdW


using LV2016/2019/2021 on Win10/11+cRIO, TestStand2016/2019
Message 12 of 14
(345 Views)

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

 

0 Kudos
Message 13 of 14
(332 Views)

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

Message 14 of 14
(326 Views)