- Buffer overrun: The "overrun" output parameter in the "rx( )" function indicates whether there has been an overflow. If "overrun" is not zero, it indicates that the host computer was not able to process the incoming samples quickly enough, leading to a buffer overrun. This could cause data loss and result in zeros in your received signal. Please make sure your computer is fast enough to handle the data rate and try to minimize the processing load during data acquisition.
- Data length mismatch: The "SamplesPerFrame" property defines the number of samples the "comm.SDRuReceiver" object outputs in one frame. If this is not set correctly or if there's a mismatch with the actual data size being transmitted, it could lead to zeros in the output. Please ensure that the "SamplesPerFrame" is set correctly for your application.
- Software Configuration: There might be an issue with the software configuration or the way the "comm.SDRuReceiver" object is set up. Please double-check the settings for "DecimationFactor", "ChannelMapping", and other properties to make sure they are appropriate for your application.
- Signal Source: Please ensure that the signal being transmitted to the USRP is continuous and does not have any interruptions that could result in zeros in the received data.
- Hardware issue: Please check the USRP and its connections to ensure everything is functioning properly. The USRP B210 should be tested with a known good signal source and configuration.
- Burst mode: This property of “comm.SDRuReceiver” system object can be used to produce a set of contiguous frames without an overrun or underrun. Please enable burst mode (set this property to 1 (true)) to simulate models that cannot run in real time.
- https://in.mathworks.com/help/supportpkg/usrpradio/ug/comm.sdrureceiver-system-object.html
- https://www.mathworks.com/help/supportpkg/usrpradio/ug/detect-underruns-and-overruns.html