GNU Radio简介及流程图搭建

简介: GNU Radio简介及流程图搭建

前言

欢迎来到无线通信的世界,初步接触 GNU Radio,对其学习进行一个记录。


一、GNU Radio 是什么?

GNU Radio 是一个免费的开源软件开发工具包,提供信号处理模块来实现软件无线电。它可以与现成的低成本外部射频硬件一起使用,以创建软件定义的无线电,也可以在类似模拟的环境中不使用硬件。它被广泛用于研究、工业、学术界、政府和业余爱好者环境,以支持无线通信研究和现实世界的无线电系统。

下面显示了 GNU Radio Companion 可视化编辑器中的示例流程图:

GNU Radio 是一个框架,使用户能够设计、模拟和部署高性能的真实世界无线电系统。它是一个高度模块化的、面向“流程图”的框架,带有一个全面的处理块库,可以很容易地组合成复杂的信号处理应用程序。GNU Radio 已被用于大量现实世界的无线电应用,包括音频处理、移动通信、跟踪卫星、雷达系统、GSM 网络、数字世界广播等,所有这些都是计算机软件。它本身并不是一个与任何特定硬件对话的解决方案。它也不提供特定无线电通信标准(例如802.11、ZigBee、LTE等)的开箱即用应用,但它可以(并且已经)用于开发基本上任何频带受限通信标准的实现。

二、GNU Radio 安装

参考我上一篇博客:使用MATLAB连接USRP

三、搭建第一个流程图

1、创建 GRC 文件

①、打开 GNU Radio Companion,可以看到下图的 GRC 窗口:

②、双击 Options 块并通过编辑 lD 和 Title 命名流程图:

ID 是Python流程图的文件名。将其命名为 sineWaveFlowgraph。标题是流程图的描述。单击“确定”保存更改。

单击文件:保存 GRC 流程图。

输入 sineWaveGRC.grc 作为 .grc 文件的名称,以将其与 ID 区分开来。

GRC 文件被命名并保存

2、添加块

添加块以创建第一个流程图。GNU Radio 附带了一个信号处理块库。可以使用 CTRL+F 来搜索块:

①、搜索信号源块,然后将其拖放到 GRC 工作空间中:

②、现在搜索 Throttle、QT GUI Frequency Sink 和 QT GUI Time Sink。将每个块拖放到工作空间中。流程图应如下所示:

Signal Source 将创建一个复杂的正弦曲线,QT GUI Frequency Sink 将显示频谱的幅度,QT GUI Time Sink 将显示时域。Throttle 块用于在没有无线电硬件的情况下进行流量控制。

③、这些块需要连接。首先单击 Signal Source 的输出(以红色突出显示),然后单击 Throttle 的输入(以橙色突出显示)。

Signal Source 文本从红色变为黑色。红色文本表示在运行流程图之前,块仍有需要连接的输入或输出。将 Throttle 输出连接到频率接收器和时间接收器:

3、运行流程图

1、按播放按钮(以红色突出显示)运行流程图

2、一个新窗口显示时域和频域中的信号:

成功,流程图正在运行。

3、打开文件浏览器。有两个文件。第一个文件是 sineWaveGRC.grc,包含 grc 中流程图显示的信息。第二个文件是sineWaveFlowgraph.py,其中包含实际的 Python 流程图代码。“选项”块中的 ID 决定了.py文件的名称。

更多内容请参考官方文档:https://wiki.gnuradio.org/index.php?title=Tutorials

目录
相关文章
|
7月前
|
安全 数据处理 C++
GNU Radio之OFDM Carrier Allocator底层C++实现
GNU Radio之OFDM Carrier Allocator底层C++实现
143 1
GNU Radio之OFDM Carrier Allocator底层C++实现
|
6月前
|
Linux Unix 程序员
02. 【Linux教程】GNU 项目简介
02. 【Linux教程】GNU 项目简介
101 0
|
7月前
解决GNU Radio+USRP实现OFDM收发在接收端QPSK星座图映射无“抖动”问题
解决GNU Radio+USRP实现OFDM收发在接收端QPSK星座图映射无“抖动”问题
191 0
|
7月前
|
Python
GNU Radio创建Zadoff-Chu序列python OOT块
GNU Radio创建Zadoff-Chu序列python OOT块
92 0