06-03-2012 08:28 PM
Recently I wrote a program which samples signals and dumps the samples into file. But after testing the program, I find that my usrp2 stops sampling after a period of time. The higher the sample rate is, the shorter the time period is. If I set longer acquiration period, labview will report out of memory. I don't know why, so come here for help.
In the attachment, I post the program, where the sample rate equals to samples per symbol * symbol per second.
Thank you in advance!
06-03-2012 10:24 PM
Looking at your program, it is very nice. I do have a few suggestions:
1. Create an indicator on both the calculated IQ rate and the resulting coerced value. This is because a finite number of IQ rates are possible and you may be surprised if you don't note it directly.
2. For streaming to disk appications I recommend using the new I16 format supported in the NI USRP 1.1 driver. Both a property node and changing the Fetch VI are required. You will find that writing 16 bit integers to disk is much smaller (and can be more quickly written to disk) than Complex Double.
3. Set the Queue to have a finite length. (it can also be intialized with data to reduce memory allocation times up front).
All of these best practices are implemented in the following Record and Playback example: https://decibel.ni.com/content/docs/DOC-22174
(written in LabVIEW 2011)
Also, we've found that several factors improve performance streaming performance:
1. Change the computer from the default 'balanced' power setting to 'high performance'
2. Turn off your virus scanner and other memory/processor intense programs
3. Use the built-in ethernet port on your motherboard rather than an add-on card (performance varies by chipset vendor as well)
Please let us know if these suggestions help.
06-03-2012 10:36 PM
Thank you very much ErikL.
The reason that I want to dump samples into file is that I want to do post-processing such as demodulation and decoding. From the labview's help, I find that the data input to modulation toolkit are complex data type. How can I translate the 16 bit short data into complex data?
This morning I do another test and find that: when the datalog file reach 4G byte, the labview will report error. My disk partition is NTFS, and operation system is Win7.