文献标识码:A
文章编号: 0258-7998(2014)07-0119-03
软件无线电和虚拟仪表技术的出现使得多种仪器平台虚拟化成为现实,利用计算机技术,结合软件的强大功能为软件无线电和虚拟仪表提供了广阔前景[1]。在软件无线电系统开发中,对基带数据进行实时信号分析和处理都采用了虚拟仪表技术。在发达国家虚拟仪表技术非常先进,虚拟仪表产品广泛地应用在工业控制、通信、自动化等各种领域,拥有成熟的商业软件产品,其中最著名的是NI公司的LabVIEW平台[2];但是在国内,还处于传统测试仪器与计算机脱离的状态,投入研究和使用的虚拟仪表主要分布在高校并且都依托专用平台LabVIEW。参考文献[1-5]也都采用LabVIEW来实现各自的设计。但是它只能在特定的使用环境中运行,可移植性很差,无法与其他设备相嵌[3-4]。
本文针对软件无线电的基带信号处理部分,结合虚拟仪表技术,在通用平台VC++6.0上实现了专门针对无线通信信号的虚拟频谱仪,为软件无线电的测量提供了强大的软件平台支持。与真实频谱仪相比,本设计的虚拟频谱仪操作简单易学,且功能可以根据用户需求进行扩展,灵活性很强。
1 虚拟频谱仪设计
1.1 软件无线电虚拟频谱仪框架
软件无线电虚拟频谱仪框架结构如图1所示。软件无线电体系结构主要划分为射频前端(含天线)、高速模数/数模转换器以及数字信号处理单元[5]三大部分。(1)射频(RF)是软件无线电不可替代的硬件入口,主要功能是完成对空中信号的获取,以及信号的放大、滤波和混频;(2)中频主要实现对模拟信号与数字信号的转换、数字信号的预处理,以及完成中频与基带的数据交互;(3)数字信号处理单元主要完成对信号的接收、分析和处理。在信号分析处理中,分析仪器是不可或缺的设备,而传统的仪器仪表功能固定,价格昂贵,因而在软件无线电系统中,对数字处理单元部分进行软件编程实现是本文设计的核心内容。
1.2 软件功能模块设计
根据软件无线电虚拟频谱仪架构,本文的虚拟频谱仪软件功能模块设计如图2所示。
数据输入部分分为PCIe输入和文件输入两种方式。数据存储部分负责对数据进行存储操作,以.txt格式将数据保存到文本中。命令控制部分负责对软件无线电系统前端进行控制。数据处理及分析部分包括窗函数选择和FFT变换。交互界面部分模仿真实仪器的工作面板,其功能包括:提供用户直观的图形显示;在显示窗口中显示信号的参数信息,如幅值、频率、分辨率等;进行参数设置以及图形显示变换等。
2 虚拟频谱仪实现
根据虚拟频谱仪的软件功能设计,具体的实现过程如下所述:各模块经过系统初始化后,开始根据不同数据输入方式分别进行处理,并显示波形。
2.1 系统初始化
虚拟频谱仪软件通过窗口分割界面,设计了3个视图窗口:波形显示窗口、频谱显示窗口和操作窗口。为了能方便地改变波形频谱的显示方式,在软件界面中添加了一个工具条。程序中菜单页面主要分为菜单栏上的设置按钮加载和波形、频谱视图中响应鼠标右击的页面加载。
2.2 命令控制
命令控制的主要目的是保证FPGA与上位机的实时通信。本软件采用网口通信方式,以实现FPGA与上位机的交互和命令控制。
通过系统初始化、参数设置、PCIe初始化等步骤后,点击操作视图上的“Connection”按钮,在消息响应函数中进行套接字的初始化,连接FPGA服务器端。首先调用函数socket()创建TCP套接字,并设置地址结构体SOCKADDR_IN,其中结构体成员变量中需要设置服务器端的IP地址和交互的端口号。然后再调用connect函数请求链接。当成功链接到FPGA后,程序中调用SetTimer函数开启定时器,系统会每隔一定时间发送WM_TIMER消息,在消息响应函数OnTimer中进行数据的发送与接收。
2.3 数据接收
数据接收过程主要包括参数设置、数据接收方式选择以及数据提取。图3为数据接收流程图。
由于串口、网口、USB等接口无法满足移动信号的高速率传输要求,故本文采用PCIe接口对数据进行接收。其中,数据接收采用PCIe总线传送,在参数配置完成后,首先对PCIe设备进行初始化,成功打开PCIe设备后再准备数据接收。在FPGA端,信号经过数字下变频后分为I、Q两路信号。此外,根据单个数据的位宽为16 bit,定义了short型变量real和image来分别提取I路和Q路数据。然后,根据上位机命令控制接收相应的数据,并对其进行处理与分析,以最终实现对时域和频域波形图的显示。
2.4 数据存储
数据存储也是虚拟频谱仪软件的主要功能之一,主要用于保存用户接收到的有用数据,并为后续工作提供实时数据源,且对研究无线通信信号的基带数据特征具有很大帮助。
2.5 数据处理与分析
该模块的主要功能是对软件输入信号进行数据处理与相应分析。该软件目前采用了FFT信号处理方式,并同时使用加窗函数和重叠分段FFT优化频谱显示效果。此项功能主要在频谱视图类中处理实现,此方法在对实时数据进行频谱分析时具有比较明显的改善效果。而窗函数的设置选择项进一步优化了频谱图。程序中主要加入了常用的矩形窗、三角窗、海明窗3个窗函数供用户选择。
2.6 图形显示
图形显示包括时域与频域波形显示。时域波形主要在具有示波器功能的CWaveformView类中实现;频域的频谱图则在CFreSpectrumView类中进行处理。
图形显示的位置由视图坐标系中的坐标值决定。为了能够正确地将波形绘制在视图中的网格坐标内,需要把波形数据值转化为视图坐标值,如图4所示。
在图4中,外方框区域为视图区域,左上角为视图区域的起始点(0,0),内方框为绘制的网格区域,左上角的视图坐标起始点值为(lefttop_x,lefttop_y),右下角的视图坐标值为(rightbottom_x, rightbottom_y),且视图坐标值沿X轴、Y轴方向增大。程序中,在频谱显示时只显示前N/2个点。
3 测试结果及分析
本文数据测试过程在软件无线电硬件测试平台上完成。 利用SMJ100A信号发生器生成了一个频率为100 kHz的正弦信号,并以此为虚拟仪表软件的输入数据。然后用DS1102E示波器、FSL频谱分析仪进行显示,并与软件产生的波形图、频谱图进行对比,如图5所示。其中图5(a)、图5(c)分别为真实仪器的时域与频域显示,图5(b)、图5(d)为本设计实现软件对应的显示图。
图6为参与测试的WCDMA信号在真实频谱仪上的显示结果。通过菜单栏下的设置功能选择文件输入项,显示保存的WCDMA文本数据如图7(a)所示;通过动态设置X、Y坐标, 对信号的局部波形进行放大,如图7(b)所示。图7(a)的时域参数显示结果为min=-0.36 mV, max=21.29 mV;频域参数显示结果为min=-33.55 dBm, max=20.69 dBm,频率分辨率为7 500.00 Hz。而图8(b)的时域参数显示结果为min=0.80 mV,max=19.78 mV;频域显示结果为min=-33.55 dBm,max=20.69 dBm,频率分辨率为7 500.00 Hz。
图8给出了通过PCIe和网口配置(传送采样率为5.12 MHz,FFT点数为16 384,设置无重复点,且选择矩形窗)的TD-SCDMA基带数据的波形频谱图。
在图5中,图5(a)为示波器显示结果,其峰值约为40 mV,图5(b)显示结果峰值为43.20 mV;图5(c)为示波器显示结果,其峰值约为40 mV,图5(d)显示结果峰值为43.20 mV;图5(c)显示结果可知其信号频率为100 kHz,在图5(d)中显示的结果为100 000.29 Hz。对比以上结果可知,本软件测试精度约为±0.30 dB,完全符合频谱仪的性能指标。
当为文本输入时,对比图6和图7可知,本软件可以正确显示WCDMA信号,且能观测其局部特征;当为PCIe输入时,由图8的显示结果可知,其波形显示结果与TD-SCDMA信号本身特征一致。综合说明,本文设计的虚拟频谱仪软件能够正确、稳定地显示通信信号的波形。
与真实的频谱仪相比,本设计的虚拟频谱仪不仅能够正确快速地显示常用简单波形,而且可以准确地接收和测量通信信号,测量精度为0.01 dB。与真实仪器相比,能够直接接收实时数据,不需要中间处理过程就能显示复杂的通信信号,大大减少了工程工作量。
本文设计并实现了一种基于软件无线电的虚拟频谱仪软件,实现了对文件的读取与数据存储功能并对它们进行了频谱分析。此外,通过对网口传递参数配置,利用PCIe接口对实时数据进行接收,并完成对波形、频谱的正确、稳定显示。测试结果表明,该软件可以有效满足软件无线电在数字信号处理与分析模块中的功能需求,并且在课题要求范围内符合各个不同无线通信系统的实时接收数据需求,能够完成测试要求。
参考文献
[1] 张勇, 董浩斌. 基于STM32和LabVIEW的地震数据采集卡的设计[J].电子技术应用, 2012,38(10):72-74.
[2] 马志飞, 张亚, 李波, 等. SLD 光源可靠性试验数据采集系统设计[J]. 电子技术应用, 2013, 39(9): 96-98.
[3] 陈明星, 朱灵, 张龙,等. 基于LabVIEW的光纤傅里叶变换光谱仪数据处理技术[J]. 仪器仪表学报, 2010, 31(3):488-492.
[4] 程乃平, 席有猷, 赵阳. 基于Labwindows/CVI的虚拟频谱分析仪设计[J]. 电子测量技术, 2009, 32(7):109-111.
[5] 何乐生.基于DDS算法的12导联心电信号发生器设计[J].仪器仪表学报, 2010, 31(2):275-279.