这是学习GNU Radio的学习笔记,主要参考了官方教程[1]

GNU Radio Companion (GRC)

GNU Radio是一个工具的集合,他可以方便大家用软件来开发无线电系统,而不是完全用硬件。而GRC是一个用来简化开发的工具,他可以使用户使用图形化界面拖拽空间的方式编写Python程序。
首先安装GNU Radio, 运行以下命令打开GRC。

gnuradio-companion

可以看到界面可以分为,五个部分(Library, Toolbar, Terminal, Workspace and variables)。

GRC

Block

在紫色的工作区我们可以看到现在程序中的模块Block。每一个流图都会有一个叫做Options的模块。我们可以双击Block修改他们的属性,例如双击Options我们可以修改他的id(转化成python程序时会用到这个名字)等等参数,还是看到这个对话框的上边还有Advanced和Decumentation这两个tab,点击Decumentation可以看到对这个模块的详细说明。

Options

注意 id是Options的id的值就是flowgraph转化成python文件的名字,点击generate这个按钮。

generate

会看到生成了一个python文件而且名字和Options的名字一样,大家可以改成其他名字验证一下。

generated

按CTRL+F可以看到右侧的Block区域出现搜索框,我们可以查找想要的uBlock。

find

一般情况下一个GRC flowgraph 肯定会有至少一个Source和一个Sink。
例如我们首先搜索Source,找到Signal Source,拖动它到左侧的紫色工作区。 然后搜索sink,找到QT GUI Time Sink, 也拖动到工作区.

two_blocks

可以看到两个模块标题是红的说明,流图存在错误,我们后边需要对其输入输出进行连接。

Variable

需要定义一个变量来设置采样率。如samp_rate

samp_rate

samp_rate_properties

注意 下划线表示,这些参数可以在程序运行时改变。

Connection

注意 在此之前我们再添加一个模块 Throttle, 这个模块用来对流图进行节流,以确保它不会消耗100%的CPU周期,并使计算机无响应。

three_blocks

顺次点击上一个模块的out(Block上的小方块凸起)和下一个模块的in就可以连接两个模块。

three_blocks_conn

注意 两个连接的模块,输入输出的数据类型需要一致,否则箭头会变红。

点击运行可以看到运行效果。

start

res

参考文献:


  1. GNU Radio Tutorials. https://wiki.gnuradio.org/index.php/Tutorials ↩︎