06-06-2006 05:14 AM
06-06-2006 06:18 AM
06-06-2006 08:16 AM
08-16-2006 03:42 PM
To follow up on the previous post.
You have two options, assuming you don't want to write your own FFT.
First, use an FFT algorithm that deals in currency other than double. Various Intel processing libraries have included FFT for short integer and float data types. These libraries are written in C and require an x86 processor. This may be enough headroom to solve your problem. We have used the Intel Signal Processing Library (SPL) for a while but it is no longer available. Intel currently sells the Intel Processing Primitives (IPP) and it has similar functionality. Other C libraries are available for free and may support alternate data types. I think you could insert C node into Labview but I am not real adept at LV.
The other option is to break up your signal by doing a digital heterodyne experiment over small bandwidth chunks of the spectrum and then stitch the result back together (if necessary). You can do this by mixing the signal with a reference in the time domain and the filter and decimate the result. When done correctly you will end up with two data sets (which can be as small as you want) which you can feed into a complex FFT and get the same result as FFT of the entire bandwidth. This is a procedure we have considered but have not implemented. If you search for Agilent digitizer E1437A there is a pretty good description of this method performed in real time onboard on the DSP. This all down in integer math (long).
I should note that if you want to measure a 100 MHz sine wave on a 5122 that you must be careful about filter settings, voltage ranges and temperature. As any of these may push you out of spec.
Good Luck, Greg