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

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

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

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

  • 写回答

3条回答 默认 最新

  • Kwan的解忧杂货铺 2024-03-14 15:27
    关注

    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日

悬赏问题

  • ¥30 电脑误删了手机的照片怎么恢复?
  • ¥15 (标签-python|关键词-char)
  • ¥15 python+selenium,在新增时弹出了一个输入框
  • ¥15 苹果验机结果的api接口哪里有??单次调用1毛钱及以下。
  • ¥20 学生成绩管理系统设计
  • ¥15 来一个cc穿盾脚本开发者
  • ¥15 CST2023安装报错
  • ¥15 使用diffusionbert生成文字 结果是PAD和UNK怎么办
  • ¥15 有人懂怎么做大模型的客服系统吗?卡住了卡住了
  • ¥20 firefly-rk3399上启动卡住了