找回密码
 注册会员
更新自动建库工具PCB Footprint Expert 2024.04 Pro / Library Expert 破解版

[嵌入式/ARM] 基于FPGA的自适应波束形成算法实现

[复制链接]
admin 发表于 2013-3-20 20:12:23 | 显示全部楼层 |阅读模式

本文包含原理图、PCB、源代码、封装库、中英文PDF等资源

您需要 登录 才可以下载或查看,没有账号?注册会员

×
 1 引 言
     在雷达及声纳信号处理系统中,波束形成算法通常采用DSP软件编程实现,控制逻辑电路采用CPLD来完成,这种方法具有软件编程灵活、功能易于扩展的优点,但对于实时性能要求很高的系统,如雷达、声纳探测和超声成像等系统中为了提高对目标变化实时跟踪和测量,就必须尽量缩短信号处理的时间,过长的运算处理时间会对水下目标的探测性能产生较大的影响。声纳的检测能力就会迅速下降,以至完全失去检测能力,而自适应波束形成技术(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所示。
    20121107053557507083759.jpg
     基于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算法就变成:
    20121107053557632073760.jpg
     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)相乘得到的积与延时的权值相加,得到新的权值向量。
     第四步:新的权值向量再与新的输入向量循环进行第一到第三步实现自适应。
     由此,我们可以将系统分为五大模块:主控模块:主要产生时钟信号,给各模块提供时序信号触发各模块的启动和初始化;双口存储模块(包括输入数据存储模块、权值存储模块、误差信号存储模块等):存储各功能模块所需的数据和参数;自适应权值计算模块,误差计算模块:这两个模块可以合在一起,用于系数更新的白适应算法;空间滤波器乘加模块:完成滤波运算,得到输出结果。
    20121107053557803943761.jpg
     2.2.1 控制模块
     输入信号和权值是8位的复数数据,通过控制模块选择乘法操作的操作数,两个复数信号相乘的4种组合00,11,01,10可以完成实部和虚部之间4个乘法运算,四种情况控制模块输出的控制信号分别为ST0,ST1,ST2,ST3。
     其中,clk_regbt用来控制乘法器完成乘法,counterbt用来控制乘数的位选,clk_reg用来控制运算新数的进入、上次计算的完毕和结果的输出。
     2.2.2 存储模块
     一种存储模块,它包括:用于根据外部指令/地址信号来产生内部信号的指令/地址寄存器,且所述的指令/地址寄存器件带有一个输出晶体管;被分成第一和第二两组的多个存储器件;用于连接所述的指令/地址寄存器件和所述的存储器件的布线;和用于安装所述的指令/地址寄存器件和所述的存储器件的基板;所述的布线包括:从所述的指令/地址寄存器件延伸至第一个分支结点的第一段布线;从第一个分支结点延伸至第二个分支结点的第二段布线;从第一个分支结点延伸至第三个分支结点的第三段布线;从第二个分支结点分出延伸至所述的第一组存储器件的第四段布线;和从第三个分支结点分出延伸至第二组存储器件的第五段布线;和所述的指令/地址寄存器件包括:阻抗调节器,用于调节从所述的指令/地址寄存器件和第一段布线之间的连接点看去所述的指令/地址寄存器件的输出阻抗,通过调节该阻抗调节器,可使所述的输出阻抗在内部信号的工作电压范围内基本保持不变;和上升时间/下降时间调节器,用于将内部信号的上升时间和下降时间调节至特定值。
     存储模块采用8位和16位双口RAM(如图3所示)作为信号数据和权值数据的存入和读取存储器,分别用来存放输入信号x、权值ω和误差e,分别由控制信号clkregbt,clk_regw和clk_rege来控制信号的写入和读出。其中x_ram用来存放输入信号;w_ram存放权值,其输入为系数更新模块的输出,输出为更新后的权值。
     2.2.3 自适应处理及复数乘加器模块
     数字波束形成器是通过加权因子对空间不同阵元接收信号的加权求和而成的。由于加权因子相当于滤波器系数,而输入的信号为空间位置不同的阵元的接收信号。所以可将数字波束形成器等同于一个空域滤波器来实现。
    20121107053557850823762.jpg
     3 系统仿真与验证
     本文设计核心部分是基于Stratix系列EPlS10芯片设计的分别对I/Q两路原始数据进行DLMS自适应算法和复数乘加运算,在QuartusⅡ环境下用VHDL语言编写了各功能模块,并进行了仿真,共占用了2 703个逻辑单元,同时应用Matlab对数字结果进行波形仿真,以下为仿真验证的结果。
     图5为主控模块的仿真波形,其中ST0,ST1,ST2,ST3为复数乘法的4种组合,clk_regbt用来控制乘法器完成乘法,counter_bt用来控制乘数的位选,clk_reg用来控制运算新数的进入、上次计算的完毕和结果的输出。
    20121107053557897693763.jpg
     图6为复数乘加模块功能仿真结果,dc_out,ds_out,xc_out,xs_out分别是输入信号和期望信号的实部和虚部,ec_out,es_out,yc_out,ys_out分别为误差和滤波输出的实部和虚部。
    20121107053557960193764.jpg
     图7为系统仿真测试结果:系统预形成波束方向为0°方向,干扰从45°传来,通过仿真结果可以看出,主波束在0°方向形成,和预形成主波束吻合,在45°干扰方向形成零陷,并且提高了主波束的增益,满足系统的设计要求。
    20121107053558038313765.jpg
     4 结 语
     自适应DBF是现代声纳阵列信号处理的关键技术之一,本文介绍了利用FPGA芯片实现的自适应BDF结构,给出了相应的硬件设计和仿真验证,采用FPGA结构,硬件成本低,在自适应阵列信号处理系统中具有很好的应用前景,给公司到来很多的发展空间。
*滑块验证:
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

QQ|手机版|MCU资讯论坛 ( 京ICP备18035221号-2 )|网站地图

GMT+8, 2024-12-22 23:49 , Processed in 0.062406 second(s), 10 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表