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

1、GNU Radio 是什么

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

GNU Radio 是一个免费、开源的软件开发工具包,通过提供信号处理 “块” 以帮助开发者实施软件无线电。

它易于和一些低成本的RF硬件外设一起使用,也可以纯模拟使用。

它广泛应用于研究、行业、学术界、政府和业余爱好者中,大大推动无线电技术的发展。

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

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

GNU Radio 是一个方便用户设计、仿真、及部署功能强大现实世界无线电系统的框架。

  • 它是高度模块化的,将各种信号处理功能做成丰富的 “块” 库;
  • 它具备面向 “流程图” 的设计模式,用户可像画流程图的方式,将 “块” 有序连起来,构成复杂的信号处理应用程序;

GNU Radio 已大量用于现实世界中,包括:音频处理、移动通信、卫星跟踪、雷达系统、GSM 网络、世界数字广播。

就其本身而言,GNU Radio 没有限制说只能和某一特定硬件配合使用,它也不提供特定无线电通信标准(例如:802.11,Zigbee,LTE…)的开箱即用服务,但它可以用于开发基本上任何频段的通信标准的实现。

2、我为什么要用 GNU Radio

以前,在开发无线电通信设备时,工程师必须开发一个特定的电路来检测、解码、编码、传输特定信号,并使用昂贵的设备进行调试。

使用软件无线电(SDR)进行模拟信号处理时,只需要准备一个模拟信号收集硬件(通用的),然后将模拟信号处理的工作全部放计算机上,这样就能省去准备和调试特定硬件电路所带来的苦恼。

特定硬件的工作省了,可是你准备每次遇到不同需求,就准备从头开始写计算机上的模拟信号处理逻辑了吗? 你准备从头开始编写为了方便调试的交互式 GUI 了吗? 你是不是在想 —— 这些工作能不能模块化、标准化?

哈哈,GNU Radio 就是你想要的计算机信号处理框架。它将功能包装在易于和可重复使用的 “块” 中,具备丰富的可扩展性,提供了广泛的标准算法库,并且针对各种通用平台进行了大量优化。它还带有大量示例,可让您快速入门。

本文的其余部分提供了 DSP 的简要介绍,如果您已经熟悉 DSP, 请随时跳到下一个教程。

3、数字信号处理

作为软件框架,GNU Radio 致力于数字化信号,以使用通用计算机生成通信功能。

3.1 一点信号理论

软件处理需要数字信号(计算机擅长处理数字),但是什么是数字信号?

为了更好的理解,让我们看一下一个常见的 “信号” 场景:录制语音、然后用手机进行传输 –>

人说话产生声音 “信号”,该信号由人的声带震动引起空气震动(形成空气气压波)产生的,气压值会随着时间变化:

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

当波到达麦克风时,它将变化的压力转换为电信号,即可变电压:

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

此时信号变成了电信号,模拟电路能处理它,但是计算机还不能处理(此时的电信号是模拟信号,计算机能处理数字信号(有限数量、有限时间)):

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

因此,我们需要对模拟信号进行采样(等时采样),如上图,我们用采样的一系列的点,代表模拟信号;每秒的采样数量,称为采样率。

  • 模拟量到数字量的过程称为 ADC(Analog-to-Digital Converter)
  • 数字量到模拟量的过程称为 DAC(Digital-to-Analog Converter)

现在我们有了一系列数字,我们的计算机可以对其进行任何操作。例如:数字滤波、压缩、识别等。

3.2 将数字信号处理应用于无线电传输

无线电波和声波原理类似:

信号(此处为电磁波)可以使用天线转换为变化的电压。

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

然后,该信号处于 “载波频率” 上,该频率通常是几兆赫甚至千兆赫。

4、基于流程图的模块化数字信号处理方法

当要处理数字信号,直接利用将各个处理阶段(过滤、校正、分析、检测… )设计成的处理块,可以使用简单的流程指示箭头进行连接:

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

当要建立信号处理应用程序时,需要建立完整的块图。这样的图在 GNU Radio 中称为流程图。

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

GNU Radio 是一个开发这些处理块并创建包含无线电处理应用程序的流程图的框架。

作为 GNU Radio 用户,您可以将现有块组合到一个高级流程图中,GNU Radio 将自动在这些块之间移动信号数据并在块中进行信号处理。

  • GNU Radio 提供大量的块,使用这些块能快速设计流程图来完成许多标准任务 —— 标准化、同步、测量和可视化。
  • GNU Radio 也支持用户自己设计块

因此,GNU Radio 主要是信号处理块及其交互作用开发的框架,它带有广泛的标准块库,开发人员可以构建许多可用系统。但是 GNU Radio 本身并不是准备做特定事情的软件 —— 尽管它已经附带了许多有用的工作示例。但是用户的工作就是从中构建有用的东西,可以将示例视为一组构建块。

本文视频

参考链接

[1]. What Is GNU Radio

: 如果觉得不错,帮忙点个支持哈~

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

Original: https://www.cnblogs.com/zjutlitao/p/16648432.html
Author: beautifulzzzz
Title: [SDR] GNU Radio 系列教程(一) —— 什么是 GNU Radio

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/619523/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 读研2年,我选择从中科院退学转行做码农

    从入学天坑材料专业到退学 先自我介绍一下:我天坑材料专业,本科某211,保研到中科院,但是我真是菜的抠脚,还懒,也不喜欢科研,论文达不到毕业要求,纠结之下研三退学转码农了。 读了2…

    Python 2023年10月11日
    043
  • python-wordcloud词云库

    一、词云介绍 词云又叫文字云,是对文本数据中出现频率较高的”关键词”在视觉上的突出呈现,形成关键词的渲染形成类似云一样的彩色图片,从而一眼就可以领略文本数据…

    Python 2023年6月3日
    098
  • Cisco ASA基础——安全算法与基本配置

    抵扣说明: 1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。 Original: https://blo…

    Python 2023年10月8日
    033
  • 前端周刊第三十七期

    前端周刊发表每周前端技术相关的大事件、文章教程、一些框架的版本更新、以及代码和工具。每周定期发表,欢迎大家关注、转载。如果外链不能访问,关注公众号 「 前端每周看」,里面有解决办法…

    Python 2023年10月20日
    058
  • python 实现批量 csv文件 转化为 execl…

    将多个CSV文件,合并到一个Excel文件中的,多个sheet工作表。 网上大多方法都是将csv 直接合并在一起,也不分别创建sheet表。还有一些解答说CSV不支持合并到多个sh…

    Python 2023年8月19日
    069
  • [附源码]Node.js计算机毕业设计电子购物商城Express

    项目运行 环境配置: Node.js 最新版+ V s code + Mysql5.7 + HBuilderX+Navicat11+Vue。 项目技术: Express 框架+ N…

    Python 2023年10月10日
    067
  • DeepMD安装及使用笔记(待更新)

    1、老板让装一下DeepMD,说是今后会用到,然后我开始再在网上找教程开始装了,完全新手上路。 2、安装wsl、在wsl中安装anaconda(2022年9月18日 实验室会用超算…

    Python 2023年9月7日
    044
  • 爬虫日记(84):Scrapy的Crawler类(一)

    Crawler类是一个爬虫类,主要用来管理整个执行引擎ExecutionEngine类和蜘蛛类实例化。在分析这个类之前,我们先来看一下怎么样调用这个类的,代码如下: 在调用_cre…

    Python 2023年10月5日
    039
  • Scrapy案例(一)

    1. 创建项⽬ 2. 创建Spider 3. 创建Item 4. Spider 5.保存数据 1. 命令保存(⽂件:csv ,json …) 2.管道保存 完整代码 目…

    Python 2023年10月2日
    061
  • scrapy安装笔记并使用

    1.安装方法:Linux Mac:pip install scrapywindows:简单使用直接pip install scrapy即可。1.pip install wheel#…

    Python 2023年10月1日
    033
  • 自己用python写的扫雷游戏 pygame 扫雷

    代码有点多 函数式编程 纯原创手打,详细注释,不容易啊,搞了两天 UI有点low,目前还咩有自学到UI美化方面的内容 只会画形状填颜色 写到后面,头大了,有很多坐标索引方面的变量都…

    Python 2023年9月20日
    035
  • 【Python】numpy矩阵运算大全

    文章目录 前言 0 遇事不决,先查官网,查着查着就查熟了 1 矩阵运算及其必要性 2 矩阵的创建 * 2.1 普通矩阵 2.2 特殊矩阵 3 矩阵的索引 * 3.1 str, li…

    Python 2023年8月30日
    059
  • pandas的Excel文件读写(二)——将数据写入文件

    4.1 to_excel()函数声明与调用 def to_excel(self, excel_writer: Any, sheet_name: str = "Sheet1…

    Python 2023年8月17日
    0145
  • 解决python运行selenium程序执行完后,Chrome浏览器自动关闭的问题

    最近在学Selenium的时候遇到一个问题,当我执行完程序,浏览器自动关闭了,我在程序中也没有写driver.quit()或driver.close()方法,已检查浏览器版本和we…

    Python 2023年8月2日
    0176
  • Python 模块搜索路径

    由于某些原因,在使用 ​ ​import​​​ 时,Python 找不到相应的模块。这时,解释器就会发牢骚 – ​ &amp…

    Python 2023年5月24日
    087
  • Hadoop安装部署

    1.准备Linux环境①开启网络,ifconfig指令查看ip②修改主机名为自己名字(hadoop) vim /etc/sysconfig/network NETWORKING=y…

    Python 2023年6月10日
    055
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球