GNU Radio Companion
- 目标
- 用标准的模块或库创建流图
- 学习调试流图
- 理解GNU Radio中的采样和throttle
- 学习使用文档理解模块的功能
- 学习前提
- git的基本知识
- GNU Radio 3.7.4或者更新版本
- Tutorial 1
2.1. 建立教程
开始之前,我解释一些如何规划整个教程。Github上的教程包括了所有的图片、grc文件和模块文件。我们可以参考这些文件,但是为了学习和增长经验,我们需要自己去时间。所以,我建立俩个文件夹,一个存放专门存放solutions,另外一个专门存放work:
/home/user/gnuradio/tutorials/solutions
/home/user/gnuradio/tutorials/work
2.1.1 克隆仓库
开始之前,我们需要克隆仓库。首先,打开终端并切到solutions目录。克隆仓库到本地。
$ git clone https://github.com/gnuradio/gr-tutorial
2.1.2 安装模块
在被克隆的仓库中,我们运行以下命令,编译安装solutions
mkdir build
cd build
cmake ..
make -j8
sudo make install
sudo ldconfig
如果我们想要自己去做这些教程,我们可以卸载这些模块。
sudo make uninstall
sudo ldconfig
2.2 了解GRC
我们在Tutorial1中已经知道GNU Radio是一个工具的集合,可以用来开发软件无线电。在这个教程中,我们将要探索如何使用GRC(GNU Radio的图形化工具)。GRC允许我们图形化创建Python文件,而不是单单使用命令和代码。
在终端(ubuntu:ctrl+alt+t)中打开gnuradio-companion,让我们开始GRC的学习之旅。
$ gnuradio-comp
其实么,不准备翻译这个的,因为确实这一节废话比较多,但是呢,为了完整性,所以还是花了点时间稍微翻译了一下。所以不细致的地方勿喷。
GNU Radio和Software Radio的介绍
什么GNU Radio?
GNU Radio是一个能够使用户独立设计、仿真、部署高性能的无线电系统。它是一个高度模块化、面向流程图的架构。这让我们可以可容易理解处理过程,并用来解决复杂的信号处理问题。
GNU Radio目前已经有许多方面的应用,比如音频处理、移动通信、卫星追踪、雷达系统、GSM、DRM等等。
它自身并不需要特定硬件平台的支持。它也不为特定的无线电通信标准(例如,802.11,ZigBee,LTE等)提供开箱即用的应用,但是它可以(并且已经被)用于开发基本上任何频带限制通信标准。(这段来着谷歌翻译)
为何需要GNU Radio?
以前,开发无线通讯设备时,工程师不得不开发特定的芯片来编码或者解码特定的发射信号,还要给这些东西debug
Software-Defined Radio(SDR),即软件无线电,采取模拟信号处理,并且在屋物理和经济可行的情况下,将其移动到计算机上处理无线电信号。
当然,你可以在从头开始编写的程序中使用计算机连接的无线电设备,根据需要连接算法以及自己移入和移出数据。但这很快变得麻烦:为什么要重新实现标准过滤器?为什么你必须关心数据在不同处理块之间如何移动?使用高度优化和对等处理的实现方式不是比自己写更好吗?你又如何使你的程序在多核架构上运行流畅,但在嵌入式设备上也同样运行良好并消耗很少的功率?
GNU Radio是专用于为商用计算机写信号处理程序的框架。GNURadio提供了许多可复用的模块和标准算法库,并对大量通用平台进行了高度优化,因此其具有很高的扩展性。它还自带了许多例子,以供新手开始学习。
数字信号处理
作为一个软件框架,GNU Radio致力于数字化信号,使用通用计算机来实现通信功能。
一个小小的信号理论
数字信号处理需要处理的信号是数字的。但是什么是数字信号。为了更好的理解,让我们看一个普通的信号场景:用一个手机记录声音。
物理上,人说话会产生一个声信号。在
最近在学校做GNU Radio,因为毕设要用到这个,所以在阅读官网教程的时候,因为个人英文水平虽然可以阅读英文文档,但是读完之后却很难组织起一个架构,所以还是决定翻译一下。一来,练习自己的英文。二来,整理自己的思路
目前还在更新中。翻译完一篇文档,会更新到这里来。至于我翻译的是哪里,对照官网一看便知晓啦。当然了,得自备梯子啦。