After sampling the signal, the data is buffered on the host PC, waiting to be sent to the LabVIEW program. As we can see from the LabVIEW example niUSRP EX Rx Continuous Sync.vi, the data is fetched from the host PC buffer in a while loop:
We can get higher throughput if we increase the execution speed of this loop. In order to do this, remove as much processing as you can from this loop as well as any indicators or graphs. You can do this by implementing Producer and Consumer architecture. This will cause the data streaming and processing portions to happen in parallel and allow the loop to execute more quickly.Another way to speed up loop execution is to find the lower level functions that take care of the acquisition itself and bring them to the top level VI, that way you can avoid the overhead of going though all the "wrapping" VIs on every single loop iteration and only perform the needed operations. For example, on the Rx Streaming Time (Host).vi from the NI-USRP Simple Streaming With Time Sample Project, you can go down several levels of VIs and bring the host FIFO read method to the top level VI to speed up the loop.
Collaborate with other users in our discussion forums
A valid service agreement may be required, and support options vary by country.