12-10-2010 03:00 PM
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?
12-13-2010 05:31 PM
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.