使用USRP B210接收数据中前​一半数据正常,但后面​数据全为0

8 views (last 30 days)
dan
dan on 28 Dec 2023
Answered: Abhimenyu on 31 Jan 2024
rxradio = comm.SDRuReceiver(...
'Platform', platform, ...
'SerialNum', address, ...
'MasterClockRate', MasterClockRate, ...
'CenterFrequency', USRPCenterFrequency, ...
'Gain', gain,...
'OutputDataType', 'double');
rxradio.SamplesPerFrame = 280000;
rxradio.DecimationFactor = 2;
rxradio.ChannelMapping = 1;
[seq_rx,dataLen,overrun] = rx();
接收数据seq_rx后14000多个数据是0

Answers (1)

Abhimenyu
Abhimenyu on 31 Jan 2024
Hi Dan,
This question has been answered using English as a medium.
I understand that you are experiencing an issue where the first half of the received data from the USRP B210 is normal, but the rest is all zeros. There could be several reasons for this behaviour. Here are some potential causes and troubleshooting steps that can be taken:
  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.
Please refer to the following MATLAB R2023b documentation links to understand more on "comm.SDRuReceiver" system object and "detect Underruns and Overruns" respectively:
I hope this helps to resolve your query.
Regards,
Abhimenyu

Categories

Find more on Communications Toolbox in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!