当前位置:首页 > 通信技术 > 通信技术
[导读]为兼容无线电监测网传输协议(RMTP),实时监测无线电信号并测量其频率、带宽等技术参数,无线侦察接收机软件系统通过网络接收硬件采集的无线电信号,使用经典功率谱估计方法对其进行频谱分析。系统用户界面采用跨平台GUI库CodeBlocks+wxWidgets进行开发,使用二维图形库wxMathPlot开发画图模块,将测量和分析的结果以频谱图的方式展现给用户。分析了系统的基本架构,wxWidgets库的使用方法,经典功率谱估计算法,重点讨论了如何解决网络传输过程中可能遇到的“粘包”问题。

为了从无线电信号中获取对方的信息而对通信信号进行搜索、截获、测量、分析、识别、监视以及对辐射源测向和定位,以获取其技术参数、功能、类型、位置和用途而构成的系统,称为无线侦察接收机系统。其中计算机软件系统是整个侦察接收机系统的重要组成部分,本系统中软件和硬件之间的数据传输是依靠网络进行的。
    本文在分析网络无线侦察接收机软件系统框架的基础上,结合wxWidgets库给出如何设计用户界面、如何利用wxMathPlot对接收到的数据进行画图、信号处理的基本方法,重点分析了如何解决网络接收数据时可能出现的“粘包”问题,最后给出了软件运行效果。

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)协议的网络化智能无线频谱监测侦收系统以及产业化做好准备。整个软件系统的分析设计过程均采用面向对象方法实现,借助于模块设计和面对对象编程思想使类与类之间的内聚性增强,耦合性减弱,提高了系统的可重用性和扩展性。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭