1 Software Defined Radio

软件无线电(Software Defined Radio,SDR)是一种实现无线通信的新概念和体制。其中以往只能在硬件中实现的组件(例如混频器,滤波器,放大器,调制器/解调器,检测器等),现在可以通过软件手段在个人计算机上或嵌入式系统上实现。一开始被应用在军事领域,在21世纪初,由于众多公司的努力,使得它已从军事领域转向民用领域,成为经济的、应用广泛的、全球通信的第三代移动通信系统的战略基础。(翻译自维基百科)

图 1 Software Defined Radio(Wikipedia)

基本的SDR系统可以由装备有声卡或其他模数转换器的个人计算机组成,之前是某种形式的RF前端。大量的信号处理被交给通用处理器,而不是在专用硬件(电子电路)中完成。这种设计产生一种无线电装置,它可以仅仅基于所使用的软件来接收和发送广泛不同的无线电协议(有时也称为波形),简化了系统设计。(翻译自维基百科)

2 GNU Radio

2.1什么是GNU Radio

GNU Radio是一个框架,使用户能够设计,模拟和部署高性能的现实世界无线电系统。它是一个高度模块化的“流程图”框架,配有一个综合的处理块库,可以轻松地组合起来,形成复杂的信号处理应用程序。

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

2.2那么GNU Radio究竟做了什么呢

GNU Radio执行所有信号处理。您可以使用它来编写应用程序以从数字流中接收数据或将数据推送到数字流中,然后使用硬件传输数据。GNU Radio具有过滤器,通道代码,同步元件,均衡器,解调器,声码器,解码器和许多其他元素(在GNU Radio术语中,我们称之为这些元素块),这些元素通常在无线电系统中找到。 更重要的是,它包括连接这些块然后管理数据如何从一个块传递到另一个块的方法。扩展GNU Radio也很简单; 如果找到缺少的特定块,则可以快速创建并添加它。

由于GNU Radio是软件,它只能处理数字数据。通常,复杂的基带采样是接收机的输入数据类型和发射机的输出数据类型。然后使用模拟硬件将信号移动到所需的中心频率。除此之外,任何数据类型都可以从一个块传递到另一个块 - 无论是位,字节,向量,突发或更复杂的数据类型。

GNU Radio应用程序主要使用Python编程语言编写,而所提供的性能关键信号处理路径在C ++中使用处理器浮点扩展(如果可用)实现。因此,开发人员能够在简单易用的快速应用开发环境中实现实时,高吞吐量的无线电系统。

2.3我可以编程使用GNU Radio吗

这是非常有用的 但是,有没有办法使用GNU Radio无法编码。首先,GNU Radio Companion是一个类似于Simulink的图形用户界面。它允许您通过拖放来创建信号处理应用程序。此外,GNU Radio还提供了一套即用型工具和实用程序。这些用于管理最基本的操作,如记录RF信号和进行频谱分析。如果这引发了你的兴趣,也许看看初学者的指南如何使用GNU Radio

但是,如果要扩展GNU Radio(即添加新功能),则必须编写代码。 为了创建对GNU Radio Companion来说太复杂的应用程序,Python是最简单的方式。对于性能关键的代码,您应该编写C ++代码。

2.3 GNU Radio如何获得许可

GNU Radio根据GNU通用公共许可证(GPL)版本3许可。所有代码均为自由软件基金会的版权。

3演示

图 2 软件界面

4硬件

图 4 Hardware

5 参考

  1. https://www.gnuradio.org/
  2. https://redpitaya.com/

GNU Radio在SDR领域的应用的更多相关文章

  1. [SDR] GNU Radio 系列教程(一) —— 什么是 GNU Radio

    目录 1.GNU Radio 是什么 2.我为什么要用 GNU Radio 3.数字信号处理 3.1 一点信号理论 3.2 将数字信号处理应用于无线电传输 4.基于流程图的模块化数字信号处理方法 本文 ...

  2. [SDR] GNU Radio 系列教程(二) —— 绘制第一个信号分析流程图

    目录 1.前言 2.启动 GNU Radio 3.新增块 4.运行 本文视频 参考链接 1.前言 本文将介绍如何在 GNU Radio 中创建和运行第一个流程图. 2.启动 GNU Radio GNU ...

  3. GNU Radio 入门培训

    1. GNU Radio介绍 1.1 什么是GNU Radio GNU Radio是一个完全开源的软件无线电结构平台,它可以用来设计和仿真,也可以用来连接真实的无线电系统.GNU Radio是一个高度 ...

  4. GNU Radio的hello world(转)

    运行GNU Radio 需要注意的是,如果您的项目不需要用到硬件源和硬件池的话,直接使用Shell运行GRC是没有问题的.但是需要用到硬件源和硬件池的话,请记得使用管理员权限运行GRC,否则项目在执行 ...

  5. GNU Radio Radar Toolbox

    GNU Radio Radar Toolbox Install guide Change to any folder in your home directory and enter followin ...

  6. GNU Radio: Overview of the GNU Radio Scheduler

    Scetion 1: The Flowgraph The flowgraph moves data from sources into sinks. 一个流图由多个模块组成,其中一般包括信源(Sour ...

  7. GNU Radio: Synchronization and MIMO Capability with USRP Devices

    Application Note Synchronization and MIMO Capability with USRP Devices Ettus Research Introduction S ...

  8. GNU Radio: USRP2 and N2x0 Series

    Comparative features list 相对性能清单 Hardware Capabilities: 1 transceiver card slot External PPS referen ...

  9. GNU Radio: Multiple USRP configurations 配置多个USRP设备

    Introduction 引言 Some USRP devices are capable of being grouped to form a single, virtual device. A s ...

随机推荐

  1. EXCHANGE 2013 队列

    每当咱在Exchange里查看队列的时候,我们会看到队列分成好几个组,每个邮箱数据库都有自己的目标队列,DAG.AD站点也是,AD林也是一个队列,最后最多的就是外部SMTP域队列. 当传输服务处理队列 ...

  2. 如何用iOS工程生成iOS模拟器包

    1. 在终端上运行下面的命令来查找你的机器上可用的SDK的版本 xcodebuild -showsdks 2. 创建模拟器包: xcodebuild -workspace ** -scheme ** ...

  3. Union Find

    并查集 前言 来自知乎,Coursera 上普林斯顿大学的算法公开课,稍微来博客上写写记记. 课程资源:1. Algorithms, Part I 2. Algorithms, Part II 3. ...

  4. [原]外网访问用azure虚拟机搭建的网站

    1.Ubuntu+Apache+PHP的环境搭建(此处省去了mysql的步骤) 在azure上搭建上述的开发环境和在本地PC搭建是一样的步骤,具体介绍请参看这里. 2.从外网访问 注意,这一步的前提是 ...

  5. python 中logging的日志封装

    因为最近在做平台,发现有同事,使用django封装了日志模块,看样子很简单,准备自己单独做了一个日志封装模板,对于python不熟练的我,封装部分参考了多个博主的内容,形成自己的日志模块,内容如下: ...

  6. Linux调整系统时间

    1.yum search ntp(搜索可安装的ntpn) 2.yum install ntp.x86_64 3.service ntpd start 4.ps -ef | grep ntpd 5.da ...

  7. BZOJ4446:[SCOI2015]小凸玩密室(树形DP)

    Description 小凸和小方相约玩密室逃脱,这个密室是一棵有n个节点的完全二叉树,每个节点有一个灯泡.点亮所有灯泡即可逃出密室. 每个灯泡有个权值Ai,每条边也有个权值bi.点亮第1个灯泡不需要 ...

  8. 【webpack】理解配置文件

    学习链接: http://blog.csdn.net/hongchh/article/details/55113751 https://segmentfault.com/a/1190000009356 ...

  9. CentOS 安装jira 6.3.6

    java 目录: /usr/java/jdk1.6.0_45 tomcat 目录:/usr/tomcat-7.0.29 jira 目录: /usr/local/jira jira 访问地址: cent ...

  10. php memcache分布式和要注意的问题

    Memcache的分布式介绍 memcached虽然称为“分布式”缓存服务器,但服务器端并没有“分布式”功能.服务器端仅包括内存存储功能,其实现非常简单.至于memcached的分布式,则是完全由客户 ...