LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

How to compute 8 channels FFT on deltasigma FPGA ?

Thanks very much GabeG, yes I want to compute and display 8 different spectrums simultaneously . 

 

My Configuration : samples frequency 51200 hz (obligation) , number of samples per channel (I choose 5120 but it's not an obligation so I can change it) . so I have a table of 8 size each element has (5120)  I use this table to compute FFT so it will be difficult to transfert 1024 points by channels to the FFT I guess. So maybe I have to change the number of samples per channels from 5120 to 1024 right ? so in 1s I will have 50 buffer of 1024 samples for each channel.

 

PS :  I need to compute 8 independant FFT simultaneously  for each incomming table buffer (8* 1024) right ?

 

Thanks 

0 Kudos
Message 11 of 13
(547 Views)

That's right. You could split your table up into 8 different one dimensional arrays and send each to a separate loop that performs the FFT. If your on the FPGA, this takes a lot of slices but gains an 8x improvement in speed. On the RT, it may get you some improvement depending on the number of cores/threads. Your N channel power spectrum is probably okay, as long as it runs fast enough, but make sure the direction it performs the calculation on is the long direction. The big issue on the RT, that you should still verify, is that you're delivering the correct sized array to the power spectrum vi. When you set the number of samples per channel in continuous acquisition mode, it usually sets the buffer size, not the number of samples you get for each read. Start by getting it running with finite samples acquisition, check it meets speed requirements, then figure out the continuous acquisition last. It's hard to imagine that an 800 Mhz processor is not up to this task, so I'm thinking some minor detail is to blame.

 

Good luck!

0 Kudos
Message 12 of 13
(541 Views)

Thanks for posting the picture of your block diagram.  To increase the block size being sent to the FFT, you need to increase the number of samples to read from the DMA buffer.  Your read block in the main producer loop has a blue integer input coming from the block size configuration.  Simply increase this parameter to 5120, or 10240 an let us know the results. 

 

 

Preston Johnson
Solutions Manager, Industrial IoT: Condition Monitoring and Predictive Analytics
cbt
512 431 2371
preston.johnson@cbtechinc
0 Kudos
Message 13 of 13
(527 Views)