dddoubleyyy 2024-03-14 15:26 采纳率: 0%
浏览 50

gnuradio搭配两台usrp设备完成测距

如何在GNURadio中设置usrp发送时间和接收时间?
我目前使用两个USRP设备,一个用于发送,另一个用于接收。并且有OctoClock-G时钟同步设备,编程是使用GNURadio完成的。我想发送一个信号来确定两个USRP之间的距离。

然而,在我可以这样做之前,我需要找出信号的接收时间。有哪位知道如何使用GNURadio来做这件事?

  • 写回答

3条回答 默认 最新

  • 关注

    dddoubleyyy 下午好🌅🌅🌅
    本答案参考ChatGPT-3.5

    在GNURadio中设置USRP设备的发送时间和接收时间可以通过以下步骤完成:

    1. 创建一个GNURadio流图,将一个USRP设备用于发送,另一个USRP设备用于接收。

    2. 在发送端的流图中,使用"Throttle"模块来控制发送的数据速率。可以设置数据速率和采样率来控制发送的时间间隔,从而实现发送时间的设置。

    3. 在接收端的流图中,使用"Pulse Count"模块来计算接收到的信号的时间戳。这个模块会计算接收到的信号中的脉冲数量,并输出对应的时间戳。

    4. 将发送和接收的流图串联起来,并连接两个USRP设备。

    5. 运行GNURadio流图,并观察接收到的时间戳。

    以下是一个简单的示例流图的代码,用于设置USRP设备的发送时间和接收时间:

    # 导入所需的GNURadio模块
    from gnuradio import gr
    from gnuradio import blocks
    from gnuradio import uhd
    
    # 创建一个流图
    class my_top_block(gr.top_block):
        def __init__(self):
            gr.top_block.__init__(self)
    
            # 创建一个USRP发送设备
            self.src = uhd.usrp_sink(
                device_addr="addr=192.168.10.2",
                stream_args=uhd.stream_args(
                    cpu_format='fc32',
                    otw_format='sc16',
                    channels=range(1),
                ),
            )
    
            # 设置发送时间,以100k采样率发送信号
            self.throttle = blocks.throttle(gr.sizeof_gr_complex, 100e3)
    
            # 创建一个USRP接收设备
            self.sink = uhd.usrp_source(
                device_addr="addr=192.168.10.3",
                stream_args=uhd.stream_args(
                    cpu_format='fc32',
                    otw_format='sc16',
                    channels=range(1),
                ),
            )
    
            # 计算接收到的脉冲数量并输出时间戳
            self.pulse_count = blocks.pulse_count(1)
    
            # 将各模块连接起来
            self.connect(self.throttle, self.src)
            self.connect(self.src, self.sink)
            self.connect(self.sink, self.pulse_count)
    
    if __name__ == '__main__':
        # 运行流图
        tb = my_top_block()
        tb.run()
    

    请注意,上述代码中的设备地址和参数应根据你的实际设备和配置进行设置。这只是一个简单示例,你可能需要根据具体情况进行调整。

    评论

报告相同问题?

问题事件

  • 修改了问题 3月14日
  • 创建了问题 3月14日

悬赏问题

  • ¥15 R语言绘制生存曲线时出现警告:All aesthetics have length 1, but the data has 2 rows.
  • ¥15 苍穹外卖拦截器token为null
  • ¥15 pyqt怎么把滑块和输入框相互绑定,求解决!
  • ¥20 wpf datagrid单元闪烁效果失灵
  • ¥15 券商软件上市公司信息获取问题
  • ¥100 ensp启动设备蓝屏,代码clock_watchdog_timeout
  • ¥15 Android studio AVD启动不了
  • ¥15 陆空双模式无人机怎么做
  • ¥15 想咨询点问题,与算法转换,负荷预测,数字孪生有关
  • ¥15 C#中的编译平台的区别影响