温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
基于
Qt
通信
信号
分析
软件
设计
实现
王属灵
工程应用航天电子对抗2023年第 3期基于 Qt的通信信号分析软件的设计与实现王属灵1,宋磊2,张一嘉1,徐璐1(1.浙江理工大学信息科学与工程学院,浙江 杭州 310018;2.陆军工程大学指挥控制学院,江苏 南京 210007)摘要:针对通信信号分析,传统方法一般采用频谱仪、示波器等通用仪器,不仅价格高昂,而且操作复杂,不具备便携性。自主设计并开发了一款基于 Qt图形界面,使用 MDI(Mul-tiple Document Interface)框架实现的多窗口实时操作、多功能、多任务并行的通信信号分析软件。软件基于模块化设计,包括离线数据获取、时频图分析、信号参数测量、信号解调等模块。利用线程池数据处理+GUI绘图方式实现对离线信号的全面分析。经过多种信号及环境测试,软件整体具有分析效果佳、兼容性强、便携性高等众多优势,能够达到预期设计要求。关键词:信号分析;Qt图形界面;模块化;线程池中图分类号:TN971+.1;TP311 文献标志码:ADesign and implementation of communication signal analysissoftware based on QtWang Shuling1,Song Lei2,Zhang Yijia1,Xu Lu1(1.Zhejiang Sci-Tech University,Hangzhou 310018,Zhejiang,China;2.Army Engineering University of PLA,Nanjing 210007,Jiangsu,China)Abstract:For communication signal analysis,traditional methods generally use general-purpose instruments such as spectrum meters and oscilloscopes,which are not only expensive but also complicated to operate and not portable.A multi-window real-time operation,multi-functional and multi-task parallel communication signal anal-ysis software based on Qt graphical interface and using MDI(Multiple Document Interface)framework is de-signed and developed.The software is based on modular design,including offline data acquisition,time-frequen-cy diagram analysis,signal parameter measurement,signal demodulation and other modules.It realizes compre-hensive analysis of offline signals by using thread pool data processing+GUI drawing.After various signal and environment tests,the software as a whole has many advantages such as good analysis effect,strong compatibili-ty and high portability,and can meet the expected design requirements.Key words:signal analysis;Qt graphical interface;modularization;thread pool0 引言传统通信信号的分析,需要联合借助频谱仪和示波器等诸多仪器,这些分析仪器虽然分析可靠、灵敏度高,但是缺点也很明显:价格高昂,操作复杂,设备庞大不具备便携性1,而且分析信号的过程需要较长的时间。对于一些经常需要做信号分析的场合而言,时间成本也非常重要,操作仪器进行信号分析就会费时费力。因此,对信号进行全方位分析费时费力,市面上也很难见到一款多功能的信号分析解决方案。研究者对通信信号分析软件及其相关的显控软件已开展了一些研究,西安电子科技大学范斐基于MFC设计出一款时域、频域测量一体的雷达信号分析软件,并能够对雷达信号进行基本分析和测量2。江苏自动化研究所的徐凤萍利用 Qt软件框架,设计开发了一套基于龙芯 3A+中标麒麟的显控软件架构,用于实现信息快速收发及其界面绘图显示3。以上研究均为在线分析软件,需要实时获取数据,不能对事先预存好的数据文件进行分析,容易产生信号丢失等情况,且仅能做简单的分析和测量4。因此,设计一款集收稿日期:20230107;20230321修回。作者简介:王属灵(1997-),男,硕士,研究方向为通信对抗软件。-26DOI:10.16328/j.htdz8511.2023.03.008工程应用王属灵,等:基于 Qt的通信信号分析软件的设计与实现2023,39(3)离线分析+精确测量+全面分析等功能于一体的解决方案十分必要。Qt 作为一款跨平台 C+图形用户界面应用程序开发框架,具有使用广泛、兼容性强、组件容易拓展等诸多优势5。本文的通信信号分析软件便是基于 Qt平台进行搭建,实现了从数据层的信号分析到图形界面的所有流程开发,整合了基本的信号分析功能,方便信号分析人员操作使用。本文设计的通信信号离线分析软件融合信号处理技术6,采用 MDI 多文档框架,能够对数字及模拟信号进行时频图分析、信号参数测量7和常规信号解调。该软件基于 Qt平台搭建,将所有功能进行模块化设计,最后插入到 MDI多文档界面进行显示,每个模块内部分为线程池数据处理和 GUI界面 2 部分,保证数据在高效处理的前提下界面也能实时刷新,不卡顿。同时对每个模块设置模块代号以及数据路由机制完成不同模块之间的数据交互,界面操作包括基本功能和弹出菜单,基本菜单会在界面上部和右侧进行显示,弹出菜单在每个不同模块会有不同的功能。本文所设计的软件能够在多平台上使用,无需修改代码便可生成所需平台可执行程序。软件内部逻辑清晰明了,简化了分析过程,所有操作均能通过上下文弹出菜单来完成,具有分析效果佳、兼容性强、便携性高等众多优势。1 软件整体研究方案1.1软件整体框架搭建Qt的 MDI模式为开发人员提供了能同时操作多个子窗口的编程接口,每个子窗口相当于一个线程,在属于自己的空间中处理独立特定的事务,同时也能进行快捷传值交互8。本软件以 MDI框架为主模块,通过多个模块搭配联合实现。对每个模块设置模块代号,利用信号槽机制将所有模块与主模块进行关联,最后通过主模块完成各模块之间数据路由。从底层到最上层的主要模块有:离线数据模块、数据路由模块、GUI 模块(全景模块,信号识别模块、信号解调模块),整体架构如图 1所示。1.2软件主要功能软件主要功能分为 5部分:MDI主框架,最底层的离线数据处理模块以及最顶层的信号时频图分析、信号参数测量及常规信号解调。1)MDI主框架作为整个界面最重要的模块之一,主要负责控制软件流程、更改识别、解调等参数,同时负责数据路由,管理所有模块间交互数据的分包。2)离线数据模块主要是获取本地已存储好的数据文件进行分析,数据文件在存储时需要按照指定格式进行。可获取文件类型包括:.dat、.bin、.wav、.IQ、.AD、.STD、.DIF等,界面可在读取文件的同时选择数据参数(数据类型,信道类型、采样频率等)。3)时频图分析主要分为 2 部分:信号频谱图和瀑布图分析。频谱图以 x 轴为频率,y 轴为幅度,通过快速傅里叶变换(FFT)再计算功率谱密度后能够完整且清晰地展示信号的频域特征,同时频谱图通过自定义控件,能够进行图像框选放大、滚轮任意放缩、信号框选识别及解调等功能;瀑布图以 x 轴作为频率,y 轴作为时间,通过不同的颜色展示对应的幅度,由上到下进行移动,且横轴频率坐标与频谱图完全对应。频谱图配合瀑布图能够以最直观的方式展现信号频域特征的二维、三维图。4)信号参数测量主要分为 2 部分:信号参数结果表用来展示当前从全景框选的信号识别结果参数,结果参数列表可以通过点击进行信号解调并记录参数至信号解调参数区,信号置信度直方图负责统计当前识别信号类型出现的频率(百分比),供用户查看方便以做出下一步分析操作。5)常规信号解调展示的是信号的基带波形图、星座图和码流图,信号解调流程可以通过全景框选信号+自定解调参数实现,也可从识别结果参数对识别到的信号进行直接解调。图 1软件整体框架模型-272023,39(3)航天电子对抗2 软件设计与实现2.1软件 MDI程序的搭建通过 Qt Creator 新建一个 Qt Widgets Application应用程序,并编辑 UI 文件,设置主窗口部件为 QMdi-Area,同时创建菜单栏、工具栏以及参数区。并重新按照图 2所示框架布局整个 UI界面。菜单栏包括文件菜单栏以及操作菜单栏。文件菜单栏负责获取本地的 data文件,并且保留最近读取的文件显示;操作菜单栏主要是流程控制功能,负责软件启动、暂停、停止、重复播放等功能。所有设置好的控件操作将会对应该类下面的一个自定义槽函数,通过 Qt 特有的 connect 机制,将功能和槽函数实现动态绑定,当点击客户端操作时槽函数能够响应,实现相应操作。工具栏设置于软件左上角,提供一系列位图式按钮控制指令,是菜单栏部分功能的展开按钮,方便终端用户操作。而进度条负责获取并显示当前文件读取到的位置,可拖拽。参数区包括:数据分析参数、信号通道参数及信号解调参数。主要负责设置识别解调参数,并用三个结构体对象保存为全局参数,供所有模块调用。2.2离线数据模块的设计与实现离线数据模块通过子类化 QFIleDialog类,在此基础插入数据文件参数复选控件,实现自定义的 File-control类。再通过选择数据文件获得文件名,同时利用 QFileInfo类完成文件类型判定。由于经常会有大文件的读取,本软件使用多线程的方法读取文件数据,解决界面假死问题,而经常对线程的创建及销毁会产生很大的开销,所以可以利用Qt 的线程池函数 QThreadPool,使用 QThreadPool 直接获取 QApplication 生成的默认线程池对象进行管理。在选中确认一个文件之后,创建一个读取任务放入线程池的任务队列,而任务的过程是 QFile 获取文件句柄,以 QDataStream 二进制流读取数据,最后保存结果,并通知 UI线程任务执行完毕,此任务结束,数据模块执行流程图如图 3所示。2.3全景模块的设计与实现QCustomPlot 是一个开源的 Qt C+小部件,用于绘图和数据可视化,该库能够专注制作美观且性能较强的图形和图表,效果佳,简单易用,只需要在项目中增加一个同名头文件和源文件,然后将一个 widget提升为 QCustomPlot类即可使用9。本软件 GUI显示模块均基于 QCustomPlot二次开发实现。基于 QCustomPlot二次开发的频谱图需要对子窗口初始化为自定义个性化窗口,并重新设置数据导入接口,增加右键弹出菜单 QMenu,菜单栏包括:峰值保持、框选放大及自适范围等。瀑布图设置图形通过 QCPColorGradient 类构造一个自定义色条,再使用 QCPColorMap 类绘制,以色条上不同颜色表示信号幅度强弱。每一帧数据追加插入到 QList 数据末尾,同时删除 QList 头部数据,以此推动瀑布图从上往下刷新。频谱图 x轴范围改变会发出 rangeChanged 信号,将之与瀑布图 x 轴 setRange方法绑定,