LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

44 kHz of FPGA audio data..best way to implement?

I have a program that will be taking 4 channels of audio data using FPGA at 44 kHz. The user may only care about 1 channel, or they may care about all 4. This data could be taken for anywhere between 30 and 120 seconds. Worst case, from my calculations, 44 kHz *120 seconds * 4 channels is 21.120 million points. All of the following is going to be happening in my RT, not on the FPGA. My first thought is to intialize 4 arrays of 5.28 million points(again this is worst case), one array for each channel. Then if they take less than 120 seconds of data I can just index the portion of the array I want.This way I can use replace array subset and just keep overwriting the buffer. Does this sound like a reasonable solutions or is using an array of this size for this going to rail the cRIO processor and will I have to use some other method for managing large data sets?

0 Kudos
Message 1 of 2
(2,194 Views)

Hi,

 

Allocating this much memory on an RT target might cause problems. A better way would be to take the data and transfer it to a Windows machine and process/store the data there. You can do the transfer using shared variables, network streams (in LV 2010 only), tcp/ip, etc.  

0 Kudos
Message 2 of 2
(2,141 Views)