1 网络无线侦察接收机软件系统总体设计
网络无线侦察接收机的总体设计如图1所示。硬件系统采集到的数据通过网络采用TCP/IP协议传送给信号实时显示系统。整个软件系统主要由以下几个模块组成:网络模块、GUI模块、信号处理模块、画图模块、存储模块。其中网络模块主要负责接收硬件发送的数据;GUI模块则负责与用户的交互;信号处理模块则主要负责对采集到的信号进行一定的处理,如功率谱估计、解调等;画图模块则需要将网络收到的数据实时显示在用户界面;存储模块则负责将收到的数据存储在电脑磁盘。其中GUI模块是整个软件系统的核心,其余各模块之间的信息传递则是通过GUI模块,GUI模块相当于一个信息中转站。
目前支持C++进行GUI开发的软件包很多,主流的包括wxWidgets、MFC、QT等等。和其他GUI开发库相比,wxWidgets拥有丰富的并且开源组件,可以吸引众多人士对其进行改进,对其不断扩充和发展;为其所支持的各种平台提供几乎一致的GUI应用程序接口(API)。程序从一个平台换到另一个运行,只需要重新编译,链接相应的库文件即可。它提供了一个与平台无关的framework,所以程序设计时选用wxWidgets-2.8.0库进行GUI开发,编译工具使用的是codeblocks8.02。
2 关键模块设计
2.1 GUI模块的设计
Win32程序的main函数代表程序运行起点,对于wxWidgets程序,整个程序的执行即主线程开始启动,是从建立一个wxApp类的对象并调用其类成员函数OnInit()函数开始的。OnInit()函数中需要完成的工作则是创建程序窗口的实例。程序中使用的顶层窗口是从wxFrame(一个可以容纳其他窗口和控件的顶层窗口,通常拥有标题栏和菜单栏)派生出来的。
2.2 画图模块的设计
信号处理的结果需要在界面上显示出来,如频谱图,星座图等。
wxMathPlot是一个用来画二维曲线的图形库。系统中主要使用该库绘制一些分析曲线,向用户展示分析结果(如频谱图)。wxMathPlot采用的也是类继承的方式。坐标轴和曲线都是以Layer的方式叠加在画图窗上的。
2.3 信号处理模块的设计
为了了解信号各频率成分的构成情况,对网络收到的硬件采集的数据进行功率谱估计。估计方法包括经典功率谱估计和现代功率谱估计方法。系统中使用的主要是经典功率谱估计,其中又包括周期图法和BT法,下面简要介绍一下周期图法计算功率谱的计算步骤:
其中步骤1)是指取观测样本的N个值对其进行N点的傅里叶变换,得到的结果UN(ω),步骤2)中对UN(ω)模的平方是确定信号uN(ω)的能量谱,对能量谱除以持续时间N,其结果是对uN(n)的功率谱估计。
2.4 网络模块的设计
网络模块是基于TCP/IP协议采用C/S通信模型完成的。在C/S模型中,PC属于客户端(Client),而硬件属于服务器端(Server)。由用户在界面上设置连接硬件所需要的IP地址和端口号,PC端主动向硬件发起连接。连接建立以后,PC通过以太网接收硬件采集的数据。图2展示了C/S通信模型的实现框架。
实际上,在网络中传送的数据都被分割成包(packet)的形式进行传送。在进行客户端程序开发的时候,出现“粘包”问题。“粘包”指的是发送方发送的若干个数据包到接收方时都粘在一起。图3(a)~(d)分别展示PC接收到各种粘包的情况。引起“粘包问题”的原因主要包括以下两个:1)发送端:TCP为了提高传输效率,如果发送方发送的数据包很小,TCP不会立即将该数据包发送出去,而是等收集到足够多的数据,将几个数据包合成一个包才发送出去;2)客户端:接收方用户进程没有及时处理接收到的数据,即下一包数据到达时前一包数据尚未被用户进程取走,则下一包数据则放在前一包数据之后。
为了解决“粘包”问题,Client和Server端约定好发送数据包的格式如图4所示。
当PC端收到“粘包”时,首先经过预处理过程——解包,将粘在一起的包分成独立的数据包,并将每个数据包中的数据取出依次拷贝到pool中分配的缓冲区中。
预处理过程构造类PaeketBuilder,该类的具体设计如下。
3 软件运行效果
网络无线侦察接收机软件系统可实时监测频率范围为频率范围20~3 000 MHz的信号,且对实时监测的信号进行分析和处理:主要包括电平、场强、频差、频偏、调制度、带宽等技术参数的测量。其中频率测量精度为1x10-7,频率分辨率为1 Hz。并且当系统处于扫描模式下,存储扫描速度≥700信道/秒,连续频率扫描速度>6 GHz/秒,可选步进可从125 Hz到100 kHz。该系统可智能地处理多个同时被调度的监测任务,实现多任务并发监测。该系统具有自学习能力,可在无人值守条件下完成智能化自动化监测任务。
系统的界面如图5所示,界面从上到下依次是标题栏、菜单栏、工具栏;界面的下方左边部分是信号处理参数配置面板,右边部分主要用来显示各种信号处理的结果,图5当前展示的就是功率谱估计结果显示窗,窗口显示的是信号的频谱图。目前,该系统可以正常接收硬件发送的信号,并从中提取出其技术参数如调制方式、调制度、频率、带宽等。
4 结束语
信号实时处理显示软件系统满足ITU建议的规范要求,兼容无线电监测网传输协议(RMTP),通过网络接收硬件采集的无线电信号,从而达到实时监测、测量和存储无线电信号的目的。该软件系统具有固定频率监测和扫描频率两种工作模式,实现了对无线电信号的频谱分析。通过该软件系统的实施,为进一步实现兼容无线电监测网传输(RMTP)协议的网络化智能无线频谱监测侦收系统以及产业化做好准备。整个软件系统的分析设计过程均采用面向对象方法实现,借助于模块设计和面对对象编程思想使类与类之间的内聚性增强,耦合性减弱,提高了系统的可重用性和扩展性。