GNU Radio:开放的软件无线电平台
据需求进行扩充。
GNU Radio除了支持Linux的多种发行版本之外,还被移植到Mac OS X、NetBSD以及Windows等操作系统上,这也意味着它也支持多种类型的计算机系统。
4、USRP射频前端
USRP是GNU Radio最重要的硬件"伙伴"。与GNU Radio软件相同,USRP也是完全开放的,其所有的电路图、设计文档和FPGA代码均可从EttusResearch的网站下载。基于G1、radio和USRP的组合,用户可以构建各种具有想象力的软件无线电应用。
一套USRP由一快主板(Motherboard)和最多四块子板(Daughter Board)搭配构成。主板的主要功能为中频采样以及中频信号到基带信号之间的互相转换。子卡的功能在于射频信号的接收/发送以及到中频的转换。子卡有多种类型,分别覆盖不同的射频频谱范围,且具有不同的收/发能力和增益。
4.1 USRP主板
主板主要由以下几个部分构成:
1)AD/DA芯片
USRP采用两块Analog Device的AD9862芯片,每块可分别提供两路12bit、64MSample/s的AD变换和两路14bit、128MSample/s的DA变换。那么一块主板可提供4路模拟转换器(ADC)和4路的数字模拟信号转换器(DAC),也即收/发各两路的复采样。此外DAC单元还集成了数字上变频(DUC)功能。
2)FPGA
FPGA有两个主要功能:将DAC采来的中频信号进行数字下变频(DDC),变换到基带,并通过层叠梳状滤波器(of)对样值进行可变速率的抽取以符合用户对信号带宽的要求。FPGA中同时也实现了针对DAC的插值率波的功能;另一个功能是作为路由器协调适配各路ADC、DAC和USB 2.0接口之间的数据交换。
3)USB 2.0接口
USRP采用USB 2.0接口与PC机连接。最高可达到32MByte/s的数据传输速率。如果AD和DA分别采用12bit和14bit的采样精度,那么每个实采样点占用2Bytes,每个复采样点占用4Bytes。如果以一路复数采样进行单收或单发,则最高可达到32M/4=8M 复采样每秒,即最高发送或接收8MHz带宽的信号。如果用8bit采样,则最高可收/发16MHz带宽的信号。ADC和DAC始终分别以64M和128M 的速率进行采样,用户实际获得的采样速率是通过设置抽值率或插值率得到的。
4.2 USRP子卡
USRP的子卡有如下几种:
USRP是GNU Radio最重要的硬件"伙伴"。与 1)Basic TX、Basic RX:这两种子卡没有中频与射频间的频谱变换,仅仅提供主板上中频信号与天线间的接口。尽管如此,由于ADC和DAC可进行带通采样,仍然可支持2MHz~200MHz的载频。
2)TVRX:可覆盖50MHz一800MHz广播电视频段的接收子卡。
3)DBSRX:可覆盖800MHz~2.4GHz的接受子卡。
4)RFX400、RFX900、RFX1200、RFX1800、
RFX2400:这些子卡均为支持双工,可分别覆盖400Ⅻ z 500 、800 忸z一1000 m z、1150 m z一1450MHz、1.5MHz一2.1MHz、2.3MHz一2.9MHz频段。
4.3 USRP的原理
主板上共有4个子板接口,可支持两路并行的发送或接收。整套USRP的原理如图1所示。
5、GNU Radio安装
同多数基于Linux的软件一样,GNU Radio需要在将其源代码编译、安装之后方可运行。源代码可从网站http://gnuradio.org/trac/wiki 获得,GNURadio采用SubVersion工具管理全球各地志愿者对代码更新和扩充,用户利用客户端工具SVll可随时从网站上下载GNU Radio代码的最新版本。在编译安装GNU Radio之前,必须首先安装一些所依赖的软件库, 主要有SWIG、FFTW、cppunit、numarray、Numric和wxPytholl。分别为GNU Radio提供C++与Python互操作性、快速算法和图形界面等方面的支持。这些软件同样也是开源的,可分别从互联网上下载安装。GNU Radio的网站上有详细的软件编译安装方法,此处不再赘述。
USRP的安装须要在软件安装完毕后进行。首先在主板上插上所需子板,然后按顺序接驳稳压电源、直流输入和USB 2.0连接线,接着就可利用GNU Radio软件包中自带的实例程序初步体验GNU Radio了。GNU Radio提供了丰富的例程可供尝试,其中包括FM、AM 广播接收、信号发生器、信号频谱和波形显示,GMSK /QPSK/BPSK信号收发、USB 2.0接口测速等等。其中usrp_fR.PY是一个可显示出指定频率附近信号频谱的脚本。
6、GNU Radio的应用举例
这一部分将对基于GNU Ra dio已经成功实现或者正在开发中的应用进行介绍,以期使读者对GNU Radio的功能有一个更直观的认识。
1)MIMO(Multi—In Muti—Out)
USRP已经为多天线应用做好了准备。一套USRP即可实现双天线的发送或接收,如果要进一步增加天线数量,可通过将多套USRP同步起来加以实现。此时需要对电路做一些改动(改变几个电阻和电容的位置)使多块主
- GNU Radio 开源软件无线电平台(12-16)
- 基于GNU Radio和USRP的认知无线电平台研究(11-07)
- 基于GNU Radio 和USRP 的路测仪设计(11-07)
- 软件无线电技术与可重配置计算体系结构(12-05)