被动声纳基阵的数据采集与处理软件的设计与实现
2017-09-04纳杰斯
被动声纳基阵的数据采集与处理软件的设计与实现
纳杰斯
(昆明船舶设备研究试验中心昆明650051)
在被动声纳系统中,被动声纳基阵用于监听水面、水下航行体的辐射噪声,基阵上的压力传感器可以将声信号引起的海水振动转换为电信号,“数据采集与处理软件”则负责对这些电信号的采集与处理,最终估算得到航行体相对于基阵的方向与其他航行状态。除了被动声纳基阵本身的性能外,“数据采集与处理软件”的代码质量很大程度上影响着整个被动声纳系统的性能,论文结合实际项目,从编程角度上详细描述了项目中“数据采集与处理软件”的设计方法,文中重点在于叙述软件的编程构架、数据流路径及设计要点,目的在于描述软件的编程方式与实现方法。
LabVIEW程序设计;被动声纳;数据采集与处理软件
Class NumberTN92
1 引言
被动声纳技术是实现水面、水下航行体跟踪的主要技术手段,其主要原理是采集并处理航行体产生的声辐射信号来估算航行体的位置状态,在军事运用中有着极其重要的意义[1]。
被动声纳基阵通过高精度压力传感器采集航行体的辐射噪声[2],基阵性能决定了水声信号到模拟电信号转换的真实性,真实有效的原始电信号是后续处理的基本保障。模拟电信号经过数据采集卡转换为数字信号,计算机软件再对这些数字信号进行一系列的处理,最终得以估算出航行体的方位状态。如图1所示,在被动声纳系统工作流程中,“数据采集与处理软件”实现了数据采集卡的硬件控制和后续数字信号的处理,在被动声纳系统中有着重要作用,软件的代码质量对系统性能有较大影响。
对于本项目中“数据采集与处理软件”的开发设计,考虑到军事用途对数据采集的苛刻要求,选用业内领先的美国NI(National Instruments)公司的采集设备,并选用与采集硬件无缝连接的Lab⁃VIEW(Laboratory Virtual Instrument Engineering Work bench)作为软件开发环境。LabVIEW是一种图形化、以数据流为导向的编程语言[3],且可通过官方提供的NI-DAQmx驱动实现与NI公司硬件系统的无缝连接,使其在测量与控制系统的开发中有着得天独厚的优势。
2 软件设计与实现
2.1 软件总体设计
“数据采集与处理软件”需要实现对数据的采集、处理、显示、存储、传输等功能,将这些功能划分为各个相对独立的模块“分而治之”,每个模块实现相对独立的功能,模块之间通讯尽量简洁,这样有利于软件的可读性与维护性。这些模块间的连接关系如图2所示。
对于软件的具体代码设计,采用基于消息队列的生产者消费者编程框架。生产者是数据或指令的提供方,消费者是数据或指令的消费方[4]。生产者一般是嵌套在循环体中的与用户交互的事件结构,消费者是嵌套在循环体中的条件结构,条件结构的分支既是对不同指令的执行方法,不同的消费者可以看作不同的模块,他们运行在独立的循环体中,并通过消息队列相互通讯,不同的循环体可以看作不同的线程,所以各模块之间具有相当的独立性。如图3是一个典型的生产者消费者的编程框架。
2.2 数据采集模块设计
数据采集模块负责对原始信号的采集工作。在本项目中,原始数据除了有模拟电信号外,还通过“电-光转换模块”复制出一路数字光信号,实现信号链路的备份,提高系统可靠性。同时,两种信号链路结合了电信号电路简单与光信号传输距离远的优点,提高系统在多种使用环境下的适应能力。
对于模拟信号,使用NI公司的4303系列采集卡,单块卡可实现24通道的模拟信号同步采集。使用NI-DAQmx驱动可便捷的实时配置、控制硬件采集卡。如图4为本项目中NI采集卡的数据采集程序,如图所示只需简单地调用几个驱动接口即实现了对3块NI4303采集卡的同步连续采集。值得一提的是,只需在“创建虚拟任务”函数的“物理通道”输入接口同时声明3块采集卡Slot3、Slot4、Slot5的物理名称即可完成对3块采集卡的时钟同步设置,这就是NI公司为了工程应用简单化提出的“Multi Device”技术。
对于数字光信号,“电-光转换模块”将电信号转换为光信号后由光纤传输,在数据处理计算机端,“光-电转换模块”将光信号转换成数字信号再通过RJ45网口输入计算机。借助公共免费的Win⁃pcap(Windows Packet Capture)开发包可实现对网口的访问读写,Winpcap为应用程序提供访问网络底层的能力,用于Windows系统下的直接的网络编程[5]。
2.3 数据处理模块设计
数据处理模块负责原始数据的计算与处理,原始信号经过一系列的信号处理手段,最终解算得到航行体的方位状态等信息。LabVIEW是一种由数据流向决定程序执行顺序的数据流编程语言,在LabVIEW程序设计中,最重要的就是设计一条功能完备、逻辑明确的数据流路径[6]。如图5所示为“数据采集与处理软件”的完整数据流程图。
图5 以数据流的角度详细描述了数据从硬件采集卡到最终的本地存储、网络传输的完整流程。不同的模块之间使用不同的队列完成数据的传输,队列作为数据的缓冲池,队列长度即为缓冲池的大小,缓冲池的使用以及采用“有损耗元素入队列”的入队方式,根本上解决了软件系统运行过程中各模块之间运算速度差异的不稳定因素,可提高了整个软件系统的稳定性,且使用队列结构在代码结构上提高了各模块之间的独立性,易于代码维护。
“数据处理模块”是数据流中最重要的一部分,该模块读取原始数据队列,通过计算后得到航行体的方位状态等结果。本项目中声纳基阵可同时采集72路水声信号,单路信号硬件采样率为50k,分辨率为16bit,这样的数据量对于通用计算机而言较为庞大。考虑水中航行体运动的连续性,在不影响使用需求的前提下,不必连续计算航行体方位状态,只需以一定周期间隔计算即可,中间未计算的部分可用插值的方法估算,这样,只需截取一部分数据参与运算即可。本项目中,截取15%~20%的数据参与运算即可满足使用需求,大大节约了计算机资源。
2.4 主界面模块设计
主界面模块负责将关键数据与运算结果显示给用户。得益于LabVIEW图形化编程的特点,利用极坐标图、二维坐标图、文本列表框等图表控件,可实现各重要过程数据与结果数据的图形化显示。主界面包含波束能量图、时间历程图、目标信息文本显示列表、极坐标波束能量图、软件运行信息框等。图6所示为软件的主界面,图中标明了主界面上各个元素的功能与控件类型。
2.5 数据监测模块设计
数据监测模块主要用于监测数据的采集与处理过程,该模块拥有一个与用户交互的前面板,但该前面板在后台运行,软件正常状态下并不显示,可以通过单击主界面左上方的“监测”按钮进入该前面板界面。在数据监测界面中,软件使用者可以通过图表的形式直观地监测软件运行的实时状态,包括硬件实时采集的原始数据、原始数据的频谱、波束形成后各波束的频谱等。
2.6 数据存储&回放模块设计
数据存储与回放模块实现对原始数据的流盘存储与回放功能,为后续的数据分析提供数据支持。前文提过本项目中数据量较大,考虑到节约存储空间、减轻硬盘读写负荷、保障数据有效性等因素,将原始数据默认的Float型数据(32bit)映射为Int型数据(16bit),通过公式:
可以计算出Float型实际值对应的Int型映射值,读取数据时使用同样的公式即可还原原值。这样每秒的数据存储量可减小一倍,而损失的数据精度在可以接受的范围内。
采用NI公司开发的TDMS(Technical Data Management Streaming)格式作为存储文件类型,具有与LabVIEW兼容性好、读写速度快、使用便捷等多种优势[7],LabVIEW也为TDMS文件提供了丰富的操作函数。
2.7 通讯控制模块设计
通讯模块负责“数据采集与处理软件”与其他软件的数据与命令通讯,“数据采集与处理软件”在整个“被动声纳系统”中属于下层软件,该软件的最终运算结果需要传递到上层软件,除数据通讯外,各层软件之间也有命令通讯。
对于数据的通讯,使用通讯机制较为简单快速的UDP协议,软件只需定时向指定网络地址发送运算结果,偶尔的丢失数据并不影响系统的正常运行,不需要掌握手机制的UDP协议,占用较少的网络资源与硬件资源[8]。
对于命令的通讯,软件之间的命令通讯异常时很可能影响系统的正常运行,所以使用有握手机制通讯可靠的TCP协议。软件生命周期内实时监听并处理各软件之间的命令,命令的收发是否反馈到主界面的“软件运行信息框”内,告知软件使用者命令通讯的状态。
3 软件设计分析
上文对“数据采集与处理软件”的整体与各模块设计要点均作了详细说明,表1对文中提出的各设计要点进行了总结。
图7描述了软件运行在当前主流配置的计算机中各硬件资源的占用情况,CPU、内存、磁盘等主要硬件资源占用率均正常,硬件配置正常的通用计算机均可稳定运行该软件[9]。
表1 软件设计要点分析
4 结语
在被动声纳系统中,“数据采集与处理软件”很大程度上影响整个系统的性能,本文描述了一个功能完备的水声信号采集与处理软件的设计方法与实现细节,通过文中所述方法实现的代码运行稳定,硬件资源占用合理,目前已成功应用在多个被动声纳系统中。文中所述方法具有普适性,对于其他类型的测控项目,同样可以采用文中所述方法进行数据采集与处理软件的设计[10]。
[1]纳杰斯.被动声呐监测系统中目标跟踪算法的研究[J].国外电子测量技术,2015,34(1):103-107.
[2]王丹,闫利超.被动声纳信号检测技术研究[J].信息安全与通信保密,2009,23(9):54-57.
[3]黄豪彩,杨灿军,陈道华,等.仪器仪表学报[J].基于LabVIEW的深海气密采水器测控系统,2011,32(01):124-128.
[4]李红刚,张素萍.基于单片机和LabVIEW的多路数据采集系统设计[J].国外电子测量技术,2014,33(4):35-38.
[5]许爱军,谢娟,张华.基于WinPcap的网络数据解析及其实现[J].科学技术与工程,2009,9(10):67-70.
[6]纳杰斯.LabVIEW编程中基于AMC框架的多机通讯实现方法[J].舰船电子工程,2016,36(7):56-60.
[7]丁硕.基于LabVIEW的远程数据通信技术的实现[J].电子科技,2008,5(05):62-64.
[8]潘逢群,杨建桥,郑恩让.基于LABVIEW的虚拟滤波器的设计与实现[J].电子测量技术,2012,35(03):78-82.
[9]戴成梅,戴成建.基于LABVIEW网络虚拟数字电路实验平台的研制[J].国外电子测量技术,2011,30(09):31-34.
[10]林爽,杨风.基于LabVIEW的多通道数据采集系统的研究[J].山西电子技术,2009,14(03):14-17.
Design and Implementation of Data Acquisition and Processing Software for Passive Sonar Array
Na Jiesi
(Kunming Shipborne Equipment Research and Test Center,Kunming650051)
In the passive sonar system,the passive sonar array is used to monitor the radiation noise of the vessel.The pres⁃sure sensor on the array can convert the seawater vibration caused by the acoustic signal into the electrical signal.The data acquisi⁃tion and processing software is responsible for the acquisition and processing of these electrical signals.The quality of the software af⁃fects the performance of the passive sonar system.This paper,in combination with the project,describes the software design meth⁃od,the paper focuses on the description of the software programming framework and design methods,the purpose is to describe the software programming and implementation methods.
LabVIEW programing,passive sonar,data acquisition and processing software
TN92
10.3969/j.issn.1672-9730.2017.08.022
2017年2月9日,
2017年3月20日
纳杰斯,男,硕士,工程师,研究方向:水声信号处理。