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