MATLAB Answers

why do i get zero vector when using USRP N210 with MATLAB using comm.SDRuReceiver ?

4 views (last 30 days)
i want to recived real TV signal and using the following functions:
radio = comm.SDRuReceiver( 'Platform','N200/N210/USRP2','IPAddress','192.168.10.2', ...
'CenterFrequency',650e6);
spectrumAnalyzer = dsp.SpectrumAnalyzer('InputDomain','Frequency',....
'SampleRate', 1e9,....
'SpectrumType', 'Power density',...
'YLimits', [-130,20],...
'PlotAsTwoSidedSpectrum', false,...
'SpectralAverages', 50, ...
'FrequencySpan', 'Start and stop frequencies', ...
'StartFrequency', 500e6, ...
'StopFrequency', 800e6,...
'Position', figposition([50 30 30 40])) ;
[rxSig, len ] = radio();
spectrumAnalyzer(rxSig);
why the {rxSig} is zeros and also the plot results is zero.

Accepted Answer

Karunya Choppara
Karunya Choppara on 17 Apr 2021
When len = 0, the data from radio() call is not a valid data, and we see all zeros in the rxSig output.
When providing data to the spectrumAnalyzer, we need to check the condition that len output is greater then 0.
[rxSig, len ] = radio();
if (len>0)
spectrumAnalyzer(rxSig);
end
  2 Comments
Karunya Choppara
Karunya Choppara on 18 Apr 2021
@Hadeel S. Abed Currently this is an intended behavior, which happens when the radio is not able to provide the requested number of samples (specified by 'SamplesPerFrame' parameter), to fill the buffer within the specified timeout (internal parameter). You could receive the samples by iteratively calling the radio(), and once the buffer is filled with number of samples equal to 'SamplesPerFrame', the 'len' output returns a non-zero value, and 'rxSig' output will have the received samples from the radio.
for i=1:1000
[rxSig, len ] = radio();
if (len>0)
spectrumAnalyzer(rxSig);
end
end

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!

Translated by