Transmit on 2 different frequencies with USRP B210

조회 수: 35 (최근 30일)
Terrance Pat
Terrance Pat 2018년 11월 13일
답변: Khyati Rao 2020년 8월 26일
USRP Hardware Support Package docs and help pages say in several places that it supports being able to set the Tx or Rx frequency independently for the dual-channel Ettus B210 radios. The main documentation page for the comm.SDRuTransmitter object, near the top, says very explicity that I should be able to set a different CenterFrequency on each channel:
  • B210, X300, and X310 radios support two channels that you can use to send data with the comm.SDRuTransmitter System object. You can use both channels or only a single channel (either channel 1 or 2). The comm.SDRuTransmitter System object receives a matrix signal, where each column is a channel of data of fixed length.You can set the CenterFrequency, LocalOsillatorOffset, and Gain properties independently for each channel. Alternatively, you can apply the same setting to both channels. All other System object property values apply to both channels.
and this example also details that this is possible, and expected for the B210.
Now, I'm here because mine won't do that ... it throws an error in comm.internal.SDRuBase. I can set the LocalOscillatorOffset and Gain properties to a 1x2 vector, after changing ChannelMapping to [1 2], but it will not allow me to change CenterFrequency. Here is a brief example, including my error:
>> tx = comm.SDRuTransmitter('Platform','B210','SerialNum','31554F5');
>> tx.ChannelMapping = [1 2];
>> tx.Gain = [79 81];
>> tx.LocalOscillatorOffset = [0 0];
>> tx.CenterFrequency = [2.50e9 2.55e9];
Error using comm.internal.SDRuBase
Expected CenterFrequency to be a scalar.
Error in comm.internal.SDRuBase/set.CenterFrequency
If I print it out here, the object looks as expected, with the other properties set as I asked, and CenterFrequency is still a scalar. Can anyone else try this out and see what they get, please?
I've tried digging through source code, but any relevant parts are obnoxiously buried in binary files, AFAIK, so I can't sort out if this is actually intended, or is simply an oversight. Would really love to fix it myself, if possible. Will also be looking for bug-reporting systems next, I'm new.
So, \*shrug\* ... I'd really like it to behave as advertised. Any help is greatly appreciated!
HW/SW setup, briefly:
  • MATLAB 2018b
  • USRP Support Package version posted 12 Sept 2018, all dependencies installed
  • Ettus B210 board rev 4, FW ver 8.0, FPGA ver 14.0 (according to 'probesdru' command)
  • Running on current-enough Ubuntu
  댓글 수: 1
Terrance Pat
Terrance Pat 2018년 11월 13일
Note that there are a TON of examples, such as this one, which talk about how to transmit over two antennas. But every one I've seen has both channels transmit on the same CenterFrequency:
radio.ChannelMapping = [1 2]; % Use both TX channels
radio.CenterFrequency = 900e6;
which is the radio equivalent of punching yourself in the face. :P

댓글을 달려면 로그인하십시오.

답변 (1개)

Khyati Rao
Khyati Rao 2020년 8월 26일
On the USRP B210, for the MIMO case, both receive frontends share the RX LO, and both transmit frontends share the TX LO. Each LO is tunable between 50 MHz and 6 GHz.
Hence, the center frequency for USRP B210 with MIMO must be a scalar.
Following link might be useful:

카테고리

Help CenterFile Exchange에서 Communications Toolbox에 대해 자세히 알아보기

제품


릴리스

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by