目录
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