APP下载

基于软件无线电与数据库的频谱分析系统

2018-08-17陈真佳张永辉刘一鸣

计算机工程与设计 2018年8期
关键词:频段频谱终端

刘 伟,陈真佳,张永辉,刘一鸣

(海南大学 信息科学技术学院,海南 海口 570228)

0 引 言

随着无线通信技术的快速发展,可用的电磁频谱资源变得日益稀缺,但是一些频谱测量报告的结果[1,2]却表明某些授权频谱的利用率很低。近年来,以软件无线电为基础的动态频谱接入技术已成为研究热点[3,4],为提高频谱利用率提供了一些新方法。其中,文献[5]给出了海上白频谱占用度测量与分析的实践方法,其检测设备是手持式频谱分析仪,价格昂贵,实现了对白频谱占用度的测量分析,功能比较单一。文献[6]给出了针对陆地上的节点,使用固定测量的方式测量频段占用度的方法,但该方法无法满足较大范围内检测频段占用度的需求,移动环境下适应性不强。文献[7]将采集到的数据先保存在本地存储设备中,等回到实验室再做分析处理,受限于本地存储设备的容量,缺乏对大批量数据处理分析的能力。文献[8,9]将数据库系统应用于电磁频谱检测中,其服务对象是陆地上的固定站点,采用的是大型高精度的频谱检测设备,无法满足海上及移动环境下的频谱检测需求。因此,海上移动频谱检测领域迫切需求构建一个成本低廉、灵活性好、存储性强而又功能完善的频谱检测解决方案。

基于此,本文提出一种使用软件无线电和数据库技术相结合,实现海上及移动环境下频谱数采集与分析的新方法。利用软件无线电设备的灵活性和便捷性来完成对频谱信号的数据采集,同时利用MySQL数据库强大的数据存储与管理能力来完成对频谱数据的存储和管理。实现频谱信号从采集到传输再到存储最后处理分析的全部流程。

1 系统概述

系统综合了频谱数据采集、数据存储、实时分析、历史查询等多种功能,使用跨平台技术开发与实现。其中智能手机终端APP采用Google Android平台开发,PC端分析软件基于Windows系统开发,融合WIFI、3G/4G等移动通信技术,使用MySQL进行服务器数据库的管理[10]。同时,使用HackRF设备作为频谱信号采集终端,HackRF是一种常用的软件无线电外部设备,支持Gnuradio并与其相互配合着使用。在本系统中,HackRF通过USB接口与智能手机终端相连,配用全向天线实现对频谱信号的采集和发送,并对信号进行放大、滤波、混频、采样等处理。频谱信号的详细处理流程请参见文献[11]。

1.1 系统框架与功能需求分析

整个系统由HackRF信号采集终端、智能手机终端、PC端分析软件及数据库服务器4个部分组成(如图1所示)[12]。其中数据库服务器运行的是核心的后台管理程序,负责处理来自手机终端发送过来的连接请求以及频谱信息和控制命令,同时还要处理来自PC端分析软件的数据访问请求和控制命令等。智能手机终端的主要功能有二个:①通过USB连接到HackRF设备,向其发送对频谱信号进行采集的控制命令和技术参数;②接收来自HackRF信号采集终端发来的原始频谱数据,在本地进行初步的处理显示后通过无线通信网络将数据上传到数据库服务器中进行存储。PC端分析软件的主要功能也有二个:①通过网络访问数据库服务器,按需获取频谱数据,可以选择将数据以一定的格式先存放到本地计算机中再进行数据处理,也可以不经过本地存储直接对数据进行处理分析;②对存储在数据库中的历史频谱数据执行必要的更新、删除和修改操作。

图1 系统结构

1.2 系统特点和优势

本系统提出的频谱数采与分析技术方案,与现阶段常用的频谱检测方式相比,具有诸多优势。主要体现在以下3点:①设备成本低,可随身携带。现阶段市场上用于频谱检测分析的设备主要分二种,一种是固定式高精度检测接收机,其体积大、质量重,代价昂贵且无法用于移动式海上频谱检测;另一种是手持式频谱仪,其体积相对较小,适用于移动式频谱测量,但是其本地内存空间有限,无法存储海量测量数据,费用也要几万元。本系统使用的HackRF硬件平台与智能手机终端成本不过几千元,体积小质量轻,可随身携带,尤其适用于海上等复杂环境下的频谱检测。②实现海量数据存储。利用MySQL数据库强大的数据存储能力,搭建频谱信息数据库,实现非本地存储,节省终端设备本地存储空间,提高频谱数据资源的利用率。③设备兼容性强,系统稳定性好。基于安卓设备使用的普遍性和灵活性,开发的应用能够在不同机型间快速移植,同时基于.NET框架下开发的频谱分析软件,系统功能也比较稳定。

2 系统设计

2.1 终端硬件设计

Hack RF设备是软件无线电领域中一款十分常见的前端射频板卡,在实际应用中可以根据实际需求选择不同频率范围对应的收发频段,在许多场合均有着较为广泛的应用。但以往的Hack RF设备需要通过PC机控制才能工作,不便进行海上频谱检测。为此,这里设计了一个基于嵌入式软件无线电的通信平台,通过USB串口连接来实现对无线射频模块的驱动,实现对软件无线电模块的虚拟化功能,进而完成对通信过程的调度控制,实现终端设备的小型化[13]。硬件设计主要包括:控制器选型、电源管理模块、TF卡槽及电平转换、USB接口、调试串口、PCB设计。

(1)控制器选型。根据对通信终端功能的需求分析,同时结合实际应用环境的要求,选择由英特尔公司生产的Edison开发平台,其更为详细硬件结构与配置等信息请参见文献[13]。

(2)电源管理模块。由于Edison核心模块所使用的输入电源电平位于3.3 V~4.5 V之间,但是常见的适配器电压标准一般为5 V和12 V,二者之间无法完成直接的电压输入。此外,鉴于海上作业环境的特殊性,可能会遭遇外部电源无法持续供电的情况,因此应预留锂电池接口,使得设备在脱离外部电源后仍可正常使用。设备选用的电压转换芯片是TI公司生产的TPS62133,这是一种同步压降型DC-DC转换器,内部开关频率高达2.5 MHz,小容量电容即可配套使用。通过该电路,即可为系统提供稳定的5 V电平,但5 V电平不能直接为外接锂电池供电,也不能驱动Edison核心模块,因此需设计二级电平转换。其电路设计原理图如图2所示。

图2 BQ24074电源转换电路

(3)TF卡槽及电平转换。Edison系统默认保存在板载eMMC闪存上,但其4 GB的存储空间无法满足嵌入式Linux系统。由于Edison核心板提供了SD卡信号接口,在扩展板上设计了TF卡接口,将Linux文件系统保存在TF卡上,解决了存储空间问题,也使系统批量制作以及数据备份变得简单。电路设计原理图如图3所示。

(4)USB接口。因为HackRF需要通过USB与安卓设备连接,Edison扩展板也需要添加USB接口。Edison核心板本身具有高速USB收发器,支持一路USB OTG,通过添加硬件接口实现USB HOST功能。电路设计原理图如图4所示。

(5)调试串口。终端开发和使用过程中,为了方便直接操作系统及获取数据,需要能以命令行的形式进入Edison内的操作系统,Edison核心板信号接口中包括了一路UART串口信号,由于大多主机使用串口不方便,扩展板上设计了串口转USB模块,并配套了Micro-USB接口。限于篇幅这里不再给出具体的电路设计原理图。

(6)PCB设计。利用Altium designer软件进行PCB设计,采用双层板设计,将USB、TF卡槽、电源接口以及调试串口放置在扩展板外围,方便外设连接,电容、电阻等元器件选择0603封装,实现板子小型化、轻型化。限于篇幅这里不再给出具体的PCB设计原理图。

2.2 软件实现

2.2.1 HackRF驱动移植

在系统安装完成后,需要将HackRF的设备驱动程序及GNU Radio开发环境移植到目标板,程序源码可在Github得到。需要使用Intel提供的GCC交叉编译器i586-poky-linux-gcc在PC机上先进行交叉编译无误后再到Edison系统安装。以Hack RF驱动程序编译过程为例,在获得源码文件后新建host/build目录,用来保存编译过程中产生的中间文件和编译产生的结果。在编译前需要源码进行cmake操作,编译器配置为相应的交叉编译器。配置完成后选择编译的目标文件并配置所需组件,执行cmake操作开始编译配置,待编译完成后在build目录生成用于最终编译的Makefile脚本。此时编译产生的文件已经保存到了build目录下,通过开发板将编译完成的整个驱动程序文件导入Edison系统的/root目录,再到build目录下执行make install命令将编译好的程序安装到系统相应的位置,完成驱动程序的安装部署。

图3 卡电平转换电路

图4 USB接口电路

2.2.2 服务器端软件

NET服务器管理软件采用微软ASP.NET4.0和WPF4.0作为底层开发框架,充分利用Framework4.0提供的各种特性来保证整个架构的稳定性,同时也保证了系统架构未来的可扩展性。NET服务器管理软件由二部分构成:数据采集软件和终端接口软件,其中数据采集软件通过Socket套接字建立TCP Server监听来自TCP Client(即安卓智能终端)的请求命令,进行通信过程的控制和频谱信息的传输。终端接口软件通过Service接口让PC端分析软件调用相应的接口实现对所需频谱信息的获取和分析处理。服务器端软件的工作流程如图5所示。

图5 服务器端软件工作流程

2.2.3 Android客户端软件

Android客户端软件开发采用Java语言在Eclipse开发平台下开发。Android客户端软件允许用户查看、控制及进行个性化设置等操作[14]。Android客户端软件设计主要包括以下3个部分:①客户端与HackRF数采终端之间的串口通信、参数配置;②客户端与数据库服务器之间基于Socket协议的通信;③界面交互的设计。在功能实现上将串口通信和数据传输分别放在二个线程中运行,避免线程阻塞,降低资源的消耗,提升效率。这里实现频谱检测的过程大致为:首先天线将接收到的原始信号传输给射频模块,经过处理后得到基带信号,继而将该基带信号通过USB传输给主控设备,主控设备再处理接收到的信号。这里是在GNU Radio中将数据进行处理后传输到远程数据库服务器中进行存储。安卓终端在确定检测的频段范围后,开始对频段进行扫描感知,同时对当前条件下频谱的使用情况进行初步的分析,以实时获取各频点的能量值并显示在屏幕上。核心代码的实现如下所示:

center_freq=m.center_freq

freq=bin_freq(center_freq)

noise_db=10*math.log10(min(data)/rate)

power_db=10*math.log10(min(data)/rate)-noise_db

鉴于软件无线电扫频带宽的限制,检测时会有中频的影响,会导致采集到的频谱数据不是非常的准确。因此需要对中频附近的数据重新进行采样,同时将原有的中频数据覆盖,以尽可能保障采集数据的准确率。

2.2.4 PC端分析软件

这里PC端分析软件开发使用C#语言在VS2015开发平台下开发。PC端分析软件是整个系统中最主要的部分,负责完成对海量频谱数据按需进行处理分析,进而以一种直观易懂的方式显示给检测用户。该模块的软件设计主要实现以下4个功能:①连接数据库服务器,根据所选取的检测频段范围,设置步进带宽长度,进而动态地显示所选频段各频点信号的实时能量值分布情况;②根据各频点信号能量值的大小,设置合理的阈值以筛选掉噪声信号,进而实时计算出各频点信号的占用度情况;③鉴于频域上的占用度统计情况能给出的结论有限,无法立体直观的观测频谱信号在时域上的实时状态,故设计了由时间、频率、信号能量值构成的三维瀑布图,以一种三维立体的方式动态直观的向需求用户进行展示,丰富检测功能;④根据各频点的占用度情况,选择优化的数据处理算法,得出所测频段的整体占用度情况,进而以一种全局性的方式指导认知用户选择合适的通信频段尽可能实现无干扰通信。本模块中阈值的设置存在人为主观因素,实际检测中的阈值设置要根据测量环境做综合性考量,这里不在此做具体的阐述。

2.2.5 数据库系统

数据库是整个系统设计中的关键部分,数据库结构设计的好坏,将会直接影响到系统功能的实现程度以及后期海量数据维护的难度。由于频谱数据结构复杂,数据量大,因此需要建立关系型数据库来减少冗余,提高系统运行时的效率[15]。根据监测数据库的特点和功能需求,将数据库系统分为3个子模块,包括数据管理、数据分析、数据回放。其功能模块和各模块的功能如图6所示。根据数据库系统的功能模块和实际需求,设计了不同的数据表结构,限于篇幅这里仅列出核心的数据表(如表1~表3所示)。

图6 数据库系统功能模块

序号字段名称描述字段类型说明1terminal_id唯一编号varchar主键2hack_idHackRF编号varchar3aerial_id天线编号varchar4transmit_power发射功率float5gain天线增益float6hight天线高度float7cover_area覆盖范围float8ipaddress设备IP地址char9port设备端口号int

表2 频率信息

表3 占用度统计

3 系统测试

在搭建好HackRF数采终端并成功连接电源和智能手机终端后,对系统进行综合测试,主要测试以下二方面:智能手机终端能否实现对HackRF数采终端采集到的原始频谱数据进行初步处理后,发送到远程数据库服务器中;PC端分析软件能否成功访问数据库并实现前面所述的频谱分析功能。

待系统正常运行后,在手机终端APP中通过USB与HackRF数采终端取得连接,设置所需采样参数,开启手机GPS定位模式,开始对原始的频谱信号进行采集,信号的具体处理过程前面已有讲述,这里不再赘述。终端对采集来的原始信号进行初步的处理并在本地缓存部分数据,手机APP上实时显示所测频段中频率对应的信号强度,同时通过无线通信网络将数据上传到数据库服务器中。这里对100 Mhz~900 Mhz进行全频段扫频,处理结果如图7所示,同时给出专业频谱仪所测同频段的检测结果如图8所示。对比图7和图8可以发现本系统所测数据和专业频谱仪所测数据基本一致,都在信号较强的频段较为明显,验证了所述技术方案的可行性和优越性。

图7 终端所测频段结果

图8 专业频谱仪检测结果

PC端数据分析软件通过IP地址和端口号连接数据库服务器,通过设置起始频率、终止频率获取所要分析频段的频谱数据,通过设置阈值过滤噪声信号筛选出有效信号,这里阈值设置为30 dbuv。经处理后,客户端可以显示频率对应的信号强度,由时间、频率、信号强度构成的三维瀑布图,频率占用度,最后由频率占用度计算出所测频段的占用度。处理结果如图9所示,可以看到所测FM通信频段频段的局部占用度为36%,界面清晰简洁,功能完善。

图9 PC端分析软件处理效果

4 结束语

基于软件无线电与数据库的频谱检测与分析系统,针对海上及移动过程中,频谱检测环境复杂,大型高精度检测仪器不便携带,数据量大难以保存与管理的问题,使用HackRF板卡搭载全向天线作为信息采集终端实现移动式信号采集,利用安卓设备的通用性及应用的可移植性实现初步的信息处理、显示和传输,构建关系型数据结构来减少海量频谱数据间的冗余,同时基于.NET框架开发频谱分析软件,保证系统运行的稳定性及未来的可扩展性。真正实现了便携式、可移动、多功能的频谱分析,具有低成本、低功耗、操作简便、灵活性强的优点。作者后续工作将致力于实现分布式数据库下的数据存储,搭建频谱感知信息数据库,为实现区域动态频谱接入与管理提供新思路。

猜你喜欢

频段频谱终端
5G高新视频的双频段协同传输
gPhone重力仪的面波频段响应实测研究
一种用于深空探测的Chirp变换频谱分析仪设计与实现
X美术馆首届三年展:“终端〉_How Do We Begin?”
雷声公司交付首套中频段下一代干扰机
通信控制服务器(CCS)维护终端的设计与实现
GSM-R手持终端呼叫FAS失败案例分析
频谱大师谈“频谱音乐”——法国作曲家缪哈伊访谈记
推挤的5GHz频段
遥感卫星动力学频谱规划