龚泯宇郭世旭*田皓文张建渊
(1.中国计量大学计量测试工程学院,浙江 杭州 310018;2.中国电子科技集团公司第五十二研究所,浙江 杭州 311100)
声波是迄今为止传播水下信息的唯一有效载体[1]。 接收声波信号的传感器称为水听器,它能将水声信号转换为便于处理的电信号,对研究水下的复杂环境、进行水下通讯导航、测量水下目标辐射噪声等方面具有重要作用[2]。
传统水听器为模拟水听器,这种水听器存在输出信号弱、抗干扰能力差、搭建测量系统繁琐等问题[3-4]。 解决这些问题的方法是设计一款数字水听器,它将模拟水听器与采集、传输和存储模块集成于一体,利用模数转换器将模拟量转化为数字量后在线缆上传输,这种集成化的设计极大地缩短了模拟信号的传输路径,降低了水听器的带内噪声,提高了抗干扰能力,且输出的数字量具有易处理和存储的优点。 然而随着减振降噪技术发展,水下目标辐射噪声水平迅速下降,为了实现对微弱声信号的监测,人们对数字水听器自噪声性能提出了更高的要求。
除了关注水听器的噪声性能外,灵敏度也是其重要的性能参数。 作为数字听器的前端——模拟水听器,由于受材料、制造工艺等因素的影响,其不同频点上的灵敏度至少有±2 dB 的起伏[5]。 当水听器接收的信号为宽带信号时,这种起伏使得测量信号幅值受到影响,而目前少有学者提出对灵敏度进行修正的方法。
本文以水下微弱声信号检测为应用背景,并针对目前水听器存在通带内灵敏度起伏较大的问题,设计了一款新型的集水声数据采集、传输、存储为一体的智能化仪器。 通过对关键器件的选型、PCB 合理的布局布线以及电磁兼容性设计实现了系统的低噪声、高采样精度和高动态范围。 以低功耗的FPGA 作为逻辑控制芯片实现了水声信号的采集、传输和存储之间时序控制,并借助FPGA 器件并行处理的优势和专用的硬件资源,运用数字均衡算法实现了水听器通带内灵敏度的修正。 根据千兆以太网的传输带宽,通过规划采集数据流动路径以及上行IP 报文的设计,实现了采集数据的实时高速上传。
图1 所示,数字水听器由模拟水听器、FPGA 核心板、采集模块、大容量数据存储模块、以太网传输模块,以及低噪声电源系统组成。 本次设计中,水听器采用压电陶瓷材料,由于其输出阻抗高且输出信号微弱,因此常常需要配以前置放大器对其进行阻抗匹配与信号的初步放大。 初步放大后的信号再通过程控放大电路进行二次放大,该电路的放大倍数可由FPGA 控制,依据输入信号的幅值动态调整其增益,然后输送给模数转换器(ADC)。 本次设计中,多通道ADC 只连接一路,剩下的通道可作为拓展备用,可连接温度与压力传感器。 FPGA 作为整个系统逻辑控制的核心,其具有丰富I/O 资源和并行处理的优势,易于实现采集和存储模块的拓展与调控[6],其主要任务包括:程控放大器的增益的控制、ADC 寄存器配置和转换数据的读取,并通过GMII 控制千兆以太网芯片88E1111 实现对用户指令的响应以完成采集数据的实时上传和离线存储。
图1 数字水听器总体结构图
采集模块的硬件结构如图2 所示,主要由前置放大器、程控放大器、单端转差分电路、模数转换器构成。
图2 采集模块硬件结构
根据弗里斯公式,前置放大器的噪声性能在降低电路总体噪声性能中占重要地位,因此需要重点考虑[7-8]。 表1 列举的前3 种为现有数字水听器的前置放大器型号[9-13],而本设计中选用ADA4625 作为前置放大器,其噪声性能上远优于其他前置放大器方案,且超高的输入阻抗,足以与水听器的高输出阻抗进行匹配。
表1 常用低噪声前置放大器
水声信号经过信号调理后传输给模数转换器。模数转换器在整个数据采集系统中占着相对重要的地位。 在选取ADC 芯片时,主要关注的性能参数有:采样率、ADC 架构、动态范围、分辨率与功耗等。表2 列举了5 种ADC 性能指标,其中前4 种为现有数字水听器系统中采用的ADC 芯片[9-13]。 由表2可知,数字水听器系统中常用的ADC 可分为SAR型和∑-Δ 型,而∑-Δ 型ADC 相比于SAR 型ADC拥有更高的精度和更好的线性特性,因此针对水声信号这类微弱信号,采用24 bit 的∑-Δ 型ADC 可实现更精确地采样。
表2 常用数字水听器ADC 性能对比
对于数字水听器而言,其带宽由ADC 最高采样率决定。 本系统中预采集的水声信号最高频率为50 kHz,根据Nyquist 采样定理,ADC 采样率至少为最高频率的两倍,即100 kHz。 此外,考虑到数字水听器系统功耗问题,选取功耗较小的ADC 使系统能长时间运行。 综上分析,最终选取了ADI 公司的AD7768 四通道低功耗模数转换芯片。
AD7768 中各通道都有一个∑-Δ 调制器,调制器对模拟输入进行过采样,这种过采样方法将噪声扩展到很宽的频带上,然后利用调制器对噪声频谱进行整形,将大部分噪声能量移出到目标频带外,最后通过内部的数字滤波器滤除大部分的带外噪声,从而实现了低噪声数据采集。
数字水听器除了通过千兆网协议将实时数据上传至上位机外,针对长时间无人监守的水声测量,设计了图3 所示的大容量存储模块以实现对ADC 转换后的数字信息进行存储,其主要由STM32 最小系统、电压转换电路、RTC 电路和TF 卡组成。 为了占用较少的FPGA 的I/O 资源,同时保证数据的高速传输,因此FPGA 与存储模块之间的通信采用SPI协议,并通过该协议实现了对存储模块的校时和数据写入。 本次设计的数字水听器系统的最高采样率为256 kSPS,即每秒采样256 000 个数据点,单通道每秒产生的数据点大小为0.98 MB,经测试存储模块的存储速率为1.47 MB/s,满足数字水听器进行数据实时存储的需求。
图3 大容量存储模块硬件结构
整个系统的软件流程如图4 所示,系统上电复位后,FPGA 开始对以太网总线上的信息进行连续判断。 当识别出上位机发送全局使能和ADC 使能指令后,系统开始采集信号,经过数字均衡处理后缓存到FIFO0 中,待缓存到达设定阈值后传输至上位机完成数据解析。 当上位机未发送全局使能和ADC 使能命令时,以太网则一直处于监听状态。 若系统处于数据采集状态并收到上位机的指令时,则系统响应该指令。
图4 系统程序流程框图
FPGA 与PGA4311 之间通过SPI 协议进行数据交互,当需要改变任意通道的增益时,将式(1)计算出的N值写入PGA 配置指令中发送给FPGA 即可实现增益的改变。
式中:N为PGA 增益寄存器的8 位二进制编码对应的十进制数,其范围为1~255。
系统上电后,ADC 控制模块等待全局使能指令。 当全局使能后,进行AD7768 的默认寄存器初始化设置。 完成初始化设置后等待上位机的使能ADC 采集指令。 若ADC 采集过程中指令校验模块识别到修改寄存器指令时,则中断采集,待寄存器设置完成后ADC 继续采集。
根据AD7768 的数据手册,设计了图5 所示FPGA 读取ADC 转换数据有限状态机。 wait_drdy_h态为等待高电平,wait_drdy_l 态为等待低电平,r_data 态为读数据。 ADC 数据转换完成后管脚会输出一个维持28 ns 的高电平,此时状态机的现态由wait_drdy_h 变为wait_drdy_l,当引脚拉低后,这时现态由wait_drdy_l 变为r_data,FPGA 开始接收DOUTx 管脚的数据,直到FPGA 接收到各通道32 bit 输出后,状态跳回至wait_drdy_h,等待下一次ADC 数据转换完成。
图5 FPGA 读取ADC 转换数据状态转移图
灵敏度是水听器最重要的指标之一,影响水听器输出信号的幅值。 模拟水听器由于材料和制作工艺的原因,导致工作频带内不同频率的灵敏度是不相同的,使得测量信号幅值受到影响。 为了尽可能还原真实的信号,需要通过一定的算法修正灵敏度。在音频领域中,为解决声信号通过音频设备传输后出现失真问题,常常利用数字均衡器修正不同频段上音频设备产生的失真,以此达到声音的高保真还原[14-15]。 音频领域与水声领域较为相似,前者为空气声,后者为水声,都是通过声传感器接收声信号,在输出端完成波形还原。 因此预计数字均衡算法也能较好的运用于水听器灵敏度修正。
数字均衡器是利用数字滤波器对每一个频段进行滤波并对幅频响应修正。 常用的数字滤波器都会带来相移的问题,从而使信号中各频率分量的相位关系发生改变。 本系统使用的数字滤波器是零相位滤波器,其能很好的克服相位延迟问题。
零相位滤波器的原理是首先对输入信号按顺序滤波,接着把滤波后的序列翻转后再次通过滤波器,将得到的结果逆转后输出,输出信号能消除系统带来的相位延时[16-17]。 公式推导如下:
式中:si(n)表示输入信号,h(n)为所用数字滤波器的冲击响应,s1(n)表示输入信号经过滤波器后的输出结果,s2(n)表示为将通过滤波器后的输出序列翻转,s3(n)表示将翻转后的序列再次通过滤波器,s(n)表示将最后的结果再次翻转后输出。 式(2)~式(5)是在时域条件下推算的,较难发现相位的修正,需对其进行频域分析,在频域条件下能较好的观察修正结果。
式中:Sn(ejω)、Si(ejω)和H(ejω)为式(6)~式(9)在频域下的参量,将式(9)用模—相位表示可较为显著地发现相位延时被消除,只剩下滤波器的幅值影响,公式如式(10)。
由此可得零相位滤波器的传递函数频域表示如下,
相应地,由式(11)可知零相位滤波器的单位脉冲相应序列为,
式中:h(-n)为h(n)的时间翻转序列。
工程中,实现h(n)的数字滤波器有FIR 滤波器和IIR 滤波器两种[17]。 FIR 滤波器的优势是设计任何幅频特性时,可实现线性相位。 而IIR 滤波器的相频特性为非线性,但由前述零相位滤波原理可知,零相位滤波器理论上可以完全克服IIR 滤波器的相移问题。 另外,IIR 具有优良的选频特性,其幅值精度高于FIR 滤波器,且在相同的设计指标下,IIR 滤波器的阶数远低于FIR 滤波器[18]。 表3 所示为数字均衡器设计中同一个零相位带通滤波器分别采用FIR 和IIR 滤波器进行设计时其滤波器阶数对比,可知在相同设计指标下,IIR 滤波器的阶数均低于FIR 滤波器,因而占用资源少,运算效率高。 鉴于IIR 优良幅频特性和零相位滤波器零相移特性,并综合硬件资源考虑,故选用IIR 滤波器中的椭圆模型实现零相位滤波器。
表3 利用FIR 与IIR 设计零相位滤波器对比
常见IIR 滤波器系统结构的实现有3 种方式,包括直接型、级联型和并联型[19]。 实际应用中,利用FPGA 实现IIR 滤波器时由于需要考虑有限字长效应,而直接型和级联型结构对有限字长效应敏感,易导致滤波器出现不稳定现象,故并联型结构被广泛应用。 并联型结构不仅运算速度快,且二阶子系统的零极点误差互不影响,同时对滤波器系数的量化误差敏感度较低。 基于三种结构的对比,本设计选择并联结构实现IIR 滤波器。
数字均衡器算法的编写是建立在零相位滤波器的基础上,将全频带信号通过带通滤波器分成不同通带宽度的频段。 若一正弦波输入数字均衡器,其会进入对应频段的滤波器通道,幅值也会相应修正。但水声信号一般宽带信号,且进行数字水听器灵敏度修正时,也是对多个频点的灵敏度值进行修正。因此,数字均衡器需要由多个零相位滤波器组成,对于修正幅值需在实际测量中进行修改以达到目标性能[20-21]。
由于数字均衡算法的运算量大,为保证水声信号能够实时上传,采用图6 所示的流水线方法在FPGA 中实现。
图6 FPGA 实现数字均衡算法示意图
系统开始采集后,由于ADC 的数据流是连续不断的,而数字均衡处理的速度慢于ADC 数据输出的速度,因此在ADC 数据流与数字均衡处理单元间加了一级乒乓FIFO 单元,实现了数据的无缝缓冲与处理。 基于FPGA 并行处理的优势以及专用的硬件资源如乘法器,易于实现多个并行的零相位滤波器对输入信号的处理,通过对各滤波器输出信号进行补偿实现水听器输出电压幅值的修正,其中滤波器的滤波系数由MATLAB 滤波器工具箱FDATOOL 求得。 上述算法的程序流程图如图7 所示。
图7 数字均衡算法程序流程图
利用信号发生器产生频率为1 kHz、峰峰值为200 mV 的正弦波,数字水听器的采样率设置为128 kSPS,PGA 放大倍数依次设置为- 30 dB、-20 dB、-10 dB、0 dB、10 dB、20 dB、30 dB,对该正弦信号进行采样,表4 所示为采集测试结果。
表4 采集与放大功能测试
由表4 可知,实际输出波形的幅值与理论输出相比误差小于1%,说明在保证不超过系统量程的范围内,数字水听器能较好地还原输入信号的实际情况。
本底电噪声是评价数字水听器性能的重要指标,因此需对其进行测试。 首先,将数字水听器的输入端短接至地,PGA 增益依次设置为-30 dB、0 dB、30 dB,ADC 设置为不同的工作模式,然后进行连续的采集,得到表5 所示系统在不同工作模式、不同采样率和增益下的噪声均方根值。 由表5 可知,同一放大倍数下,生态模式噪声最小,快速模式噪声最大。 同一工作模式下,增益为30 dB 时噪声值最小,而增益为-30 dB 时噪声最大。
表5 不同模式下噪声测试结果
在水声领域,常用动态范围表征系统可测到的最大值和最小值范围,本文设计的数字水听器可测信号范围为±4.096 V,当增益为30 dB,系统采样率为128 kSPS 时,由式(11)可得其动态范围可达118 dB。
表6 所示为本文系统与同类系统的性能对比,由表可知本系统的测量带宽、动态范围方面优于其他系统,且相比于目前NI 公司的商用声学采集设备(USB-4431)具有成本低的特点。
表6 本系统与同类数字水听器性能对比
图8 所示为数字水听器噪声性测试系统,主要由抽气泵、真空球、减震垫、数字水听器和频谱分析仪构成,其中真空球可以减少空气中噪声的干扰,减震垫能降低地面带来的震动。 通过该装置,可实现对数字水听器带内噪声的准确测量。
图8 数字水听器噪声测试系统
对于水听器而言,其噪声性能通常需要与海洋环境噪声相比,只有测得水听器的等效噪声谱级优于海洋环境噪声谱级,才能用于水下实验,因此必须对水听器的噪声谱进行分析。 在几百赫兹至几十赫兹频带内,风关噪声是噪声谱主要的噪声源,其中最著名的是Knudson 谱[22],它是以海况或风力作为参数绘制的海洋环境噪声谱。 水听器的等效噪声声压可通过式(12)计算,
式中:LU为带宽内由频谱分析仪测得的噪声电压,Meff为该频率处测得的水听器灵敏度。 由于系统在生态模式下工作频段受限,而快速模式下噪声偏大,因此本次测试将数字水听器的工作模式设置为中速模式,PGA 放大倍数为30 dB,将测试结果与1 级海况比较,图9 所示为测试结果。
图9 噪声谱级对比图
由图9 可知,在0 Hz~100 Hz 范围内,数字水听器噪声谱级明显高于一级海况,可能由于噪声测试系统的隔振不彻底引起,但在100 Hz 以上,水听器的噪声谱级要优于一级海况,最大处可达10 dB。
图10 所示为采用自由场比较法在消声水池测量数字水听器的接收灵敏度示意图,控制行走机构使发射小球换能器与数字水听器移动至水下1.5 m处,水平相距0.5 m 的位置,标准水听器开路电压的测量方法亦同。 通过信号发生器产生单脉冲为正弦波,峰峰值为500 mV,脉冲周期为100 ms 的脉冲波。 根据式(13)可以计算水听器的灵敏度。
图10 灵敏度测量系统
式中:Ms为标准水听器的灵敏度,ex为数字水听器输出的电压信号,es为标准水听器的开路电压。
本次测量的灵敏度范围为1.6 kHz~50 kHz,以1/3 倍程取频点,测量结果如表7 所示。
表7 原始灵敏度
表7 中第5 列为根据式(13)计算出的未修正的数字水听器灵敏度值。 图11 为根据未修正值绘制出的数字水听器原始灵敏度曲线。
图11 数字水听器原始灵敏度曲线
为使灵敏度曲线平滑,需对修正常量进行计算,现以灵敏度值-191.5 dB 为基准,对各频点的理论修正值进行计算,结果如表8 所示。
表8 各频点理论修正值
因数字均衡器使用的是零相位滤波器,所以在波形幅值修正上存在衰减率的影响,无法真正实现各频段滤波器互不影响以及实现真正的单频点修正。 因此在实际使用时,需通过不断调整相邻频段滤波器的修正常量,修正至最理想的灵敏度曲线,修正后的灵敏度如表9 所示,灵敏度曲线如图12。
表9 修正后的灵敏度
观察表9 与图12 可以发现,在理论修正值的基础上,调整数字均衡器的修正常量可实现数字水听器的灵敏度均衡。 灵敏度值基本维持在-191.5 dB 上下浮动,最大偏差为0.797 dB,参照IEC 60500 标准[5],其灵敏度浮动优于一般的标准水听器(±1.5 dB)。
图12 修正后的灵敏度曲线
图13 所示为数字水听器接收的由发射换能器发出的8 kHz 脉冲波的实际波形与修正波形的对比。 经过修正后的波形和脉冲波的个数基本不变,而接收波形的幅值明显增大。
图13 实际波形与修正波形对比
针对模拟水听器存在的输出信号弱、抗干扰能力差、搭建测量系统繁琐、带内灵敏度起伏较大的问题,本文设计了一款新型的集水声数据采集、传输、存储为一体的低噪声、高保真数字水听器。 在系统硬件方面,通过对关键器件选型,设计了一款低噪声、高采样精度、高声学动态范围的采集模块。 考虑到数字水听器不同的测量场景,设计了基于STM32 的大容量存储模块。 在系统软件方面,基于FPGA 实现了水声信号的采集、传输和存储之间时序控制,并通过数字均衡算法实现了水听器通带内灵敏度的修正。 实验测试表明,本文设计的数字水听器系统在不同的放大倍数下采样误差小于1%,在128 K Sample/s 采样率下,噪声均方根值为9.98 μVrms,综合性能优于现有的数字水听器,经数字均衡算法修正后水听器灵敏度基本维持在-191.5 dB 附近,浮动小于±0.8 dB,实现了水声信号的高保真还原。