一种基于DSP的声信标弱信号提取方法
2014-12-05李笑媛
李笑媛,程 晶,那 健
(大连测控技术研究所,辽宁 大连116013)
0 引 言
声信标在水中目标的搜救与定位等方面有着广泛应用。当前在搜救与定位方面使用声信标的尺寸和功耗都要求越来越小,限制了声信标发射信号的功率和频率,使得对声信标信号的搜寻和定位作用距离受到限制。为了在较低的声信标发射声源级的条件下,尽量提高对目标的检测距离,就需要采用最佳的声信标弱信号提取方法。本文对声信标弱信号的提取方法进行研究并将提取方法在DSP 模块上实现,最终将远距离声信标弱信号的检测结果以音频、视频输出。
1 声信标信号特性
本文以声源级168 dB,频率为43 kHz 的CW 脉冲声信标信号为例。
通过以上参数可知,声信标发射信号的强度较弱,频率较高,会导致信号传播衰减较快,作用距离较近。
根据声信标信号的发射和提取方式,被动声呐方程如下[3]:
其中声源级SL=168 dB,总的海洋背景噪声级NL,声信号在海水中的传播损失TL,是影响声信标信号传播的最重要因素。
传播损失如下式[3]:
其中r 为距离,km;f 为频率,kHz。
信标信号频率f=43 kHz,根据要求水声探测距离需达到2 km,首先计算r=2 km 处的传播损失。
TL=15log2+0.036×433/2×2+60=81dB。
背景噪声级NL 假设为100 dB,将TL和NL 结果代入式(1),则
DT=168-81-100=-13dB。
若在2 km 处能有效检测出信号,检测方法的检测增益至少要达到13 dB。
2 声信标弱信号提取方法
本课题需要提取的声信标信号是一种CW 脉冲信号,为确知信号,信号提取的噪声干扰为海洋背景噪声。接收端接收到的声信标的发射信号s(t)可表述如下:
式中:k=0,1,2,…,n 为正整数;s0(t)为声信标信号发射脉冲;n(t)为海洋环境噪声干扰。
针对确定性的被提取信号以及检测频带近似白噪声的海洋背景干扰特性,可用的信号提取方法主要有:人耳听闻、窄带滤波、匹配滤波、FFT 滤波及自适应滤波等。根据Matlab 仿真结果匹配滤波在信噪比为-15 dB 时可以有效提取出信号,故本文选用匹配滤波来提取声信标信号。
人耳听觉系统可以完成对声信号的传输、转换等综合处理,最终能够提前出信号。但是人耳听觉范围在20 Hz ~20 kHz 之间,因此需要将43 kHz 的高频信号移频,将43 kHz 的信号与42 kHz 的信号进行混频,将信号移频到1 kHz。
声信标弱信号提取流程如图1所示。
图1 信号提取流程Fig.1 The process of realizing signal
3 DSP 程序设计
本文所选用的信号采集模块包含4 片TS201 DSP芯片,可以实现4 路信号的同步采集。采集模块上电初始化后,等待AD 芯片开始采样。采样数据写入FPGA 的缓存内,每个通道采集4 096 点数据,即写满4 096×4CH=16 384 点数据后,给DSP 发送中断。DSP 响应中断后从FPGA 的缓存内读取数据。
信号采集模块的采样率为312 500 Hz,每个通道每次采集4 096 点数据,因此采样周期为TS=4 096/312 500=13.107 2 ms,DSP 通过外部总线读取采集数据。DSP 读取外部总线的数据后,将采集到的数据存储,存够4 组数据,即16 384 点数据后,将数据通过LINK 总线发送给另外一片DSP 进行信号提取。由于需要进行实时采样,所以需要在TS×4=52.4 ms 的时间内完成信号提取算法的运算。
DSP 程序首先需要产生10 ms 频率为1 000 Hz,幅度为100 mV 的发射信号,用于与接收到的信号做相关计算,实现匹配滤波。
使用Matlab 的工具箱设计带通滤波器,滤波器的设计参数如下:
Bandpass FIR:FS=312500;Fstop1:600;Fpass1:890;Fpass2:1 110;Fstop2:1 400;Astop1:20;Apass:1;Astop2:20。
通过Matlab 设计的带通滤波器的阶数为928阶,将滤波器的系数按照固定的格式复制到DSP 程序事先定义的滤波器系数数组中。通过fir()函数实现对原始信号的滤波。
由于AD 的采样率设置为312 500 Hz,DA 的采样率设置为312 500/8=39 062.5 Hz,为了匹配DA输出,需要降低8 倍采样率,即混频、带通滤波后的数据每8 个点抽取一个点。最终将检测结果按照要求格式输出到DA 中。由于采用的是16 位的DA芯片,故需要将检测结果变换到0 ~65 535 之间,将检测结果按照式(4)进行计算,之后将数据送给DA 模块。将DA 输出端连接到耳机或者音箱上,通过人耳听闻识别信号。
式中:ynew为变换后的检测数据;ymax为检测数据中的最大值;ymin为检测数据中的最小值;yold为需要进行转换的检测数据。
最后DSP 给主机发送中断,主机收到DSP 中断后读取检测结果,为便于显示,DSP 程序中将检测结果进行抽点处理,即每隔4 个点抽取1 个点,所以显示的检测结果为2 048/4=512 点数据。
本文采用VisualDSP++作为DSP 程序开发环境,C++Builder6.0 作为主机程序开发环境。对DSP 程序采用主机加载方式,每次启动主机程序将自动加载并且运行DSP 程序。主机程序采用多线程的工作方式,其中一个线程用来专门读取检测结果,并将检测结果以图形的方式直观地显示在界面上。采集DSP 程序流程如图2所示。信号提取DSP 程序流程如图3所示。
图2 采集DSP 程序流程Fig.2 The process of AD_ DSP program
图3 信号提取DSP 程序流程Fig.3 The process of DSP program
4 结果分析
海上试验验证:连接好系统,将声信标、水听器入水,运行主机程序,系统开始运行,采集模块开始实时采集信号。通过音频输出可以清晰地分辨出声信标的脉冲信号,同时主机程序中也可以观察到如图4所示的检测结果,从图中可以清晰地分辨出声信标信号。
图4 检测结果Fig.4 The result of realizing
5 结 语
利用以上程序进行声信标的弱信号提取,实现了在复杂海洋环境噪声下提取声信标弱信号的目的。以上方法能够实时采集处理信号,即实现了算法的工程化。通过码头、海上试验,该方法均能准确地发现目标,且作用距离有较大幅度提高能够满足系统要求。
[1]刘伯胜,雷家煜.水声学原理[M].哈尔滨:哈尔滨工程大学出版社,1993.
[2]Paul C.Etter.水声建模与仿真(第3 版)[M].北京:电子工业出版社,2005.
[3]惠俊英.水下声信道[M].北京:国防工业出版社,1992.
[4]Visual Dsp++4.5 C/C++Compiler and Library Manual for TigerSHARC Processors[R].2006.
[5]ADSP-TS201 TigerSHARC Processor Programming Reference[R].2003.
[6]ADSP-TS201 TigerSHARC Processor Hardware Reference[R].2004.