水声信号的高精度连续延时型FPGA实时波束形成器的制作方法

文档序号:29621486发布日期:2022-04-13 13:26阅读:110来源:国知局
水声信号的高精度连续延时型FPGA实时波束形成器的制作方法
水声信号的高精度连续延时型fpga实时波束形成器
技术领域
1.本发明涉及一种水声信号的高精度连续延时型fpga实时波束形成器的实现,属于声纳信号处理技术领域。


背景技术:

2.所谓数字波束形成(digital beam forming,dbf)技术是阵列天线和信号处理基础上发展起来的一项新技术,已广泛应用于声纳与雷达技术领域。一方面,通过对某个方向上做波束形成处理可以使信号在此方向上获得最大输出。另一方面,利用波束形成处理技术可以有效抑制空间干扰,提高信号的信噪比。dbf的基本思想是通过阵元接收数据进行加权处理以控制天线阵的方向函数,使天线阵方向图在期望信号方向产生高增益窄波束,在干扰信号方向产生较深的零陷,达到空域滤波的目的。所以波束形成系统是现代声纳的核心部件,是声纳具有良好的战术、技术性能的基础。水声信号利用数字波束形成技术可以实现水下抗干扰,增强角分辨率,增强信噪比等目的。同时波束的特性由波束的导向矢量所控制,方便实现机动处理,从而使声纳阵列具有较好的自适应校正和低副瓣性能。
3.目前波束形成的实现方法主要有两种途径:一是频域相移加权的波束形成器;另一种是时域延迟的波束形成器。对于窄带信号,频域加权有着较好的效果,但是水声信号的频率偏移相对较大,并且水下信号频带较宽,采用时延波束形成更加合理。但是信号的采样率是有限的,这就导致时延并不总是精确,想要高精度的小数时延结果需要花费大量的算力进行插值拟合,功耗从而会上升不少。因此,如何又简便又精确的完成时延波束形成是值得深究的问题。
4.目前波束形成算法的实现主要有两种方式:一是采用arm、dsp芯片;另一种是采用fpga芯片。由于前者的cpu核数目不多且器件只能进行顺序执行程序,实时性要求比较的高的情况下此类芯片难以达到预计的效果,所以人们通常使用fpga芯片完成系统的设计。然而波束形成算法的处理速度往往是fpga系统性能的瓶颈所在。在需要多波束方向的实时处理的情况下,系统对于数据吞吐率以及运算两方面的要求都比较高,这对硬件实现提出了非常高的要求。目前,在已知的高速信号处理系统中,都是采用高速差分接口来进行数据传输,利用越来越高端的fpga来进行复杂的信号处理,往往还需要形成同时多波束,这就使得fpga内部的乘法器出现倍数的增长,乘法器数目从开始的几十个到后来的几百个,以至于现在的几千个,阵元以及波束越来越多,硬件整体规模越来越大。


技术实现要素:

5.发明目的:针对现有嵌入式系统串行编程计算实现水声信号波束形成处理速度缓慢,波束分辨率低,功耗过高,且达不到实时性要求的问题,本发明公开了一种水声信号的高精度连续延时型fpga实时波束形成器,该发明将利用fpga芯片里的ram资源以及基本运算器资源,通过搭建波束控制模块、采样数据存储模块、取址存储模块、系数存储模块以及向量乘法模块,并且预先设置好波束控制模块参数以及取址、系数存储模块初始值,通过实
时的采样和波束计算,实现了高精度、实时性强、低功耗的fpga波束形成器。
6.技术方案:一种水声信号的高精度连续延时型fpga实时波束形成器,完全利用fpga内部资源,精度高、实时性强、功耗低,具体实现包括如下功能模块:
7.(1)波束控制模块,用于设置波束形成相关参数;
8.(2)向量(矩阵)乘法器模块,用于设置定点乘法器、加法器的工作模式;
9.(3)通道数据存储模块,作为环形缓冲器存储采样数据;
10.(4)取址存储模块,配置波束形成时延表;
11.(5)系数存储模块,配置波束形成向量表。
12.所述波束控制模块中,采用如下设计来控制其他各模块的工作状态:
13.通过有限状态机来控制当前时钟(clock)下计算的波束号、阵元号、延迟单元,各个存储器以及运算器工作使能、存储器的地址控制线、读写控制线等等。共设置5个状态,状态名、功能和跳转条件如下表:
[0014][0015]
当状态机处于beam态以及last_beam态时,波束号、延迟单元号循环自增,并且读存储器使能、运算器计算使能置1,同时将当前波束号、延迟单元号、读使能、计算使能等信号从波束控制模块传出给到向量(矩阵)乘法器模块、取址存储模块和系数存储模块。
[0016]
在所述向量(矩阵)乘法器模块中,采用如下设计来完成小数时延滤波和加权波束形成:
[0017]
使用m个乘法器以及m-1个加法器,乘法器和加法器的连接形式为树状结构,叶子层为m个乘法器,每两个乘法器的输出端同时接一个加法器的输入端,每两个乘法器的输出端共同接一个加法器的输入端,最后一个加法器的输出端为树状结构根节点的输出,乘法器与加法器并行同时工作,协同完成向量内积运算。每个时钟可完成一次向量内积,多个时钟下分时计算,协同完成一次矩阵乘法。
[0018]
在所述通道数据存储模块中,采用如下方法缓冲采样数据,以满足时延要求:
[0019]
对于某一通道的采样数据,分配一个ram。当写数据时,读数据禁止,写地址wraddr_base从0开始计到最大,然后回到0继续写数据。当读数据时,写数据禁止,读地址是当前写地址为基址wraddr_base加上取址存储模块输出的读地址偏址rdaddr_offset的加和。可以证明,以当前写地址为环行缓冲器的末尾,越往前的数据是越旧的。
[0020]
为了节省资源,可以选择将双口ram的空间以地址线最高位取0或1分为两部分,分别存放两个通道的采样数据。
[0021]
在所述取址存储模块中,采用如下方法进行整数延时参数的提取和存储,来实现
小数滤波:
[0022]
现假设对于第i个阵元,第j个波束需要的模拟时延量为τ
ij
,采样率为fs。那么采样后的数字时延nτ
ij
应为
[0023]

ij
=τ
ijfs
[0024]
四舍五入取其整数部分
[0025]
p
ij
=round(nτ
ij
)
[0026]
其中p
ij
即为整数时延部分。对于所有i以及j,p
ij
有一个小于0的最小值p
min
[0027][0028]
为了不让在同一次采样里的所有波束下通道数据存储器的读地址覆盖当前写地址,须对整数延时做偏置处理
[0029]
p
ij
=p
ij-p
min
[0030]
此时得到的p
ij
都是正整数,将其存入对应存储器的对应位置。
[0031]
在所述系数存储模块中,采用如下方法进行小数滤波fir系数存储和加权波束形成系数存储:
[0032]
同取址存储模块中所述,nτ
ij
是第i个阵元对于第j个波束应做的数字时延量,为获取i阵元在此处的采样值,采用fir滤波的办法,公式为
[0033][0034]
其中round(x)是四舍五入取整函数,sinc(x)是辛克函数:
[0035][0036]
为计算方便k从-l取到+l,即做2l+1阶小数滤波。x[round(nτ
ij
+k)]的值由通道数据存储模块输出,sinc[(nτ
ij
+k)-round(nτ
ij
+k)]的值记作h(i,j,k);
[0037]
另一方面,有时对波束的性能指标有特殊要求,这时可能需要对阵元进行不同的加权,例如chebyshev加权法,权系数记作w(i,j);
[0038]
接着提前将两个乘积因子算好,f(i,j,k)=h(j,j,k)*w(i,j);
[0039]
由于f(i,j,k)的范围在(-1,+1),而fpga内采用定点数计算。接着把f(j,i,k)放大到m位宽的定点数,便于在fpga中存储计算,f(i,j,k)乘以2的m幂次方后取整:
[0040]
d(i,j,k)=round(f(i,j,k)*2m)
[0041]
最后把d(i,j,k)的值存入对应存储器的对应位置。
[0042]
有益效果:本发明提供的水声信号的高精度连续延时型fpga实时波束形成器,相比于传统的串行编程结构的波束形成方法具有如下优点:(1)采用流水线处理,全并行的结构,延时低,处理速度快,能够实时完成连续信号的多波束计算;(2)具有高阶小数延迟滤波和波束加权的能力,波束指向性好,精度高;(3)全部采用fpga内部资源实现,结构简单,体积小,功耗低。
附图说明
[0043]
图1为本发明实施例的整体框架示意图;
[0044]
图2为向量(矩阵)乘法器模块的实现框图;
[0045]
图3为接收阵元时域波形图;
[0046]
图4为最大方向波束时域波形图;
[0047]
图5为理论计算的波束能量图;
[0048]
图6为实际输出的波束能量图。
具体实施方式
[0049]
下面结合具体实施例,进一步阐明本发明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本技术所附权利要求所限定的范围。
[0050]
本实施例公开的一种水声信号的高精度连续延时型fpga实时波束形成器,将利用fpga芯片里的ram资源以及基本运算器资源,通过搭建波束控制模块、采样数据存储模块、取址存储模块、系数存储模块以及向量乘法模块,并且预先设置好波束控制模块参数以及取址、系数存储模块初始值,通过实时的采样和波束计算,实现了高精度、实时、连续的波束形成输出。
[0051]
如图1所示,波束控制模块,受通道数据存储模块采样存储完成信号来驱动本模块内的状态机工作,同时用于给其他模块提供工作参数和使能控制信号;向量(矩阵)乘法器模块,接受通道数据存储模块的通道数据以及系数存储模块的乘积系数,每个时钟完成一次向量内积,向量内积的结果即为要输出的波束结果;通道数据存储模块,作为环形缓冲器存储采样数据,给波束控制模块提供单次采样完成脉冲信号,同时把需要输出的通道数据给到向量(矩阵)乘法模块;取址存储模块,初始化配置波束形成时延表,受波束控制模块驱动,输出通道数据的地址偏移量给通道数据存储模块;系数存储模块,初始化配置波束形成向量表,受波束控制模块驱动,输出波束延时滤波和加权系数给向量(矩阵)乘法模块。
[0052]
本发明通过fpga芯片的部分资源组合以及模块例化使用,实现了高精度、连续实时采样下的波束形成,为目标估计和检测提供实时的低信噪比的多波束信号。
[0053]
本发明实例公开的一种水声信号的高精度连续延时型fpga实时波束形成器,在32阵元的均匀直线阵列的接收信号基础上进行,系统发射单频连续信号,水中声速c=1500m/s,目标散射体位于直线阵列法线方向-1.5
°
处,距离约10m,以fs=476khz的采样率对回波信号进行采样,采样结果送往波束形成模块(即本发明)进行波束形成处理。方法具体模块配置如下:
[0054]
波束控制模块中,采用如下设计来控制其他各模块的工作状态:
[0055]
通过有限状态机来控制当前时钟(clock)下计算的波束号、阵元号、延迟单元,各个存储器以及运算器工作使能、存储器的地址控制线、读写控制线等等。共设置5个状态,状态名、功能和跳转条件如下表:
[0056][0057]
当状态机处于beam态以及last_beam态时,波束号、延迟单元号循环自增,并且读存储器使能、运算器计算使能置1,同时将当前波束号、延迟单元号、读使能、计算使能等信号从波束控制模块传出给到向量(矩阵)乘法器模块、取址存储模块和系数存储模块。
[0058]
在波束控制模块中,阵元数为32,波束数为81,启动波束形成状态机在idle态,等待通道数据存储模块的波束形成计算开始请求。
[0059]
在波束控制模块中,调用32个乘法器以及31个加法器按照图2的方法布防连线,并等待波束控制模块的波束计算使能信号,以及通道数据存储模块的通道数据和系数存储模块的系数,进而开始计算输出波束。
[0060]
在通道数据存储模块中,调用16个双口ram,每个ram位宽16bit,深度1024,即地址线为10,ram端口a地址线寻址范围0-511,b端口地址线寻址范围512到1023,将双口ram分成两个单口ram。32个阵元的采样数据分别存入这32个存储空间中。当一次采样存储完成时,通道数据存储模块向波束控制模块发起波束计算允许开始请求。并且等待来自向量(矩阵)乘法器模块的读通道存储器使能和地址信号,从而输出需要参与波束计算的通道采样数据。
[0061]
在取址存储模块中,计算各阵元各波束下的整数时延。均匀线阵间距为发射信号的半波长d,信号频率fc,采样率fs》5fc,水下声速v取1500m/s,波束开角取相对于线阵法线
±
60
°
,波束间隔1.5
°
,从-60开始编号波束0~81。以为0号阵元为参考,对于第i个阵元,它在第j个波束上相对于参考阵元的声程差τ
ij

[0062][0063]
采样后的数字时延量为
[0064]

ij
=τ
ij
fs
[0065]
对nτ
ij
四舍五入取整
[0066]
p
ij
=round(nτ
ij
)
[0067]
对于所有i以及j,p
ij
有一个小于0的最小值p
min
[0068][0069]
本例中p
min
=-162为了不让在同一次采样里的所有波束下通道数据存储器的读地址覆盖当前写地址,须对整数延时做偏置处理
[0070]
p
ij
=p
ij
+162
[0071]
最后将p
ij
的结果存入到取址存储模块里。
[0072]
初始化完毕后,等待波束控制模块的读地址存储器使能信号和读地址信号,开始工作。
[0073]
在系数存储模块中,计算各阵元各波束下的滤波以及加权系数,本例进行七阶的小数时延滤波以及dolph-chebyshev加权。七阶滤波下对于第i个阵元第j个波束的小数时延结果应为
[0074][0075]
其中对应到采样点p
ij
+k处的滤波系数为
[0076]
h(i,j,k)=sinc[nτ
ij
+k-p
ij
)]
[0077]
另一方面,32个阵元进行dc加权,取副瓣电平-30db,得到加权矢量为
[0078]
w=[0.44,0.24,0.30,0.36,0.43,0.50,0.57,0.64,0.71,0.78,0.83,0.89,0.93,0.96,0.98,1,1,0.98,0.96,0.93,0.89,0.83,0.78,0.71,0.64,0.57,0.50,0.43,0.36,0.30,0.24,0.44]
[0079]
将两个系数提前乘积
[0080]
f(i,j,k)=h(i,j,k)*w(i)
[0081]
对f(i,j,k)放缩到m=16bit定点数,便于在fpga中存储计算
[0082]
d(i,j,k)=round(f(i,j,k)*2
15
)
[0083]
最后把d(i,j,k)的值存入系数存储模块里。
[0084]
初始化完毕后,等待波束控制模块的读系数存储器使能信号和读地址信号,开始工作。
[0085]
随着采样的不断进行,fpga上的波束形成器也在实时地输出高精度的连续波束结果,对采样信号和波束结果综合分析,得到部分采样信号的时域波形图3、波束能量最大方向的波束时域波形图4,可以看出信噪比有了显著的提高。图5为matlab仿真下的波束能量图,图6为fpga输出的高精度波束能量图,图形基本一致,波束指向精准,误差不超过
±
0.5
°

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1