基于GNU Radio 和USRP 的路测仪设计

2013-11-08 来源:通信技术 字号:

0 引言 

随着GSM网络规模和用户数量不断增长,各大运营商的移动网络都具有相当规模。如何在最短时间内提高网络服务质量,提高企业核心竞争力,受到越来越多的关注。在网络运行过程中,经常会出现各种不可预料的问题,其中基站硬件故障、传输问题等,可以通过网络操作维护设备(OMC)来发现,但是有些无线方面的问题,如并没有导致严重掉话的上下行干扰或覆盖不合理等现象,统计中难以发现。对这些问题,要通过路测采集数据并进行分析,做出准确的判断,同时依据测试结果,提出调整方案。这些测试数据包括:信号电平、信号质量、信令数据等[1]。 

路测设备一般分为两大类:第一类是扫频仪。它是专用的场强测试仪表,可以对无线网络RF信号强度进行全面精确测量,其缺点是价格一般比较高。第二类是参考终端和路测软件。通过参考终端配合路测软件取得空中接口信令消息后进行后期处理。此类仪表的缺点主要有两点:首先,面对目前移动通信系统、设备和终端的高速发展,参考终端的开发还需进一步完善和加强。其次,由于参考终端是由普通终端改进而成,故其RF信号测量精度非常有限,使用寿命也较短。 

为了解决上述问题,笔者基于GNU Radio和USRP提出了一种GSM900M 路测仪设计方案,通过在GNU Radio 软件平台上进行开发,得出只需一部USRP 和一台普通PC 配合全球定位系统GPS 就能够实现采集信号电平、获得信令数据等一些路测仪的基本功能,降低了设备成本以及维护和升级成本。 

1 实验环境 

1.1 硬件平台——USRP 

USRP 全称是软件无线电通用外设,实现了基站的射频前端。如图1 所示,它由一个母板和不同的子板组成。母板包含4 个12bit /64M 抽样率的模/数转换器ADC、4 个14bit/128M 数/模转换器DAC、一个百万门的现场可编程门阵列FPGA 芯片和一个可编程的USB2.0 控制器。其作用包括与电脑间传送数据、数模转换、信号处理、运行用户程序等。每个USRP 母板上可连接四个子板,其中两个用于接收,另外两个用于发射。RF 前端实现在子板上的,通过连接不同的子板,USRP 可以处理不同频段的信号。这里USRP 连接了两块900 MHz的子板,实现了GSM无线接口。  

   

图1 USRP的系统框图 (Blossom, 2004)   

传统无线电处理基本上由硬件设备完成。而USRP则充分利用软件无线电的优点,把智能化程度高的信号处理(如调制解调)交给电脑上的软件执行,而其余按部就班的执行简单操作,比如数字上下变频、抽样和内插等,交给USRP上的FPGA处理。既保证了无线电信号处理的速度,又有利于创造新型无线设备,尤其是降低创新所面临的开发难度。 

1.2 软件平台 

1.2.1 GNU Radio[2] 

GNU Radio 是一个通过最小程度结合硬件(主要是USRP),用软件定义无线电波发射和接收方式,搭建无线电通信系统的开源软件系统。现在那些高性能的无线电设备中所遇到的数字调制问题将变成软件问题。GNU Radio的编程基于Python脚本语言和C++的混合方式。C++被用于编写各种信号处理模块。Python 被用来编写连接各个block 成为完整的信号处理流程的脚本graph[3]。 

1.2.2 Airprobe[4] 

Airprobe 是一个开源项目,目标是要建立一个对GSM(以及可能以后的3G)移动电话标准的空中接口分析工具。通过开发Airprobe,可以实现在某一固定GSM 频点上通过USRP 对下行链路BCCH 信道进行一段时间的静态侦听,在侦听结束后对结果进行分析,把环境中BCCH信道上的所有信息解析出来,最终得到环境中主小区基站工作频点、邻小区工作频点、网络识别和配置参数等信息。 

2 基于GNU Radio和USRP的路测仪实现

首先,打开所有设备后,运行脚本./usrp_fft.py,它是基于GNU Radio 开发的软件频谱仪,由于选择要测试的运营商GSM900M 网络所使用的频段的下行频率是954~960M 共6M 带宽,因此设定软件频谱仪的中心频率为957M,抽取率为8(由于采用的是52M 晶振,USRP默认采样率为52M,设置抽取率为8 使其可以降采样率到52/8=6.5M,既能够完全覆盖所要测试的频段又能降低过高速率数字信号对CPU 和存储器产生的负担),就能够看到非常明显的200 kHz 宽度的GSM 信号,从而得到信号最强的频点为当前位置主小区所使用的频点。所观察到的GSM 频谱如图2 所示。  

   

得到当前位置主小区的频点后,固定在该频点上进行信号采集、解调和分析,先调用脚本capture.sh,通过GNU Radio的组件usrp_rx_cfile.py 以完成该频点上BCCH 信号采集功能,接着使用脚本文件go.sh 调用同路径下的gsm-receive.py完成解调功能,同时调用gsmdecode文件夹里的可执行文件gsmdecode完成分析功能;使用Matlab 分析采集的文件,得到该采集频点的信号强度。 

3 实验结果及分析 

由于目前实验设备限制,仅在室内(远离窗户)、室内靠窗和窗外三个位置分别做了实验。得到的实验结果如表1所示。  

     

从表1可以看到,得到了三个不同位置的主小区频率、主小区所使用的所有频点、邻小区BCCH 频点、小区识别、位置区识别码和主小区BCCH信号强度。为了保证收集到的信令被正确解析,采集信号时,设置抽取率为112,这样降采样率到约460 kHz,使得我们使用Matlab分析时画出的功率谱密度图的带宽也只有460 kHz(见图3、图4 和图5),但是对于笔者获取中心频率的信号强度来说已经足够了。 

综上,运用此套设备可以完整地记录下BCCH的信令以及当前设备所在服务主小区,邻小区等无线环境变化情况,同时能够从信号强度的分析结果呈现网络质量状况。通过分析实验结果可得,窗外的信号强度明显要强于室内;靠窗的位置可能是几个小区边界的交叉点,因为该位置的几个频点的信号强度都差不多,信号强度也不高。  

4 结语 

文中提出了一种基于GNU Radio 的GSM900M 软件无线电路测仪的系统结构。在文章的前半部分,笔者从理论研究方面评估了GNU Radio 和USRP 的特性。之后针对传统路测仪存在的不足,提出了一种新的设计来克服这些缺点。在实验和测试部分可以看到,所设计的系统完整和准确地记录了BCCH 信息,该系统在软件无线电平台上进行开发,使用开源的源代码,是一种功能强大且低成本的解决方案。  

参考文献 

[1] 韩斌杰,杜新颜,张建斌. GSM 原理及其网络优化[M].北京:机械工业出版社,2009. 
[2] 曹瀚文,王文博.GNU Radio:开放的软件无线电平台[J].电信快报,2007(04):31-34. 
[3] BLOSSOM E. How to Write a Signal Processing Block[EB/OL].( 2006-07-21 )[4] dexter. Airprobe Web Page[EB/OL]. (2010-06-28)[2010-09-01].