CN108008665B - 基于单片fpga的大规模圆阵实时波束形成器及波束形成计算方法 - Google Patents

基于单片fpga的大规模圆阵实时波束形成器及波束形成计算方法 Download PDF

Info

Publication number
CN108008665B
CN108008665B CN201710941825.7A CN201710941825A CN108008665B CN 108008665 B CN108008665 B CN 108008665B CN 201710941825 A CN201710941825 A CN 201710941825A CN 108008665 B CN108008665 B CN 108008665B
Authority
CN
China
Prior art keywords
data
frequency domain
shift register
circular array
driving
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201710941825.7A
Other languages
English (en)
Other versions
CN108008665A (zh
Inventor
王军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
715th Research Institute of CSIC
Original Assignee
715th Research Institute of CSIC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 715th Research Institute of CSIC filed Critical 715th Research Institute of CSIC
Priority to CN201710941825.7A priority Critical patent/CN108008665B/zh
Publication of CN108008665A publication Critical patent/CN108008665A/zh
Application granted granted Critical
Publication of CN108008665B publication Critical patent/CN108008665B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0428Safety, monitoring
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S15/00Systems using the reflection or reradiation of acoustic waves, e.g. sonar systems
    • G01S15/88Sonar systems specially adapted for specific applications
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/26Pc applications
    • G05B2219/2656Instrumentation

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • General Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Automation & Control Theory (AREA)
  • Measurement Of Velocity Or Position Using Acoustic Or Ultrasonic Waves (AREA)

Abstract

本发明公开一种基于单片FPGA的大规模圆阵实时波束形成器及波束形成计算方法,由频域数据整理模块、驾驶向量计算模块、并行乘法模块三部分组成。充分利用圆阵的对称性,只需要计算一半阵元的驾驶向量,驾驶向量采用流水线CORDIC算法。驾驶向量和频域数据分别输入一个深度为N/2和N的移位寄存器,当深度为N的移位寄存器数据进入N个频域数据后,前后对称位置相加与驾驶向量相乘,节省了N/2个复数乘法器资源。由于采用N/2个复数乘法器并行进行复数乘法运算,一个时钟输出1个频点1个波束的数据,频域数据输入完毕时,同时完成第Nb个波束数据的输出,大大提高了波束形成的的效率。

Description

基于单片FPGA的大规模圆阵实时波束形成器及波束形成计算 方法
技术领域
本发明涉及高频声呐实时信号处理领域,主要是一种基于单片FPGA的大规模圆阵实时波束形成器及波束形成计算方法。
背景技术
波束形成技术是声呐信号处理的一项重要内容,在主动声呐和被动声呐中得到广泛应用,是衡量声呐性能优劣的一个重要指标,波束形成算法中庞大计算量是实时声呐系统必须克服的困难之一。
传统波束形成是采用通用数字信号处理器(Digital Signal Processing,DSP)实现,DSP是一种具有特殊结构的微处理器,通常用来快速实现各种算法中结构复杂的部分,同时具有软件更新速度快、通用性和灵活性强等优点。但受串行结构的限制,在实时信号处理系统中,对于数据率高、通道数量多、计算量大、但逻辑结构比较固定的算法则不能体现出其优势。
现场可编程门阵列(FPGA,Field Programmable Gate Array)是在复杂的可编程逻辑器件(CPLD,Complex Proogrammable Logic Device)的基础上发展起来的新型高性能可编程逻辑器件。FPGA的集成度很高,其器件密度从数万系统门到数千万系统门不等,可以完成极其复杂的时序与组合逻辑电路功能。除此之外,FPGA还有大量面向密集计算应用的DSP单元、块状RAM和高速通信的收发器单元,可以完成较为复杂的信号处理运算,FPGA尤其适合于乘法和累加(MAC)等重复性的DSP任务和实时控制,因此在复数乘法、数字滤波器设计和FFT等数字信号处理和实时控制应用中具有很大的优越性。
目前采用单片FPGA实现大规模阵列波束形成领域还处于起步阶段,对不同阵型的大规模阵列的波束形成计算还没有实际使用的方案。
发明内容
本发明的目的在于克服现有技术存在的不足,而提供一种基于单片FPGA的大规模圆阵实时波束形成器及波束形成计算方法。
本发明的目的是通过如下技术方案来完成的。这种基于单片FPGA的大规模圆阵实时波束形成器,它可以实现基带采样率60k,M(360)路阵元,Nb(360)个波束,Nf(2730)个频点的基带频域波束形成,在计算效率较传统的DSP波束形成器的性能有明显的提升,并且成本只有DSP波束形成器的1/10。该基于单片FPGA的大规模圆阵实时波束形成器由频域数据整理模块、驾驶向量计算模块、并行乘法模块三部分组成,形成一个频点、一个波束需要N个基元数据,利用圆阵的对称性,只需要N/2个复数乘法器,省了FPGA芯片中一半的乘法器资源,N为偶数。
本发明所述的这种基于单片FPGA的大规模圆阵实时波束形成器的波束形成计算方法,该方法包括如下步骤:
(1)频域数据整理
输入波束形成器的数据为M*Nf的矩阵,其中M为阵元数,Nf为频点数,将M*Nf的矩阵转置为Nf*M的矩阵;
(2)计算驾驶向量
驾驶向量计算采用流水线结构CORDIC算法,流水线结构实现CORDIC算法,只需要一个时钟周期就能输出一个数据;
(2)并行乘加运算
FPGA中内嵌有大量的乘法器,多个乘法器并行计算驾驶向量与频域数据的乘积,一个时钟输出一个频点1个波束的输出。
更进一步的,计算驾驶向量采用流水线CORDIC算法,一个时钟输出一个驾驶向量值,提高了驾驶向量计算的运算效率,利用正余弦的对称性,CORDIC算法计算驾驶向量需要的输入值按照表1旋转模式进行预处理。
更进一步的,利用圆阵的对称性,计算N/2个阵元位置的驾驶向量,然后输入1个深度为N/2的移位寄存器;并行乘加计算之前需要1个深度为N的移位寄存器对整理后的频域数据进行先进先出,当进入N个数据后,前后对称相加,输出N/2个频域数据;深度为N的移位寄存器进入N个频域数据后,以后每输入一个数据,移位寄存器进行移位操作,完成一个数据更新,同时开始与深度为N/2的移位寄存器寄存的N/2个驾驶向量相乘,M+N-1个数据输入完成时,完成一个频点Nb个波束的输出。充分利用FPGA的并行特性,波束形成的乘法运算采用N/2个复数乘法器并行实现,复数乘法器和复数加法器采用FPGA自带的IP核,控制复数乘法器和复数加法器的时延以满足FPGA芯片高速处理的时序要求。
本发明的有益效果为:采用FPGA方案具有信号处理设备小型化,编程灵活,成本低的优点。由于采用N/2个复数乘法器并行进行复数乘法运算,一个时钟输出1个频点1个波束的数据,频域数据输入完毕时,同时完成第Nb个波束数据的输出,大大提高了波束形成的的效率。
附图说明
图1为声呐圆阵阵元布置示意图;
图2为数据扩展示意图;
图3为图2CORDIC流水线算法结构示意图;
图4为并行乘加示意图。
具体实施方式
下面将结合附图对本发明做详细的介绍:
图1为声呐圆阵阵元布置示意图,用N(128)个基元形成波束,共产生Nb(360)个均匀分布的宽带波束。在阵艏对准正北方向时,第k根谱线的第l#波束为:
Figure BDA0001430823460000021
Figure BDA0001430823460000022
Figure BDA0001430823460000023
(3)式中基阵半径为R,声速C=1500m/s,Δf为频率分辨率。
输入波束形成器的数据为M*Nf的矩阵,存放在外存DDR中,基于单片FPGA的大规模圆阵实时波束形成器是在频域进行的,如式(1)所示,波束形成需要利用数据为每个频点阵元的数据,由于DDR读写需要定时刷新,连续地址读写数据的效率较高,跳点读写数据效率很低,所以需要对输入矩阵转置,把输入矩阵转置为维数为Nf*M的矩阵,这样就可以连续读取一个频点M路数据。
为了避免在DDR中跳点读写数据,矩阵转置采取先在FPGA的内存中完成小部分矩阵的转置,然后按照一定的地址计算算法写入DDR中,转置算法采用乒乓缓存读写的方式,顺序读出转置后的矩阵。
完成矩阵转置后,读取一个频点M个阵元数据,由于完成一个波束需要利用N个阵元数据,形成Nb个波束需要(M+N/2+N/2-1)路,如图2所示,对一个频点M路数据前后拼接成(M+N/2+N/2-1)路。
数据扩展在FPGA中的RAM中完成,1~N/2-1点数据写入RAM中的地址M+1~M+N/2+N/2-1,1~M点数据写入RAM中的地址M+N,M-N/2~M点数据写入RAM中的地址1~N/2,然后顺序读取(M+N/2+N/2-1)点扩展后数据,数据扩展算法通过状态机乒乓读写的方式完成。
如图3所示,驾驶向量采用流水线CORDIC算法。
频域波束形成需要实时计算驾驶向量,驾驶向量计算主要通过CORDIC算法来实现,CORDIC算法通过一系列简单的移位和加/减运算的迭代实现了矢量坐标的旋转,矢量v1=(x1,y1)旋转角度
Figure BDA0001430823460000036
得到矢量v2=(x2,y2)则有
Figure BDA0001430823460000031
进一步整理可得:
Figure BDA0001430823460000032
若每次旋转的角度
Figure BDA0001430823460000037
的正切值是2的整数次幂,即
Figure BDA0001430823460000038
Figure BDA0001430823460000033
假若以δk代表矢量旋转方向,+1代表逆时针旋转,-1代表顺时针旋转,则第k步旋转可以由下式表示
Figure BDA0001430823460000034
式中
Figure BDA0001430823460000035
为模校正因子,当字长一定时,该因子是一个常数。引入性能变量zi,使算法的迭代更具有实用性,以zi代表第i旋转后剩余的角度值,并将校正放在最后进行,这样每一次的迭代运算可以简化为:
Figure BDA0001430823460000041
其中
Figure BDA0001430823460000042
每次迭代运算可分解为一系列的加减和移位操作,不需要乘法器和除法器之类的复杂电路,而tan-1(2-i)可以预存在查找表中,这也是CORDIC算法的优势所在。
经过n(n→∞)次旋转得到最终结果为:
Figure BDA0001430823460000043
令x0=1/An,y0=0,可得到目标角度的正、余弦数值
Figure BDA0001430823460000044
式中,要求初始化角度z0为θ,由于
Figure BDA0001430823460000045
其中θi=tan-1(2-i),则有
Figure BDA0001430823460000046
这表明目标角度的取值范围为[-99.9°,99.9°],而在计算驾驶向量中需要覆盖[-180°,180°],考虑到正余弦的对称性,通常采用下表所示的预处理
表1旋转模式预处理
目标角度 预旋转角度 预旋转结果 后目标角度
[0,π/2] 0 (x<sub>0</sub>,y<sub>0</sub>) θ
[π/2,π] π/2 (-y<sub>0</sub>,x<sub>0</sub>) θ-π/2
[-π/2,0] 0 (x<sub>0</sub>,y<sub>0</sub>) θ
[-π,-π/2] -π/2 (y<sub>0</sub>,-x<sub>0</sub>) θ+π/2
计算驾驶向量时需要把驾驶向量的输入值对2π求余运算把输入值转化到[0,2π]区间,然后按照旋转模式预处理方式进行预处理,最后通过CORDIC算法实时计算出驾驶向量。
CORDIC算法通常有两种,一种是循环结构,另一种是流水线结构。循环结构是CORDIC算法中一种最直接的实现方法,只需要一级CORDIC运算迭代单元,然后在系统时钟的驱动下,将本级的输出反馈回去作为本级的输入,通过同一级完成迭代运算。这种方法虽然很直观,但是为了将计算结果提供给下一次迭代运算而导致带来许多额外的资源消耗,而且最大的缺点是运算速度较慢(需要n-1个时钟周期才能输出一个数据),不利于高速实时处理。
在高速实时计算中,通常采用k级CORDIC运算单元组成的流水线结构。流水线结构实现CORDIC算法,只需要一个时钟周期就能输出一个数据,为数据的高速实时处理提供前提。每一级实现的功能是根据式(5)进行一次迭代,移位的位数等于当前的迭代级数,加减法选择由该级中z的最高位(符号位)决定,得到下一级x,y和z的值。经过k级流水线运算后,z的值变为0,x和y的值则为初始值z0的正弦和余弦值。每一级的电路包括2个移位器和3个加(减)法器,级与级之间直接相连,不需要额外的寄存器。
Figure BDA0001430823460000051
可将该小数转换为二进制数后,存储于存储单元中,为每一级流水提供查找表。
如图4所示,频域数据整理和驾驶向量计算完成后,对应的频点数据和驾驶向量进行乘加运算,完成Nf个频点Nb个波束的波束形成。
形成一个频点一个波束需要N路数据,由于圆阵的驾驶向量是对称的,为了节省FPGA的逻辑资源以及乘法器,只需要计算N/2个阵元位置的驾驶向量,同时一个频点N路数据按照对称位置相加形成N/2路数据,这样N点的点乘运算就可以用N/2个复数乘法器实现,节省了N/2个复数乘法器。
流水线CORDIC算法计算出某个频点的驾驶后,把驾驶向量输入深度为N/2移位寄存器,同时对应频点数据扩展后为(M+N/2+N/2-1)点的数据也输入深度为N移位寄存器,然后按照对称位置相加形成N/2路数据。当深度为N/2的移位寄存器满时,寄存当前的驾驶向量的N/2个值(圆阵同一个频点不同波束的驾驶向量是相同的,CORDIC算法的延迟周期最大为32个时钟周期,当深度为N移位寄存器满时,N/2个驾驶向量值已计算完毕),频点数据的移位寄存器为N时,寄存当前时钟N/2个对称位置相加后的频点数据,与寄存的N/2个驾驶向量值相对应的点进行并行乘法运算,然后进行N/2个并行乘法的结果并行相加,输出一个频点一个波束形成结果,这样一个时钟完成N/2次乘加运算,(M+N/2+N/2-1)个频点数据前N个数据输入深度为N移位寄存器之后,以后每输入一个数据,移位寄存器进行移位操作,完成一个数据更新,同时完成与驾驶向量对应点的N/2次并行乘加运算,输出一个波束形成结果,第(M+N/2+N/2-1)个数据输入移位寄存器,也就完成了当前频点频点Nb个波束形成结果。
采用流水线CORDIC算法和并行乘法算法以及并行加法,一个时钟完成N/2个数据的乘加运算,一个(M+N/2+N/2-1)个数据输出完毕时,Nb个波束形成也同时完成,大大提高了波束形成的的效率。
可以理解的是,对本领域技术人员来说,对本发明的技术方案及发明构思加以等同替换或改变都应属于本发明所附的权利要求的保护范围。

Claims (2)

1.一种基于单片FPGA的大规模圆阵实时波束形成器的波束形成计算方法,其特征在于:大规模圆阵实时波束形成器由频域数据整理模块、驾驶向量计算模块、并行乘法模块三部分组成,形成一个频点、一个波束需要N个基元数据,利用圆阵的对称性,只需要N/2个复数乘法器,N为偶数,该方法包括如下步骤:
(1)频域数据整理
输入波束形成器的数据为M*Nf的矩阵,其中M为阵元数,Nf为频点数,将M*Nf的矩阵转置为Nf*M的矩阵;
(2)计算驾驶向量
驾驶向量计算采用流水线结构CORDIC算法,流水线结构实现CORDIC算法,只需要一个时钟周期就能输出一个数据;
(3)并行乘加运算
FPGA中内嵌有大量的乘法器,多个乘法器并行计算驾驶向量与频域数据的乘积,一个时钟输出一个频点1个波束的输出;
利用圆阵的对称性,计算N/2个阵元位置的驾驶向量,然后输入1个深度为N/2的移位寄存器;并行乘加计算之前需要1个深度为N的移位寄存器对整理后的频域数据进行先进先出,当进入N个数据后,前后对称相加,输出N/2个频域数据;深度为N的移位寄存器进入N个频域数据后,以后每输入一个数据,移位寄存器进行移位操作,完成一个数据更新,同时开始与深度为N/2的移位寄存器寄存的N/2个驾驶向量相乘,M+N-1个数据输入完成时,完成一个频点Nb个波束的输出。
2.根据权利要求1所述的基于单片FPGA的大规模圆阵实时波束形成器的波束形成计算方法,其特征在于:利用正余弦的对称性,CORDIC算法计算驾驶向量需要的输入值按照旋转模式进行预处理。
CN201710941825.7A 2017-10-11 2017-10-11 基于单片fpga的大规模圆阵实时波束形成器及波束形成计算方法 Active CN108008665B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710941825.7A CN108008665B (zh) 2017-10-11 2017-10-11 基于单片fpga的大规模圆阵实时波束形成器及波束形成计算方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710941825.7A CN108008665B (zh) 2017-10-11 2017-10-11 基于单片fpga的大规模圆阵实时波束形成器及波束形成计算方法

Publications (2)

Publication Number Publication Date
CN108008665A CN108008665A (zh) 2018-05-08
CN108008665B true CN108008665B (zh) 2020-07-10

Family

ID=62051663

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710941825.7A Active CN108008665B (zh) 2017-10-11 2017-10-11 基于单片fpga的大规模圆阵实时波束形成器及波束形成计算方法

Country Status (1)

Country Link
CN (1) CN108008665B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109146804B (zh) * 2018-07-26 2021-03-16 南京航空航天大学 一种基于fpga的sar图像几何失真校正方法
CN114374140A (zh) * 2021-12-29 2022-04-19 杭州微伽量子科技有限公司 一种用于激光锁相的高速低延迟数字pid电路及其工作方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101877577A (zh) * 2009-04-28 2010-11-03 大唐移动通信设备有限公司 有限冲激响应滤波器的实现方法和有限冲激响应滤波器
CN102082591A (zh) * 2010-12-13 2011-06-01 武汉滨湖电子有限责任公司 一种圆阵列天线数字波束形成方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101877577A (zh) * 2009-04-28 2010-11-03 大唐移动通信设备有限公司 有限冲激响应滤波器的实现方法和有限冲激响应滤波器
CN102082591A (zh) * 2010-12-13 2011-06-01 武汉滨湖电子有限责任公司 一种圆阵列天线数字波束形成方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
基于FPGA的子空间分解方位估计算法的实现研究;罗辉果;《中国优秀硕士论文全文数据库》;20130301;正文37页 *
非法作业监听设备信号处理系统测向算法FPGA设计;巩庆伟;《中国优秀硕士论文全文数据库》;20160301;正文40-46页 *

Also Published As

Publication number Publication date
CN108008665A (zh) 2018-05-08

Similar Documents

Publication Publication Date Title
CN107704916B (zh) 一种基于fpga实现rnn神经网络的硬件加速器及方法
CN101782893B (zh) 可重构数据处理平台
US6629117B2 (en) Method for computing a fast fourier transform and associated circuit for addressing a data memory
CN108733348B (zh) 融合向量乘法器和使用其进行运算的方法
CN105912501B (zh) 一种基于大规模粗粒度可重构处理器的sm4-128加密算法实现方法及系统
CN103955447B (zh) 基于dsp芯片的fft加速器
CN109977347B (zh) 一种支持多模式配置的可重构fft处理器
CN110361691B (zh) 基于非均匀阵列的相干信源doa估计fpga实现方法
CN102945224A (zh) 基于fpga的高速可变点fft处理器及其处理方法
CN101847137B (zh) 一种实现基2fft计算的fft处理器
CN104268122A (zh) 一种可变点数的浮点fft处理器
CN108008665B (zh) 基于单片fpga的大规模圆阵实时波束形成器及波束形成计算方法
US11922133B2 (en) Processor and method for processing mask data
CN103516643A (zh) 一种mimo检测预处理装置及方法
CN108021781A (zh) 一种可参数化的fft ip核设计和优化方法
CN116710912A (zh) 一种矩阵乘法器及矩阵乘法器的控制方法
Yang et al. Complex division and square-root using CORDIC
CN102129419B (zh) 基于快速傅立叶变换的处理器
CN109144472B (zh) 一种二元扩域椭圆曲线的标量乘法及其实现电路
CN110737612A (zh) 一种含有存储内计算的处理器
CN109446478A (zh) 一种基于迭代和可重构方式的复协方差矩阵计算系统
CN111178492B (zh) 计算装置及相关产品、执行人工神经网络模型的计算方法
WO2013097235A1 (zh) 并行位反序装置和方法
CN107657078B (zh) 基于fpga的超声相控阵浮点聚焦发射实现方法
CN105785348A (zh) 一种基于zynq-7000平台的声纳信号处理方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant