LabVIEW与MATLAB混合编程在数字天线阵列测试中的应用
扫描二维码
随时随地手机看文章
引言
数字天线阵列是天线和数字信号处理技术结合的产物,它具有工作方式灵活、抗干扰性能卓越和超角分辨等众多优点,因此在军事和民用领域都得到了广泛的应用。阵列系统的多天线单元和多收发通道必然带来阵列系统的误差,这些误差会引起系统性能的下降,甚至会使各种先进的信号处理算法完全失效。因此,必须对数字天线阵列系统进行校正。一般阵列天线校正和波瓣测量需要采集大量的数据,进行多次循环计算,工作效率低且动用的仪器设备众多。而LabVIEW作为软件化仪表在数据采集及控制、数据分析和显示等方面具有强大的功能,其支持的信号接口卡丰富,用户能够快捷方便地对各个输入数据参数进行即时设置和调试,程序运行结果也十分直观。因此在阵列天线测试中,LabVIEW的优势十分明显,它可以实现对大量通道信号同时采集和实时监控、分析等工作,这样既节省了资源,也简化了测试过程,提高了工作效率。
但是,LabVIEW在数值处理分析和算法工具等方面效率低、功能简单,不能满足工程上多方面的需求。而MATLAB因其强大的数学处理功能,特别是矩阵运算功能而广泛应用于工程分析。MATLAB的缺点是不方便实现实时操作和控制。因此在某接收数字天线阵列系统测试过程中,将LabVIEW和MATLAB结合运用,实现优势互补,完成了测试过程中数据采集、通道监视和最后验证等工作,为系统测试带来极大便利。
1 系统简介
在系统接收端,接收天线各单元通道将接收到的信号通过接收前端放大后,直接送到数字接收机和采集计算机。由数据采集卡对接收机输出的I/Q信号和天线方位等机械参数、触发信号进行采集和控制,并最终在终端控制处理讣算机上计算出天线波瓣图。系统工作过程如图1所示。
在测试过程中,采用LabVIEW设计用户图形界面,负责数据采集,并调用由MATLAB牛成的COM组件对象或者在后台直接调用MATLAB。LabVIEW中数据采集系统由采集硬件、硬件驱动程序和数据采集函数等组成。安装的硬件驱动程序包含了硬件可以接收的操作命令,在使用这些硬件之前,根据需要进行硬件和软件设置,以满足采样频率等方面的要求。水系统中采用NI公司的PCI-6534采集卡,LabVIEW通过控制数据采集卡对接收机输出的I/Q信号以及其他机械参数等进行采集。在完成采集卡的设置后,就可以进行采集和监控等工作。
2 系统软件的实现
下面将结合实例来介绍LabVIEW与MATLAB混合编程在天线测试过程中的具体应用。
2.1 LabVIEW与MATLAB的接口实现
LabVIEW已提供了MATLAB Script节点来调用MATLAB语言开发的算法,这实际上就是通过Activex控件与MATLAB Server进行通信,用该方法实现它们的混合编程简单实用,但是不能脱离MATLAB的环境,而只是将它在后台执行,因此十分不利于独立应用程序的开发。相对于此,有3种所谓无缝集成的方法即COM组件法、中间文件传递法以及VC++参数类型转化法。在本系统中,基于MATLAB平台,根据使用要求的不同,在通道监视中采用COM组什法,在测量验证中利用了 MATLAB Script节点。MATLABScript节点的调用十分简单,不再赘述,这里只简要介绍COM组件法。使用MATLAB的MATLAB Builderfor COM创建COM组件非常简单,只要创建工程、管理M文件和MEX文件、编译生成组件、打包和发布组件4个步骤。在MATLAB Builder for COM中创建对象(object)后,加入编写好的M文件,编译后生成一个dll文件(如test_1_0.dll)。然后在LabVIEW 中选择自动化引用(Automation Refnum)控制量,再从对象列表中选择自己生成的test 1.0 Type Library Version 1.0,这样该dll文件就添加到LabVIEW程序中。为简化访问自动化服务器的过程,LabVIEW提供了一组与组件操作相关的子VI(虚拟仪器),其中Automation Open打开一个与COM对象相连的Refnum,然后Refnum能够传递给其他节点。值得注意的是,LabVIEW程序员必须清楚COM对象所返回的数据类型,如果选择了错误的数据类型,LabVIEW将反馈错误的信息。下面分别对测试过程中几个设计实例进行介绍。
2.2 通道监视
由于整个系统由多个通道构成,为了保证在校正过程中各个通道处于正常工作状态,在校正开始前需要对通道进行检查。同时,由于本系统工作频带位于民用通信频带内,为了避免其对校正过程的影响,也需要对外界电磁信号进行临视。因此,通道监视是确保校正顺利进行的重要一步。
图2是通道监视VI的前面板界面。图中使用了Dialog Tab Control控件,从而可以在多通道同时监控与单通道观测间切换。在该VI中,除了可以直观监视各个通道是否正常工作外,还可以测量、比较各个通道功率增益的差异,并完成对通道时域信号幅度、I/Q信号正交度等信息的监控。
图3是通道监视Ⅵ的框图。图中调用了COM组件对象,它完成的主要任务是将采集卡输出的多个通道串行数据流按通道进行分组,并根据需要进行数制转换和数据分析等工作,这些功能提高了程序运行速度,并大大简化甚至完成了一些LabVIEW很难完成的任务。与调用MATLAB Script节点相比,COM组件法具有运行速度更快、内存管理更好和运行稳定等优点。
2.3 数据采集和测量验证
数据采集是测试过程中最基本、最重要的环节,其前面板见图4。
在数据采集VI中不但可以控制采集的起止,还可通过在前面板修改参数控制采集数据的长度,从几十kHz到几十MHz都可以实现连续采集。
由于天线测试尤其是远场测试必须到合适的环境中才能完成,所以在完成天线阵列的校正后,除了仔细分析结果外还希望能够验证一下测试的结果。因此,在用校正系数进行补偿后采用DBF(数字波束合成)技术在空间实时形成同时多波束,以远场辐射源为目标,用比幅法进行了波瓣实时测试和测角性能验证,其结果令人满意。前面板见图5。
在该VI采用了MATLAB Script节点,这是因为,虽然采用MATLAB Script节点不能脱离MATLAB环境,要在后台肩动MATLAB,不利于独立应用程序的开发,但是根据实际情况的不同,MATLAB Script节点有时显得更为方便和实用。在本例中,一方面,实时性已不是我们考虑的最重要因素,另一方面,在调试过程中可以在MATLAB Script节点中方便地修改MATLAB程序,而不必像调用COM组件那样反复进行编译,而且在测试过程中不仅需要测量的最终结果,一些中间变量也是我们感兴趣的。这时通过查看在后台运行的MATLAB上作空间就可以方便地看到这些数据,而这在调用COM组件法中是无法或者不方便实现的。
3 结束语
通过以上几个主要程序和其他一些辅助程序,完成了在天线测试过程巾从通道监视、数据采集到最后验证的完整过程。本系统充分利用了LabVIEW在软件化测量编程、数据采集和MATLAB在数据处理方面的优势,通过混合编程将两者有效、合理地结合,并经过了实践的验证。