专业的信息化与通信融合产品选型平台及垂直门户
注册 登陆 设为首页 加入收藏
首页 企业新闻 招标信息 行业应用 厂商专区 活动 商城 中标信息

资讯
中心

新闻中心 人物观点
厂商专区 市场分析
行业
应用
政府机构 能源产业 金融机构
教育科研 医疗卫生 交通运输
应用
分类
统一协作 呼叫客服 IP语音 视频会议 智能管理 数据库
数字监控 信息安全 IP储存 移动应用 云计算 物联网

TOP

网络无线侦察接收机软件系统的设计和实现(一)
2011-03-18 17:36:25 来源:电子设计工程 作者:何子述   【
关键词:网络无线 侦察 接收机 软件系统
 
为了从无线电信号中获取对方的信息而对通信信号进行搜索、截获、测量、分析、识别、监视以及对辐射源测向和定位,以获取其技术参数、功能、类型、位置和用途而构成的系统,称为无线侦察接收机系统。

  为了从无线电信号中获取对方的信息而对通信信号进行搜索、截获、测量、分析、识别、监视以及对辐射源测向和定位,以获取其技术参数、功能、类型、位置和用途而构成的系统,称为无线侦察接收机系统。其中计算机软件系统是整个侦察接收机系统的重要组成部分,本系统中软件和硬件之间的数据传输是依靠网络进行的。

  本文在分析网络无线侦察接收机软件系统框架的基础上,结合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的方式叠加在画图窗上的。

  .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中分配的缓冲区中。

  预处理过程构造

      

责任编辑:ljy888
免责声明:以上内容转载互联网平台或企业单位自行提供,对内容的真实性、准确性和合法性不负责,Voipchina网对此不承担任何法律责任。

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部

上一篇VPN选型 CIO必须深究的三大核心问..
下一篇技巧经验:如何改善数据中心布线?

热门文章

图片主题

最新文章

相关文章

广告位

Copyright@2003-2009 网络通信中国(原VoIP中国) 版权所有
联系方式:503927495@qq.com
  京ICP备05067673号-1 京公网安1101111101259