1

我一直在尝试在 GNU Radio 伴侣的 Signal Source 块中传递消息。我可以从它的源代码中看到,我们可以传递消息来改变源的频率、幅度、偏移和相位。例如,从消息选通发送的以下消息 PMT 可以将信号的幅度更改为 0.5。

 pmt.dict_add(pmt.make_dict(), pmt.intern("ampl"), pmt.from_double(0.5))

但是当我查看 UHD USRP Sink 的代码时,我无法清楚地知道可以向该块发送哪些命令或可以更改哪些参数。我在文档中的某些地方读到,USRP 接收器的频率、增益、LO 偏移、时间戳、中心频率和其他收发器相关设置可以通过命令消息进行操作。

哪些命令可以从消息选通(以 pmt 格式)发送到 USRP Sink 块,哪些参数(及其密钥)可以修改?

4

1 回答 1

2

这是官方记录的:

https://www.gnuradio.org/doc/doxygen/page_uhd.html#uhd_command_syntax

命令名称 值类型 描述
整数 指定通道。如果没有给出,则要么选择所有通道,要么选择通道 0,具体取决于操作。值 -1 会在可能的情况下强制“所有通道”。
获得 双倍的 设置 Tx 或 Rx 增益(以 dB 为单位)。默认为所有通道。
电源数据库 双倍的 设置 Tx 或 Rx 功率参考电平(以 dBm 为单位)。默认为所有通道。仅适用于某些设备,并且仅当校准数据可用时。
频率 双倍的 设置 Tx 或 Rx 频率。默认为所有通道。如果没有指定 lo_offset,它会将 LO 偏移设置为零。
lo_offset 双倍的 设置 LO 偏移。默认为所有通道。请注意,这不会影响有效中心频率。
tune_request 与 freq 类似,但设置了完整的调谐请求(即中心频率和 DSP 偏移)。默认为所有通道。
tune_request_t 与 tune 类似,但支持完整的手动调整请求,如 uhd::tune_request_t。默认为所有通道。
lo_freq 双倍的 对于完全手动调谐:设置 LO 频率(RF 频率)。与 freq、lo_offset 和 tune 冲突。
dsp_freq 双倍的 对于完全手动调谐:设置 DSP 频率(CORDIC 频率)。与 freq、lo_offset 和 tune 冲突。
方向 细绳 用于定时收发器调谐,以确保维持调谐顺序。'TX' 或 'RX' 以外的值将被忽略。
速度 双倍的 参见 usrp_block::set_samp_rate()。始终影响所有渠道。
带宽 双倍的 请参阅 usrp_block::set_bandwidth()。默认为所有通道。
时间 时间戳 设置命令时间。请参阅 usrp_block::set_command_time()。PMT_NIL 的值将清除命令时间。
主板 整数 指定 mboard 索引(如果适用)。
天线 细绳 参见 usrp_block::set_antenna()。默认为所有通道。
GPIO GPIO PMT 字典,包括 GPIO 的 bank、attr、value、mask。见注释。
于 2021-12-29T13:16:19.100 回答