1 引 言
雷达、声纳探测和超声成像等系统中为了提高对目标变化实时跟踪和测量,就必须尽量缩短信号处理的时间,过长的运算处理时间会对水下目标的探测性能产生较大的影响。声纳的检测能力就会迅速下降,以至完全失去检测能力,而自适应波束形成技术(ABF)就是声纳能够根据周围环境噪声场的变化,不断地自动调节本身的参数以适应周围环境,抑制干扰并检出有用信号。因此采用FPGA来实现自适应波束形成算法是满足复杂海洋环境超声阵列波束形成的较好途径。
最小均方自适应算法(Least Mean Square,LMS)较其他自适应算法具有结构简单,计算量小,易于实现等特点。FPGA实现LMS自适应波束形成算法比采用现有DSP来实现可以明显提高信号的处理速度,节约资源,能更好地满足复杂多变的海洋环境,具有广泛的实用价值。
波束形成系统相当于一个时空滤波器,自适应波束形成系统可采用IIR和FIR两种结构。与IIR滤波器相比,FIR滤波器具有以下优点:可得到严格的线性相位;主要采用非递归结构,从理论上以及从实际的有限精度运算中,都是稳定的;由于冲激响应是有限长度的,因此可以用快速傅里叶变换算法,运算速度快;FIR滤波器设计方法灵活。
本文采用自适应的FIR滤波器结构,结合时延最小均方(DLMS)算法,充分利用FPGA芯片运算速度快,存储资源丰富等优点设计和实现了基于FIR超声阵列自适应波束形成。主动声纳信号为窄带信号,通常采用复数形式表示,在空间滤波器模块采用了循环移位流水乘加器,使复数乘加运算节约了大量资源,同时用并行乘法器完成了DLMS算法,并给出了系统软、硬件模块和仿真分析。
2 超声阵列波束形成系统模型及原理
2.1 系统架构及原理
自适应波束形成又称自适应空域滤波,他是通过对各阵元加权进行空域滤波,来达到增强有用信号、抑制干扰的目的,而且他可以根据信号环境的变化,来改变各阵元的加权因子。在理想的条件下,自适应波束形成技术可以有效地抑制干扰而保留期望(有用)信号,从而使阵列的输出信号干扰噪声比(SINR)达到最大。自适应过程的实现可以采用任何一种适用于横向结构滤波器的自适应迭代算法,比如Wiener滤波器,或者最小均方(LMS)算法。本设计采用最小均方(LMS)算法,系统结构原理如图1所示。
基于FIR自适应波束形成系统过程如下:一方面,输入信号与表示在n时刻的值可调节权系数ω1(n),ω2(n),…,ωm(n)相乘后相加得到输出;另一方面,将输出信号与期望信号进行对比,所得的误差值通过一定的DLMS自适应控制算法再用来调整权值,以保证空间滤波器处在最佳状态,实现滤波的目的。
FIR由线性系统理论可知,在某种适度条件下,输入到线性系统的一个冲击完全可以表征系统。当我们处理有限的离散数据时,线形系统的响应(包括对冲击的响应)也是有限的。若线性系统仅是一个空间滤波器,则通过简单地观察它对冲击的响应,我们就可以完全确定该滤波器。通过这种方式确定的滤波器称为有限冲击响应(FIR)滤波器。
FIR滤波器是在数字信号处理(DSP)中经常使用的两种基本的滤波器之一,另一个为IIR滤波器。IIR滤波器是无限冲激响应滤波器。
在延时LMS算法(the Delayed LMS Algoritms,DLMS)中,将系数更新延迟几个采样周期,只要延迟小于系统阶数,也就是滤波器长度,则误差梯度▽[n]=e[n]x[n],也就是▽[n]≈▽[n-D],但对于由FPGA实现的乘法器和系数更新需要额外的流水线级,如果引入一个延迟因子D,μ为步长因子,LMS算法就变成:
2.2 系统FPGA软件模块设计
FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
目前以硬件描述语言(Verilog 或 VHDL)所完成的电路设计,可以经过简单的综合与布局,快速的烧录至 FPGA 上进行测试,是现代 IC 设计验证的技术主流。这些可编辑元件可以被用来实现一些基本的逻辑门电路(比如AND、OR、XOR、NOT)或者更复杂一些的组合功能比如解码器或数学方程式。在大多数的FPGA里面,这些可编辑的元件里也包含记忆元件例如触发器(Flip-flop)或者其他更加完整的记忆块。
系统设计师可以根据需要通过可编辑的连接把FPGA内部的逻辑块连接起来,就好像一个电路试验板被放在了一个芯片里。一个出厂后的成品FPGA的逻辑块和连接可以按照设计者而改变,所以FPGA可以完成所需要的逻辑功能。
FPGA一般来说比ASIC(专用集成芯片)的速度要慢,无法完成复杂的设计,而且消耗更多的电能。但是他们也有很多的优点比如可以快速成品,可以被修改来改正程序中的错误和更便宜的造价。厂商也可能会提供便宜的但是编辑能力差的FPGA。因为这些芯片有比较差的可编辑能力,所以这些设计的开发是在普通的FPGA上完成的,然后将设计转移到一个类似于ASIC的芯片上。另外一种方法是用CPLD(复杂可编程逻辑器件备)。
根据数字自适应波束形成的原理和数学模型,本文设计的基于FPGA数字波束形成系统结构如图2所示。8路输入信号x(n)经过前端信号处理,A/D转换后,在总控模块的控制下进入输入数据存储模块双口RAM,自适应波束形成的具体实现步骤如下:
第一步:由式(1)得,实际输入的x(n)和调整后的权值w(n)各分量相乘之后累加得到输出y(n);
第二步:由式(2)得,实际输出的y(n)与期望d(n)相减得到调整误差e(n);
第三步:由式(3)得,延时后的调整误差P(n)跟步长的2倍相乘,再和延时的输入x(n-D)相乘得到的积与延时的权值相加,得到新的权值向量。
第四步:新的权值向量再与新的输入向量循环进行第一到第三步实现自适应。
由此,我们可以将系统分为五大模块:主控模块:主要产生时钟信号,给各模块提供时序信号触发各模块的启动和初始化;双口存储模块(包括输入数据存储模块、权值存储模块、误差信号存储模块等):存储各功能模块所需的数据和参数;自适应权值计算模块,误差计算模块:这两个模块可以合在一起,用于系数更新的白适应算法;空间滤波器乘加模块:完成滤波运算,得到输出结果。