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

目录

一、GNU Radio是什么?

二、为什么需要GNU Radio?

三、数字信号处理

1、声音示例

2、将数字信号处理应用到无线电磁波传输中

四、基于模块化和流程图的数字信号处理

五、GNU Radio已有的通信模块

六、有用链接和联系方式


一、GNU Radio是什么?

GNU Radio是一个用来帮助无线通信开发者设计、搭建和实现无线通信系统的框架和工具。GNU Radio具有高度模块化、基于流程图的特点,针对复杂的信号处理应用场景,提供了丰富全面的处理模块。GNU Radio已经被应用于大量实际系统中,例如包括音频处理、移动通信、卫星通信、雷达系统、GSM网络、数字调幅广播及软件无线电系统中。

GNU Radio被设计成一个适用于通用硬件的软件框架,其用途非常广泛,它不仅能用来实现一些典型商用通信系统(如802.11、ZigBee、LTE等),还可以用来实现任何带限(带宽受限)通信系统。

二、为什么需要GNU Radio?

与之前的以硬件定制的移动通信系统架构相比,软件定义无线电(Software Defined Radio,SDR)是一种新型的无线电体系结构,它使用软件来定制功能,通过硬件和软件的结合使无线网络和用户终端具有可重构、重配置能力。软件无线电提供了一种建立多模式、多频段、多功能无线设备的有效且经济实用的解决方案。

基于通用的射频前端硬件和信号处理平台硬件,所有的通信功能都可以通过软件来实现。软件无线电可以使整个系统(包括移动用户终端和网络)采用动态的软件编程对设备特性进行重配置,即相同的硬件可以通过软件定义来完成不同的功能。这样一来,极大地提高了系统的灵活性和可扩展性。

GNU Radio为实现具有可重构、重配置能力的通信网络或通信终端,提供了一个适用于多个软件无线电平台的开发框架和丰富的信号处理模块,此外,还提供了大量的应用实例。

并且,你不需要自己从无到有的去自己一点一点地实现整个通信系统的所有组件,因为在软件无线电领域已经有很多前辈们帮你做了大量的基础工作,他们已经实现了许多已经被好多人验证过无数次的模块,你可以直接调用。这就是你为什么选择GNU Radio的理由。

三、数字信号处理

GNU Radio作为一个软件框架,是用通用计算机来实现数字信号处理的。计算机中的软件只能对数字信号进行处理,那么什么是数字信号呢?我们举一个声音的例子。

1、声音示例

为了理解什么是数字信号,让我们来看一个常见的声音的模拟和数字信号的例子,即用一个麦克风来记录声音。一个人说话会产生一个“音源”,声源(人的声带)颤动导致空气压力的变化。空气压力的变化形成一个随着时间变化而变化的模拟信号。

当声音传到麦克风后,麦克风将声波压力变化转换成电压信号,电压信号的高低随着声波压力的大小而变化。

当声波传输到达麦克风之后,麦克风将声波的空气压力变化模拟信号转换成电信号,此信号描述了电压的变化情况,但是此时的电信号仍然是一个模拟信号,计算机无法对其直接处理。为了便于计算机处理,模拟信号需要转换成一个取值受限、时间受限的数字信号,这就要求:该数字信号的取值是有限个,信号只在有限长时间内有取值。

数字信号可以被一系列被称为采样值的序列来表示。不同采样值之间的采样间隔与采样率互为倒数关系。从电压模拟信号到数字采样值的转换需要用模数转换器(Analog-to-Digital Converter,ADC)来完成。与此对应的,从数字采样值到模拟信号的转换需要用数模转换器(Digital-to-Analog Converter,DAC)来完成。在得到数字信号以后,计算机就可以对这些字信号进行诸如数字滤波、压缩、音频识别或者用数字链路来将其发射出去等操作。

2、将数字信号处理应用到无线电磁波传输中

上述声音例子中的原理同样适用于无线电磁波传输过程。发射端,将原始信息转换成电信号。该电信号可以承载于一个载波信号(可以是MHz或者GHz频段)之上,通过数模转换器转换成模拟信号,通过发射天线以电磁波的形式发射出去。在接收端,用一些软件无线电接收设备(例如RTL SDR、HackRF One、USRP等)的接收天线通过感应无线电磁波的能量,将能量转换成电信号,再继续采样成数字信号,然后再通过数字滤波,解码等操作还原得到原始信息。

四、基于模块化和流程图的数字信号处理

为了处理数字信号,GNU Radio将所有典型数字信号处理功能封装成独立的模块,并支持以一种图形化流程图形式来将不同的通信系统用到的模块串联起来。

当实现一个信号处理应用时,需要实现一个如下图所示的完整信号处理流程图(以后我们就简称为“流图”)。

如果你电脑中的GNU Radio是3.8版本的话,那么流图风格是这样的。

如果你电脑中的GNU Radio是3.7版本的话,那么流图风格是这样的。

作为一个GNU Radio用户,需要基于GNU Radio提供的现有信号处理模块,搭建整合成一个完整的数字通信系统。当然,除了使用现有模块,用户还可以根据需要实现自己定制的模块,并编译安装到GNU Radio中,方便今后直接调用。

五、GNU Radio已有的通信模块

GNU Radio已经包括了大量的通信模块,这里列举常见的模块分类及其典型模块。

1、信号波形生成器(WaveformGenerators)

(1)常数信源(ConstantSource)

(2)噪声信源(NoiseSource)

(3)信号源(SignalSource)例如正弦信号、方波信号等

2、调制器(Modulators)

(1)AM解调(AM Demod)

(2)连续相位调制(ContinuousPhase Modulation)

(3)相位偏移调制与解调(PSKMod / Demod)

(4)高斯频移键控调制与解调(GFSKMod / Demod)

(5)高斯最小频移键控调制与解调(GMSKMod / Demod)

(6)正交振幅调制调制与解调(QAMMod / Demod)

(7)宽带调频接收(WBFMReceive)

(8)窄带调频接收(NBFMReceive)

3、界面(GUI)

(1)星座图(ConstellationSink)

(2)频域图(FrequencySink)

(3)时域图(Time Sink)

(4)直方图(HistogramSink)

(5)瀑布图(WaterfallSink)

4、数学运算(MathOperators)

(1)绝对值(Abs)

(2)相加(Add)

(3)复数共轭(ComplexConjugate)

(4)相除(Divide)

(5)积分(Integrate)

(6)取对数(Log10)

(7)相乘(Multiply)

(8)均方根(RMS)

(9)相减(Subtract)

5、信道模型

(1)衰落信道模型(FadingModel)

(2)动态信道模型(DynamicChannel Model)

(3)频率选择性衰落模型(FrequencySelective Fading Model)

6、滤波器(Filters)

(1)带通/带阻滤波器(Band Pass / Reject Filter)

(2)低通/高通滤波器(Low / High Pass Filter)

(3)无限冲激响应滤波器(IIRFilter)

(4)均方根余弦滤波器(RootRaised Cosine Filter)

(5)抽取有限冲激响应滤波器(DecimatingFIR Filter)

7、傅里叶分析

(1)快速傅里叶变换(FFT)

(2)克斯塔斯环(Costas Loop)

六、有用链接和联系方式

https://wiki.gnuradio.org/index.php/Guided_Tutorial_Introduction

淘宝店铺、QQ技术交流群、CSDN账号联系方式如下:

猜你喜欢

转载自blog.csdn.net/OpenSourceSDR/article/details/107509776
GNU