王谦诚,李 强,周 元,万 岳
(中国船舶集团有限公司第八研究院,南京 211153)
实时频谱分析技术(RTSA)[1]是目前最强大的电磁频谱监测与分析技术,在捕获带宽内,可以监测所有的瞬态信号、动态信号、射频脉冲,提高了猝发信号的截获能力。用户应用数字荧光频谱显示技术绘制数字荧光频谱图,从而观测当前的电磁频谱信息。数字荧光频谱显示技术是RTSA最显著的功能,能够通过显示画面中颜色差异直观地向用户展示各种信号发生的概率。
数字荧光频谱数据量大,每帧数据量不低于1 MB,为了满足人眼的感官要求,数字荧光频谱通常每秒刷新25~30帧,要在一次刷新时间内,软件处理接收到全部数据后并完成图形绘制[2]。高频率的刷新会导致瞬态信号在图形界面上一闪而过,无法被人眼捕获;一些弱强度信号也容易被忽略。本文频谱图的刷新率为30 帧/s,通过数字余晖技术观测信号变化轨迹,并提出一种显示强度修正方法来整体提高显示强度。此外,显示软件对跨平台和可移植性要求不断提高,本文采用具备跨平台开发能力的Qt作为开发工具,利用Qt中开放式图表绘制库完成数字荧光频谱图的绘制。
数字荧光频谱显示画面基于实时频谱接收机计算生成的位图矩阵(bitmap)[3]。实时频谱接收机将信号频谱图化分成密集的矩阵,其中列标定频谱轨迹幅度值,行标定频率轴上的各个频率点,每个矩阵单元的绘制内容为该单元频率-幅度信息对在单位时间内的频谱命中次数。将这些命中次数按比例着色显示,生成可以用眼睛直接区分出正常信号、突发瞬变信号以及背景噪声的图片。
在具体的工程实现中位图矩阵由上千个行和列组成,本节使用11*10矩阵说明其基本原理。如图1(a)所示,单个频谱映射到位图矩阵中之后含有多个空矩阵,这些空矩阵意味着该次频谱变换结果中没有和它们相符合的频率-幅度信息对;图1(b)显示的是再进行9次频谱变换累积后映射到位图矩阵后的结果。
(a)更新1次
数字荧光频谱包含了一段时间内频率、幅度及命中次数的三维信息,提供这段时间内所有信号的频谱态势。为了进一步提升视觉效果,通常采用不同颜色区分信号的命中概率,如图2所示。命中概率值越大,颜色越接近暖色系;命中概率值越小,越接近冷色系;当命中概率为0时,显示为黑色。
图2 位图矩阵着色后的效果示意
Qt是一个跨平台的C++图形界面开发框架。QCustomPlot是用户绘图和数据可视化的Qt C++库,能绘制出高品质的图表,提高实时可视化应用程序的性能,且具有文档记录功能。
QCustomPlot的使用不依赖于任何构件,只需在工程中加入头文件qcustomplot.h和类文件qcustomplot.cpp,再将界面类(Qwidget)提升为QCustomPlot类,即可使用。QCustomPlot的绘制图层共分为6个:背景层、网格层、绘图层、坐标轴层、图例层和overlay层,用于完成不同显示内容的渲染,见图3。
图3 QCustomPlot绘制分层架构
QCPColorMap为QCustomPlot中的色谱图功能。QCPColorMap绘制方法大致分为以下4步:
(1)初始化图纸
设置整个色谱图的大小,如设置一个m*n个点的色谱图,代码为qColorMap->data()->setSize(m,n);
(2)创建色度图标尺
色度图标尺用于确定输入数据的范围,根据最大最小法量化显示数据,并将其映射成不同的颜色,代码为QCPColorScale.setRange(min,max);qColorMap->setColorScale( QCPColorScale);
(3)定义二维数组缓存数据
存储数据格式代码为QList
每一个QVector类型数据为位图矩阵单列数据;
(4)输入数据并显示
定时读取缓存数据,利用setCell()函数,按数据横、纵坐标的位置显示在界面上,具体代码为setCell(i,j,qRound(value_lofar[i][j])。
完成读取后,调用replot()函数实时刷新图像。
数字余晖技术是荧光频谱图中用于观测信号变化轨迹的一种显示技术,实时频谱分析在概率密度统计处理的基础上,加入了数字余晖功能来突出显示观测到的信号。余晖可使荧光在显示器上暂存一定时间,便于观测信号;数字余晖技术也有助于观测到信号的变化过程。
如果没有余晖效果,荧光将在下一个刷新周期消失,因此当荧光频谱图刷新速率快于人眼识别时间时,人眼将很难察觉到显示概率低的信号。在实时频谱接收机中,概率密度统计后的数值经颜色映射后将命中次数转变为了颜色概率信息,而不同的余晖会表现出不同的效果,从概率密度图可以清晰地反映出来。图4~6分别给出了不同余晖效果下经过3次刷新时间图像显示效果的变化情况。
图4 无余晖效果示意图
图 4 为没有余晖的效果示意,关闭余晖,概率密度余晖处理在每次统计完一幅图像后进行清屏,这样在进行下一次密度统计前不会累积之前的数据。
图5为可变余晖的效果示意,为实现可变余晖,概率密度统计会把上一幅图像的部分统计数值在下一次统计时叠加上去,可以看出显示颜色逐渐变淡,调节叠加的数值比例,可以改变信号事件从显示器上衰退所需的时间长度。
图5 可变余晖效果示意图
图6为无穷余晖的效果示意图,无穷大余晖可以一直累积统计数据,直到发送清除指令才会进行清屏的操作。可以看出,在新的一次统计到来时不会清除或衰减任何上一次统计的数据,而是将数据全部保留到下一次统计中。由于颜色映射中颜色值保留最大值,所以在无穷大余晖中会一直保持全部信号,从而保证在无穷大余晖下不会漏掉任何信号事件。
图6 无穷余晖效果示意图
概率密度统计产生的统计值就是显示强度值,统计数值与相应的颜色标度对应,数据可以转化成相应的概率信息。但是在实际使用过程中,由于统计信号本身采用线性量化,用户关心的猝发信号显示强度过低,不易察觉。为了提高对猝发信号的人眼视觉发现能力,本文采用对数归一化映射对概率密度统计矩阵进行平滑处理。
整体提高显示强度的处理计算公式如下:
(1)
式中,P为显示强度;NFFT为实时频谱接收机每秒钟运算的FFT次数;R为每秒钟的刷新次数;α为余晖系数;T为当前帧的频谱概率密度统计结果;Tlast为历史概率密度统计计算结果。
可以看出,显示强度受实时频谱接收机每秒的FFT次数、显示刷新率和余晖强度限制,也与系统的数据处理能力有关,刷新率R通常设置为30~40 帧/s。
本文采用2.4GWIF、Buletooth4.0和Buletooth5.1信号分别绘制低余晖频谱图和高余晖频谱图:2.4GWIFI信号的带宽为20 MHz,当传输数据量较大时,信号占空比较高;Buletooth4.0信号为跳频通信,从2 400 MHz到2 480 MHz共80 MHz带宽,含40个频点,每个频点间隔2 MHz,其中有37个频点用于通信,3个频点用于广播频点(2 402、2 426、2 480);Buletooth5.1协议频点2 400 MHz到2 480 MHz共80 MHz带宽,含80个频点,每个频点间隔1 MHz。
图7是在屏幕刷新率30 帧/s时低余晖系数下的2.4GWIFI信号和Buletooth信号的显示强度修正后的显示效果;图8是在屏幕刷新率30 帧/s时高余晖系数下的2.4GWIFI信号和Buletooth信号的显示强度修正后的显示效果。
图7 低余晖系数效果图
图8 高余晖系数效果图
与图7相比,图8中的高余晖强度图中低占空比的Buletooth信号显示效果更加清晰,2.4GWIFI信号的包络更鲜明锐利。
本文采用不同调制类型的两组信号绘制频谱。图9是对重复周期50 μs、脉宽13 μs的13位Barke码脉冲信号的频谱显示效果,图10是对重复周期50 μs、脉宽10 μs、带宽10 MHz带宽线性调频信号的频谱显示效果,通过数字荧光频谱图可以轻易分辨出雷达信号的调制类型。
图9 巴克码脉冲信号效果图
图10 线性调频脉冲信号绘制效果图
综上所述,本文方法可以有效显示各种信号的数字荧光频谱图,具备对瞬态信号、动态信号和射频脉冲等信号的显示监测能力。
本文基于QT的数字荧光频谱显示技术能够满足实时频谱接收机的显示要求,可应用于国产化平台,能够适应现代复杂的战场电磁环境中各种瞬态、动态、射频脉冲的捕获和观察,有效解决程序的跨平台问题,满足现代化雷达国产化需求。目前该频谱图预处理程序和显示处理程序为两个独立的程序模块,将来可将这两个程序模块优化合并,进一步方便用户使用。