07-21-2010 01:45 PM
I am trying to run data from multiple channels through an FFT vi. However, I can not get this to happen. I am using DAQmx Read to read three input channels. I have tried using index array to separate my data but in doing so, I would have to run a separate FFT for each one. I want to run all the data through one FFT and then display all the data sets on the same XY plot. Any ideas or sugeestions?
07-21-2010 02:04 PM
Do a palette search for FFT Spectrum, there is an FFT spectrum analyzer for multiple waveforms, however this is not part of the 'base' package of LabVIEW.
Ton
07-22-2010 02:12 PM
I don't think I have the FFT spectrum analyzer for multiple waveforms. I have tried a few other techniques, but none of them have worked. Any other suggestions or am I just going to have to run each waveform through an FFT seperately?
07-22-2010 02:18 PM
If you have any FFT functions you have FFT Power Spectrum and that can be selected for multiple channels. Even if you choose not to use that function, you can simple wire the waveform array through a for loop with your FFT function inside. Also, no matter what, each waveform will get run through the FFT separately. Whether you have one FFT function on the block diagram or three, it's all the same.
07-23-2010 07:30 AM
When I try to plot the outputs (of the FFT), the signals get mashed together. How do I keep them seperate? Right now I am using simulated data to test my VI, but eventually I will have signals from 4 accelerometers, 8 prox probes and one speed sensor, I would like to display the accels on a plot together, the prox probes together and the speed sensor on it's own.
07-23-2010 07:57 AM
Please post what you have tried so far. It is much easier to see what you might be doing to "mash" your signals together.
If you used the array method Dennis suggested you should get an array of spectra. Use Index Array to get the signals you wish to display.
Lynn
07-23-2010 08:08 AM
This is what I have tried (among other similar techniques). I have also tried using an indexed array after the FFT, but still no luck. I'll work on the array method some more.
07-23-2010 08:22 AM
MikeFJ,
We need your subVI "FFT FFT v2.vi" also.
Lynn
07-23-2010 08:42 AM
Attached
07-23-2010 09:27 AM
MikeFJ,
Do you see the coercion dot at the input to the FFT FFT subVI? Coercion dots are your friends. They tell you that LV is forcing a change in datatypes. It is always a good idea to verify whether the change is doing what you expect.
In this case it is changing an array of waveforms to an array of Doubles. Who knows what values it is putting into the array going into the FFT? Also you are not telling the FFT what the sampling rate is so it cannot get the frequencies right.
Insert the Index Waveform Array.vi and a get Waveform Components primitive between the Analog read and the FFT FFT VI. The index input to the Index Waveform array will select which data channel you transform and display.
Lynn