目录
一、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、声音示例
为了理解什么是数字信号,让我们来看一个常见的声音的模拟和数字信号的例子,即用一个麦克风来记录声音。一个人说话会产生一个“音源”,声源(人的声带)颤动导致空气压力的变化。空气压力的变化形成一个随着时间变化而变化的模拟信号。
当声音传到麦克风后,麦克风将声波压力变化转换成电压信号,电压信号的高低随着声波压力的大小而变化。