目录

一、什么是软件无线电?

二、GNU Radio到底能做什么事情?

三、 我如果不精通编程,还能用GNU Radio吗?

四、 GNU Radio使用需要授权吗?

五、基于GNU Radio,人们已经做了取得了哪些成果?

六、数字信号处理、基带、时钟同步…这些名词是什么意思?

七、有用的链接和联系方式


本文讲解视频:https://www.bilibili.com/video/BV1U54y1z7bX

GNU Radio是一个免费的开源软件工具包,该工具包提供了可用于软件无线电的信号处理模块。基于一些通用的射频前端设备,该工具包可以用来实现软件无线电系统。此外,该工具包也可以用于单纯的理论仿真学习。目前,GNU Radio已被业余爱好者、科研学者和通信企业人员广泛用于通信理论研究和系统研发。

一、什么是软件无线电?

软件无线电的定义可以看一下软件无线电的维基百科或者百度百科,软件无线电,或者称为软件定义的无线电(Software Defined Radio,SDR)是一种无线电广播通信技术,它基于软件定义的无线通信协议而非通过硬连线实现。频带、空中接口协议和功能可通过软件下载和更新来升级,而不用完全更换硬件。

二、GNU Radio到底能做什么事情?

GNU Radio可以用来实现所有的信号处理操作。你可以用GNU Radio来实现数字信号接收或者将数据生成数字信号,然后这些信号可以用通用的射频前端发射出去。GNU Radio有滤波器、信道编码解码、时钟同步、均衡器、解调器、解码器和其他的通信组件。在GNU Radio中,这些组件称为模块block。更重要的是,GNU Radio可以将这些模块串联起来,形成一个完整的通信系统,并且可以有效管理控制不同模块之间的数据输入和输出。此外,如果你想扩展GNU Radio的现有模块的话,也是非常方便的。你可以根据自己的需求来创建自己的通信模块,并且把它安装集成到GNU Radio中,以便今后你可以方便调用它。

由于GNU Radio是软件,所以它只能处理数字信号(数据)。通常,用GNU Radio程序实现的接收机的输入、发射机的输出都是复数基带信号。通用射频前端设备用于将复数基带信号进行频谱搬移,即将基带信号搬移到你需要的中心频率(由基带信号变为带通信号)。此外,在GNU Radio程序中,不同模块之间的输入输出数据类型可以是比特、矢量、复数等类型。

GNU Radio应用程序主要是用python语言来编写的,不过对于实时性要求较高的信号处理模块则是用C++实现的。因此,我们是可以用GNU Radio来实现一些实时、高吞吐量的通信系统的。

三、 我如果不精通编程,还能用GNU Radio吗?

即使你不精通python或者C++语言,你也可以使用GNU Radio。因为GNU Radio为我们提供了一个很好的研发工具,叫GNU Radio Companion(GRC),这是一个类似于simulink的研发工具。你可以通过鼠标拖拽GRC已有的通信模块,并在不同的模块之间连线的方式,构建一个通信系统。

然而,如果你想要扩展GNU Radio已有的功能(例如GNU Radio或者GRC已有的模块无法满足你的需求),那么你就必须要用C++来实现你的需求,并封装成一个模块,并安装到GNU Radio中。

当你用GRC拖拽模块的方法来构建通信系统,你觉得比较复杂凌乱时,你也可以写python脚本程序的方式来实现你的通信系统程序。当你的通信系统对于信号处理的实时性要求特别高的时候,你可以选择使用C++来实现你的通信系统。

四、 GNU Radio使用需要授权吗?

GNU Radio遵从GNU GNU 通用公共授权v3.0。所有代码版权属于自由软件基金会FSF。

、基于GNU Radio,人们已经做了取得了哪些成果?

如果你已经安装了GNU Radio,那么它会自带很多的例子。你可以找到数字信号发射、模拟信号接收等诸多例子。此外,来自全球的GNU Radio使用者也公开了一些他们的开源项目成果,具体可以参见http://www.cgran.org/,这里有他们实现的众多第三方GNU Radio库。此外,基于GNU Radio的项目可以参见https://wiki.gnuradio.org/index.php/OtherCode

六、数字信号处理、基带、时钟同步…这些名词是什么意思?

如果你对于数字信号处理、基带、时钟同步等等此类通信术语感到陌生和不解,那么你在使用GNU Radio的时候会碰到很多问题。因此,你需要具备一些通信原理、数字信号处理的基础知识。但是,千万别别这点问题吓到,找几本相关的书,翻一翻,看一看。GNU Radio wiki推荐了一些通信知识的书籍,https://wiki.gnuradio.org/index.php/SuggestedReading

七、有用的链接和联系方式

https://wiki.gnuradio.org/index.php/What_is_GNU_Radio%3F

https://mp.weixin.qq.com/s/WOogXhzqsUdArolJ3gb9rA

GNU Radio系列教程(一):什么是GNU Radio?为什么我需要用GNU Radio?相关推荐

  1. GNU Radio系列教程(七):初级篇之GNU Radio GRC PSK调制解调

    本文讲解视频:https://www.bilibili.com/video/BV1J54y147GQ 在本文中,我们将进行纯仿真实验,不使用任何硬件设备.但是,我们会考虑无线信号在实际信道传输过程中所 ...

  2. GNU Radio系列教程(三):初级篇之GNU Radio GRC流图

    本文的目标: (1)使用GNU Radio的标准模块来创建流图GRC程序 (2)学习如何在GRC的模块之间调试.解决问题 (3)理解GRC中的采样模块和限流模块的作用 (4)学习如何使用GNU Rad ...

  3. GNU Radio系列教程(二):初级篇之GNU Radio介绍

    目录 一.GNU Radio是什么? 二.为什么需要GNU Radio? 三.数字信号处理 1.声音示例 2.将数字信号处理应用到无线电磁波传输中 四.基于模块化和流程图的数字信号处理 五.GNU R ...

  4. 《⑨也懂系列:GNU Emacs安装教程Ver.2》世界著名的顶级全能文本编辑器

    备注:我的全部文章首发在自己的独立博客(http://rsreland.net)上,编程相关文章会同步到这里,不过文章的维护是优先那边.然后本篇文章的地址是:http://rsreland.net/a ...

  5. ClickHouse系列教程七:centos下源码编译安装及报错解决

    ClickHouse系列教程: ClickHouse系列教程 参考上一篇博客: ClickHouse系列教程六:源码分析之Debug编译运行 先安装 gcc 8, g++ 8, cmake 3, ni ...

  6. 学习Emacs系列教程

    学习Emacs系列教程 :目录 学习Emacs系列教程(一):基本使用 学习Emacs系列教程(二):导航 学习Emacs系列教程(三):编辑(1) 学习Emacs系列教程(四):Minibuffer ...

  7. STM32MP157系列教程连载-Linux应用开发篇1:STM32MP1微处理器之Ubuntu安装与体验

    STM32MP157系列教程连载-Linux应用开发篇1:STM32MP1微处理器之Ubuntu安装与体验 截至目前上传的博文已经有6篇了(硬件4篇,安装环境2篇),最近手头在搞STM32MP157C ...

  8. jquery系列教程1-选择器全解

    全栈工程师开发手册 (作者:栾鹏) 快捷链接: jquery系列教程1-选择器全解 jquery系列教程2-style样式操作全解 jquery系列教程3-DOM操作全解 jquery系列教程4-事件 ...

  9. js系列教程9-表单元素全解

    全栈工程师开发手册 (作者:栾鹏) 快捷链接: js系列教程1-数组操作全解 js系列教程2-对象和属性全解 js系列教程3-字符串和正则全解 js系列教程4-函数与参数全解 js系列教程5-容器和算 ...

最新文章

  1. 构建之法读书笔记03
  2. 如何将10进制转成16进制,又如何将16进制数转成10进制,C#和VB代码?
  3. 播客#50:Sacha Greif
  4. 结合实际场景谈一谈微服务配置
  5. 二月技术通讯.pdf丨核心数据库一波三折异常重启分析
  6. boot spring test 文档_SpringBoot入门十,添加junit单元测试
  7. python做一副54扑克牌发牌_用Python制作4人扑克牌发牌游戏
  8. [胡思乱想]网络游戏与社会资源公平分配
  9. Linux CGLIB升级,cglib升级建议
  10. H3C 路由备份与IP聚合
  11. 三星s8刷机包android10版本,三星S8+刷机包(官方固件最新升级包v7.0)
  12. [Linux学习] 实战系列之网络管理
  13. X310系列USRP使用LAN口MATLAB控制方法
  14. 《惢客创业日记》2020.07.28(周二)因健忘症引发的痛点
  15. python实现12306自助刷票下单
  16. 论文代码复现 | 无人机与卡车联合配送(Python+Gurobi)(The flying sidekick traveling salesman problem)
  17. vue动态面包屑导航的使用
  18. 麒麟芯片配上鸿蒙系统有多快,麒麟芯片和鸿蒙系统靠边站,纯国产飞腾芯片和麒麟系统早已大规模使用...
  19. 十大战略工具(4)—— SCQA架构
  20. 哈工程转专业计算机,哈尔滨工业大学2020级转专业情况看冷热

热门文章

  1. PADS Layout添加工艺边和Mark的方法和步骤
  2. python可以应用于哪些方面?
  3. 电脑学习编程or使用笔记本
  4. sqlalchemy.exc.ArgumentError: relationship 'tags' expects a class or a mapper argument (received:
  5. DMCTF部分题目writeup
  6. 图像处理(6)--图像深度
  7. 年轻人的第一个在线音乐播放器(简单易上手)
  8. 纯JavaScript入门级小游戏:兔子抢金币(附演示地址+源码)
  9. 有没有比较好的建站系统可推荐?
  10. 5个小技巧 教你在家里如何给花儿拍“写真”