LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

FFT using16-bit precision numbers

Hi,

I was recently putting together a data acquisition program to log and process data continuously over a period of a week.
 
Hardware: cRIO, 9233 modules
Signal processing requirements: 50kS/s on 8 channels, performing FFTs on all channels with greater than 1Hz resolution (attempted to use 64k sample block size)
 
We had a fair few issues with the hardware hanging or just stopping without obvious explicit errors. The program appeared to run fine using a 32k sample block size. We assumed that it may be a RAM issue, however we haven't confirmed this.
 
One consideration was that all the FFT processing is performed on double precision numbers, and it did not appear possible to perform the FFT operation on single or 16-bit precision. The few FFT VIs i had a look at all used "Call library function nodes" that I could not edit.
 
Just interested to know if there is an easy way to edit these routines, or if anyone has created some VIs that work on varying precision numbers.
 
Again, not 100% sure this was the sole issue with the above program, but interested nonetheless.
 
Thanks for your time.
 
Cheers,
Mike
0 Kudos
Message 1 of 4
(2,867 Views)

Hi Mike,

I've looked at the FFT VIs and it seems you are correct that all of the VIs are designed to operate on double precision numbers.  As you also noted, you cannot re-write these VIs because you are using the Real-Time VIs that use dll calls.  Your best bet for varying the precision of your FFTs would seem to be designing your own, or soliciting other users for what you are looking for (as you have already done here).  You can also do the processing on double precision data, but convert back to 16-bit precision after the FFT to conserve space.  I would also recommend that you submit a product suggestion for this;  I suspect this would be useful to a lot of people!

You may also want to check out the Real-Time System Manager which is a very useful tool for monitoring your Real-Time system's performance.

I hope this gives you some helpful information!

 
Brian A.
National Instruments
Applications Engineer
0 Kudos
Message 2 of 4
(2,840 Views)

Hi Mike,

 Once I have done a DLL in C that does fft.. .I have it somewhere.If you are interested I can post it during the week.

Other way - just search "fft  .c" in the web,there is a lot of code.To make DLL from it  is not a big deal.

Regards,

Michael

_________________________________________________________________________________________________
LV 8.2 at Windows & Linux


0 Kudos
Message 3 of 4
(2,836 Views)
Thanks for that info guys.
 
I'll check that stuff out. If we do write any custom code, I'll be sure to post it up here if anyone else is interested.
 
Cheers,
mike
 
 
0 Kudos
Message 4 of 4
(2,809 Views)