GNU Radio:tune_request 和 python

GNU Radio: tune_request with python

我正在尝试使用 USRP X310 进行 2 TX 2 RX (MIMO) 配置。我在 GRC 中制作了 2TX 和 2RX 配置的流程图并生成了 python 脚本。

我对调谐请求有疑问。一般来说,使用 python 的 2 TX 2 RX 配置,有 4 个端口的 4 个调谐请求,看起来像

self.usrp_source0.set_center_freq(f, 0)
self.usrp_source0.set_center_freq(f, 1)
self.usrp_sink0.set_center_freq(f, 0)
self.usrp_sink0.set_center_freq(f, 1)

其中 usrp_sink0 是 TX usrp 对象,usrp_source0 是 RX usrp 对象。

是否可以为所有 TX 定义 1 个调谐请求,为所有 RX 定义 1 个调谐请求,如下所述?

self.usrp_source0.set_center_freq(f, all_chan)
self.usrp_sink0.set_center_freq(f, all_chan)

由于 usrp_source 块的编写方式,您一次只能向一个通道发送命令。

::uhd::tune_result_t
usrp_source_impl::set_center_freq(const ::uhd::tune_request_t tune_request,
                                  size_t chan)
{
  const size_t user_chan = chan;
  chan = _stream_args.channels[chan];
  const ::uhd::tune_result_t res = _dev->set_rx_freq(tune_request, chan);
  _center_freq = this->get_center_freq(user_chan);
  _tag_now = true;
  return res;
}

注意chan参数的类型是size_t,所以只能传入一个非负整数。

我假设水槽具有相同的限制。

https://github.com/gnuradio/gnuradio/blob/master/gr-uhd/lib/usrp_source_impl.cc#L137