USRP+GNU Radio入门(4)——实例一:多模式调制无线收发系统(psk, cpm, qpsk, dqpsk, gfsk,qam, dbpsk, bpsk, gmsk)

一、实验环境

Ubuntu14.04+​​​​​​UHD3.14.1+gnuradio3.7.9.2

硬件:两台usrp b100(RX/TX),两副天线

 二、例程简析

 1.例程位置

打开终端输入以下内容打开例程文件夹

nautilus /usr/local/share/gnuradio/examples/digital

 打开narrowband文件夹,主要分析benchmark、path、uhd_interface三类代码块

2.各类代码块作用

benchmark文件:相当于使用companion进行图形编程之后生成的my_top_block文件,完成流图的搭建、连接与启动流图。

path文件:完成流图中模块之间的定义与连接,如调制解调模块与放大器之间的链接,类方法与my_top_block的类似。

uhd_interface文件:初始化收发机的工作状态,如工作频率,天线增益等。 

3.benchmark文件详解

以benchmark_tx文件为例,分析代码运行逻辑


导入gnuradio库函数,提供底层运行逻辑代码、各种数字/模拟信号处理模块等。导入path文件和uhd_interface文件,并通过标准库OptionParser来实现参数的传递。


用官方的gr.top_block定义并初始化顶层函数,配置文件options由uhd_interface中的发射模块部分导入,并通过代码行键入具体配置,否则为默认配置。最后将功能模块连接完毕。


主函数部分首先定义了发包函数,之后通过OptionParser添加参数的配置,如数据包大小等到实例化对象parser中,将parser中的参数放到options中,最后用path,uhd的方法添加到这两个类中,以便于在顶层模块中实例化两个连接对象。


使用最终配置参数实例化得到信号处理流图 tb 并启动。


此处代码用于生成与发送数据包,可根据自己需求做适当改动。

三、例程使用步骤

1.帮助文档

命令行中进入例程目录后输入以下代码获得帮助说明(以发送端为例):

./benchmark_tx.py –h 

部分使用说明
-h列出帮助说明
-m选择调制方式,有psk, cpm, qpsk, dqpsk, gfsk,qam, dbpsk, bpsk, gmsk。默认为psk
-s设置发送数据包大小,默认为1500字节
--from-file使用文件作为数据包内容,后续跟地址
--to-file导出发送的内容,后续跟地址
-f设置射频频率
-r设置比特率
-A选择发送使用天线(应用于多天线场景)

2.具体试例

发送一个频率为1GHz的信号:

TX:./benchmark_tx1.py -f 1000M 

RX:./benchmark_rx1.py -f 1000M

四、修改例程以发送文件

直接使用--from-file命令只能在接收端命令行接收到文件内容,即一串乱码,可读性差,为了进一步实现文件的传输与本地保存,将例程文件做适当修改。

1.benchmark_tx的修改

该步骤可简化命令行输入,利于调试。


该步骤为后续对数据包打包做预处理,获取发送时间以用于接收端的文件命名,避免接收文件混乱。


此处对读取的文件提取有用内容,并结合帧头,发送时间打包为发送数据包,同时在发送时实时打印发送信息,以供调试用。

2.benchmark_rx的修改

接收端文件只需修改对接收数据包的读取部分代码,按照发送端的数据包定义格式逐句解包并对保存文件命名。

3.具体试例 

以发送图片为例

TX:./benchmark_tx1.py -f 1000M -t 111.png

RX:./benchmark_rx1.py -f 1000M

  • 25
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: GNU Radio是一个开源的软件无线电平台,可以用于设计和实现各种无线通信系统USRP(Universal Software Radio Peripheral)则是GNU Radio的硬件平台,是一系列开源的软件定义无线电设备。 对于GNu RadioUSRP入门教程,以下是一些建议。 首先,你可以了解GNU Radio的基本概念和工作原理。可以通过阅读官方文档、教程、书籍等来获取这些基础知识。 其次,你可以学习如何使用GNU Radio进行无线通信系统的设计和仿真。可以通过参考一些案例研究和示例代码,了解如何使用GNU Radio进行信号处理、调制解调、多址技术等。 然后,你可以开始学习如何使用USRP设备。首先了解USRP的硬件结构和特性,然后学习如何配置和连接USRP设备。可以通过官方文档和教程来学习如何使用USRP设备进行无线信号的接收和发射。 最后,你可以尝试使用GNU RadioUSRP来实现一些简单的无线通信系统。可以尝试使用GNu RadioUSRP进行无线数据传输、频谱分析、调频广播接收等实验。 总的来说,学习GNU RadioUSRP需要一定的无线通信和信号处理的基础知识,同时也需要一些实践经验。通过阅读官方文档、教程等,同时结合实际操作和实验,你将能够逐渐掌握GNU RadioUSRP的使用。 ### 回答2: GNURadioUSRP是软件定义无线电开发的两个重要工具。GNURadio是一个开源的软件开发工具包,用于搭建软件定义无线电系统。而USRP(Universal Software Radio Peripheral)是一款通用的软件无线电外设,可以用于接收和发送无线电信号。 要学习GNURadioUSRP,首先需要了解软件定义无线电的基本原理和概念。可以通过阅读有关软件定义无线电的入门资料,了解它是如何工作的,以及它的应用领域和优势。 其次,可以通过学习GNURadio的使用方法来入门。可以查阅GNURadio的官方文档或教程,学习如何安装和配置GNURadio,以及如何使用它来搭建无线电系统。可以尝试一些基本的示例项目,如接收和解调FM广播信号。 接下来,可以学习USRP的使用方法。可以查阅USRP的官方文档或教程,学习如何连接和配置USRP设备。可以尝试使用USRP接收和发送无线电信号,如接收和解码数字电视信号。 在学习过程中,可以逐步深入了解GNURadioUSRP的高级功能和应用。可以学习如何使用GNURadioUSRP进行信号处理和调试,如频谱分析和信号录制。可以学习如何使用GNURadioUSRP进行通信系统的仿真和测试。 另外,可以加入相关的软件定义无线电社区或论坛,与其他开发者交流和分享经验。这样可以获取更多关于GNURadioUSRP的学习资源和实践经验。 总结来说,学习GNURadioUSRP需要一定的理论基础和实践经验。通过学习官方文档和教程,参与社区交流,不断实践和探索,可以逐步掌握GNURadioUSRP的使用方法和技巧,从而深入了解和应用软件定义无线电技术。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值