引言
声诱饵仿真系统是为评估某型声诱饵的性能(主要是声学性能)而建立的一个DIS(Distributed InteracTIve SimulaTIon,分布式交互仿真)系统。它包括导演台、鱼雷模拟器、海洋信道模拟器、潜艇/声诱饵模拟器和终端演示等模块,通过以太网相连而成,图1是系统框图。
它通过模拟潜战中潜艇投放的声诱饵与来袭鱼雷进行水声对抗的过程,来评估声诱饵对抗鱼雷自导的有效性。由于系统侧重于声信息及其处理过程的模拟,因此信号处理在其中就占有相当重要的位置。众所周知的是,在水声信号处理过程中,不仅需要处理的信号信息量很大,而且实时性要求也很高。因此,在仿真系统中,欲尽可能真实地再现潜战的过程,单纯利用软件进行信号处理显然难以满足实时性的要求。为了解决这个问题,从两个方面考虑。一方面为提高传输实时性,系统中选用3Com公司的3C17702千兆以太网交换机构建了系统的通信模块硬件结构;另一方面采用Bittware公司的Hammerhead PCI信号处理板(它以ADI的ADSP21160信号处理芯片作为CPU),以提高系统中声信息的处理速度。
图1 声诱饵仿真系统框图
图2 Hammerhead-PCI及其软件
图3 鱼雷主动自导信号处理流程
图4 基于FFT的信号卷积过程
图5 基于FFT的信号相关过程
Hammerhead PCI及相关软件简介
Hammerhead-PCI是一种PCI接口的数字信号处理板卡。它由四块ADSP-21160 SHARC处理器组成,其PCI接口速度可达66MHz。板卡可支持512MB的SDRAM,一个缓冲区以及两个PMC槽,可用于处理器扩展。
ADSP-21160 DSP工作在100MHz,它有2400MFLOPs的处理能力,与ADSP-2106x SHARC DSP兼容。它通过一50MHz,64位的总线访问板子上的SDRAM,PCI总线接口,以及其他的SHARC DSP。2MB的FLASH RAM存有引导程序,ADSP-21160可以对其进行读、写。而512MB的SDRAM作为ADSP-21160的扩展存储器。
Hammerhead PCI的程序开发相关软件主要包括集成开发和调试工具VisualDSP及BittWare主机接口支持工具DSP21K-SF工具箱。图2是它们之间的关系图。
Hammerhead PCI在系统中的应用
如“引言”中所述,系统选取Hammerhead PCI的目的是为了提高信号处理的速度,以满足系统实时性的要求。由此并结合图1所描述的系统结构,为鱼雷模拟器、海洋信道模拟器和潜艇/声诱饵模拟器三个涉及到声信息处理的节点配置了Hammerhead PCI信号处理板。下面以鱼雷模拟器为例介绍Hammerhead PCI在系统中的应用。
鱼雷模拟器中主动信号处理流程
鱼雷模拟器模拟了潜战中鱼雷攻击敌潜艇的机动逻辑和鱼雷自导寻的逻辑。其中鱼雷自导寻的过程其实就是通过信号处理发现并控制鱼雷跟踪目标的过程。信号处理包括被动信号处理和主动信号处理两个过程:被动处理是指鱼雷工作在被动自导阶段时的处理过程,它主要是针对接收到的目标辐射噪声等信息通过能量积分的方法来得到目标的方位、距离等参数;主动处理则是指鱼雷工作在主动自导阶段时的处理过程,主要是通过对接收到的目标(对鱼雷寻的信号的)回波信号经一定的处理后和已知的先验相关样本信号进行互相关运算,由此得到有关目标的具体信息。相比较而言,主动处理过程中要满足实时性的要求就很有必要加入信号处理板,实际中即是这样做的。图3给出了主动信号处理的流程图。
应用分析
由上小节可见,需要运用DSP信号处理板进行数据处理的过程包括混频、带通滤波、低采样和互相关等(生成相关样本可以放在程序初始化过程中),由于这些过程循环往复,并且频率较高。
在每一个大的阶段中,又都可以分为几个小步骤。其中带通滤波和互相关两个过程包含了基于FFT的卷积和相关处理,而这两个处理阶段显然占用最多的时间。具体应用中,将一些基础的运算过程集中起来,作为运算的基础,放在一个名为“funcTIons.h”的C头文件中,而将反复调用的主过程作为生成DSP可执行文件的C文件。
根据需求分析的结果,写出算法的C程序并在PC机平台上调试通过。然后将程序移植到DSP程序编辑环境,经过和DSP的联调正常后生成DSP可执行文件。
在此过程中,一个需要特别注意的问题是DSP中地址分配必须清晰、合理。表1列出了鱼雷自导模块中有关DSP程序的变量地址分配。
其中SignalLen,SamplingRate,ResultLength,done等4个参数在声明时都作为一维数组,是为了与后面的CorrelaTIonData和data的声明保持一致。
PC++机和DSP的通信由HIL(Host Interface Library,主机接口库)来完成。在这里,用到的HIL函数主要有DSP的打开、关闭、配置、程序下载、(待处理的)数据下载、数据(处理结果)上传等。下面为Visual C++程序中有关HIL的一段:
void CTorpedoDoc::ActiveProcess(float* data, int SignalLen, float SamplingRate, float*
result, int ResultLength)
{
...
PDSP21K dsp = dsp21k_open_by_id(0, 1);//打开DSP
dsp21k_reset_bd(dsp);//复位DSP
dsp21k_cfg_proc(dsp);//配置DSP
dsp21k_dl_exe(dsp, "ActiveProcess.dxe");//将可执行文件下载到DSP上
... ... ... ... ... ... ... ... ... ... ... ... ... ...//此处为回波接收线程
dsp21k_dl_int(dsp, 0x800020, SignalLen);//将信号长度数据下载到DSP上
dsp21k_dl_int(dsp, 0x800021, SamplingRate);//将采样率数据下载到DSP上
dsp21k_dl_flts(dsp, 0x800100, 256,CorrelationData);//将相关样本信号数据下载到DSP上
dsp21k_dl_flts(dsp, 0x801000, SignalLen, data);//将回波信号数据下载到DSP上
dsp21k_start(dsp);//启动ActiveProcess.dxe
while(dsp21k_ul_int(dsp, 0x800023) != 1);//等待ActiveProcess.dxe执行完毕
//ActiveProcess.dxe执行完继续
ResultLength = dsp21k_ul_int(dsp, 0x800022);//上传处理结果数据长度
dsp21k_ul_flts(dsp, 0x801000, ResultLength, result);//上传处理结果给result指针
... ... ... ... ... ... ... ... ... ... ... ... ... ...//转去相关处理
}
Hammerhead PCI在系统中的应用效果
在整个信号处理的程序中,用到最多的而且也是最占用处理时间的过程有信号的卷积和信号的互相关。其中在海洋声信道的处理过程中,大量用到了卷积积分运算;在鱼雷自导的信号处理过程中,则更多地使用相关运算。两者都采用了基于FFT(Fast Fourier Transform,快速Fourier变换)的算法,即利用FFT的性质,进行时域 - 频域 - 时域的变换,以减小运算中乘法次数。运算过程分别如图4、5:
图4中,f(k)为输入海洋声信道的采样信号序列,h(k)为海洋声信道的冲激响应函数的采样序列。
图5中,f(k)为回波信号的采样序列,即3.3小节程序中data指针;g(k)为相关样本序列,即其中的CorrelationData指针。G*(ejω)为FFT(g(k))的共扼。R(f(k), g(k))表示f(k)和g(k)的互相关。
为测试DSP信号处理的效果,另外编制了程序“Sharc.dsw”。程序针对同样的信号相关处理过程,分别在单独利用Visual C++编程和通过DSP处理的条件下记录重复执行100次所耗时间,共测试8次,结果如表2。其中DSP处理时间不包括可执行程序下载及前面的DSP初始化工作。
由上表可见,使用DSP处理的平均时间仅为不使用时的10%弱,大大提高了信号处理的速度。信号卷积的结果与此类似。需要指出的是,上表中的时间并不是全部用来进行数值计算的,还包括循环所占用的时间。因此,实际的处理时间还要更短些。
结语
综上所述,由于采用了基于ADSP21160的数字信号处理板Hammerhead-PCI,使得信号处理速度得到提高,从而系统的运行效率也相应得到了很大提高;加上所选高效通信硬件,系统基本实现了实时仿真的目的。本文所描述的系统目前已经完成,运行良好。
欢迎分享,转载请注明来源:内存溢出
赞
(0)
打赏
微信扫一扫
支付宝扫一扫
功率逻辑器件在嵌入式系统中的应用
上一篇
2022-08-01
显示和键盘智能控制zlg7289A的原理及其应用
下一篇
2022-08-01
评论列表(0条)