如何在一些采样后给UHD:USRP Source一个命令来更改中心频率?

时间:2019-01-16 10:50:27

标签: python gnuradio gnuradio-companion usrp

我需要通过跳频USRP接收器从文件发送一些数据,并由USRP源接收。在经过一定数量的采样之后,两者都必须同步且不断地更改频率。我如何才能(尤其是)在python代码中告诉USRP源来更改频率?

https://www.gnuradio.org/doc/doxygen/page_uhd.html UHD源和接收器具有命令端口。

pmt :: pmt_t命令= pmt :: cons(//配对

pmt::mp("freq"), // Key is 'freq' => sets the frequency
pmt::mp(1.1e9) // Set the frequency to 1.1 GHz

);

//现在将“命令”传递到USRP模块的命令端口

听起来像是一种更改方式。但是我不知道如何将其连接到USRP?以及如何在采样后触发它。 有人有例子或建议吗?谢谢

1 个答案:

答案 0 :(得分:0)

首先,您需要创建一个定时命令以使命令同步:

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

创建一个tune_request对象,然后创建一个带有时间戳的time命令,以便在USRP上执行该命令。发送带有tune对象的tune_request命令。完成time命令和参数PMT_NIL

如果消息是恒定的,则可以使用 Message Strobe 块。如果参数发生变化(例如中心频率),则需要使用Python。在创建OOT模块之前,您可以考虑GRC中的 Python Block 元素,该元素允许您从GRC内使用python创建这些消息。