CN108008665A - 基于单片fpga的大规模圆阵实时波束形成器及波束形成计算方法 - Google Patents
基于单片fpga的大规模圆阵实时波束形成器及波束形成计算方法 Download PDFInfo
- Publication number
- CN108008665A CN108008665A CN201710941825.7A CN201710941825A CN108008665A CN 108008665 A CN108008665 A CN 108008665A CN 201710941825 A CN201710941825 A CN 201710941825A CN 108008665 A CN108008665 A CN 108008665A
- Authority
- CN
- China
- Prior art keywords
- data
- wave beam
- battle array
- frequency domain
- vector
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
- G05B19/0428—Safety, monitoring
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO 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/00—Systems using the reflection or reradiation of acoustic waves, e.g. sonar systems
- G01S15/88—Sonar systems specially adapted for specific applications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/26—Pc applications
- G05B2219/2656—Instrumentation
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Acoustics & Sound (AREA)
- Computer Networks & Wireless Communication (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的大规模圆阵实时波束形成器及波束形成计算方法。
背景技术
波束形成技术是声呐信号处理的一项重要内容,在主动声呐和被动声呐中得到广泛应用,是衡量声呐性能优劣的一个重要指标,波束形成算法中庞大计算量是实时声呐系统必须克服的困难之一。
传统波束形成是采用通用数字信号处理器(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#波束为:
(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)旋转角度得到矢量v2=(x2,y2)则有
进一步整理可得:
若每次旋转的角度的正切值是2的整数次幂,即则假若以δk代表矢量旋转方向,+1代表逆时针旋转,-1代表顺时针旋转,则第k步旋转可以由下式表示
式中为模校正因子,当字长一定时,该因子是一个常数。引入性能变量zi,使算法的迭代更具有实用性,以zi代表第i旋转后剩余的角度值,并将校正放在最后进行,这样每一次的迭代运算可以简化为:
其中
每次迭代运算可分解为一系列的加减和移位操作,不需要乘法器和除法器之类的复杂电路,而tan-1(2-i)可以预存在查找表中,这也是CORDIC算法的优势所在。
经过n(n→∞)次旋转得到最终结果为:
令x0=1/An,y0=0,可得到目标角度的正、余弦数值
式中,要求初始化角度z0为θ,由于其中θi=tan-1(2-i),则有
这表明目标角度的取值范围为[-99.9°,99.9°],而在计算驾驶向量中需要覆盖[-180°,180°],考虑到正余弦的对称性,通常采用下表所示的预处理
表1旋转模式预处理
目标角度 | 预旋转角度 | 预旋转结果 | 后目标角度 |
[0,π/2] | 0 | (x0,y0) | θ |
[π/2,π] | π/2 | (-y0,x0) | θ-π/2 |
[-π/2,0] | 0 | (x0,y0) | θ |
[-π,-π/2] | -π/2 | (y0,-x0) | θ+π/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个加(减)法器,级与级之间直接相连,不需要额外的寄存器。可将该小数转换为二进制数后,存储于存储单元中,为每一级流水提供查找表。
如图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 (4)
1.一种基于单片FPGA的大规模圆阵实时波束形成器,其特征在于:由频域数据整理模块、驾驶向量计算模块、并行乘法模块三部分组成,形成一个频点、一个波束需要N个基元数据,利用圆阵的对称性,只需要N/2个复数乘法器,N为偶数。
2.一种采用如权利要求1所述的基于单片FPGA的大规模圆阵实时波束形成器的波束形成计算方法,其特征在于:该方法包括如下步骤:
(1)频域数据整理
输入波束形成器的数据为M*Nf的矩阵,其中M为阵元数,Nf为频点数,将M*Nf的矩阵转置为Nf*M的矩阵;
(2)计算驾驶向量
驾驶向量计算采用流水线结构CORDIC算法,流水线结构实现CORDIC算法,只需要一个时钟周期就能输出一个数据;
(2)并行乘加运算
FPGA中内嵌有大量的乘法器,多个乘法器并行计算驾驶向量与频域数据的乘积,一个时钟输出一个频点1个波束的输出。
3.根据权利要求2所述的基于单片FPGA的大规模圆阵实时波束形成器的波束形成计算方法,其特征在于:利用正余弦的对称性,CORDIC算法计算驾驶向量需要的输入值按照旋转模式进行预处理。
4.根据权利要求2所述的基于单片FPGA的大规模圆阵实时波束形成器的波束形成计算方法,其特征在于:利用圆阵的对称性,计算N/2个阵元位置的驾驶向量,然后输入1个深度为N/2的移位寄存器;并行乘加计算之前需要1个深度为N的移位寄存器对整理后的频域数据进行先进先出,当进入N个数据后,前后对称相加,输出N/2个频域数据;深度为N的移位寄存器进入N个频域数据后,以后每输入一个数据,移位寄存器进行移位操作,完成一个数据更新,同时开始与深度为N/2的移位寄存器寄存的N/2个驾驶向量相乘,M+N-1个数据输入完成时,完成一个频点Nb个波束的输出。
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 true CN108008665A (zh) | 2018-05-08 |
CN108008665B 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) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109146804A (zh) * | 2018-07-26 | 2019-01-04 | 南京航空航天大学 | 一种基于fpga的sar图像几何失真校正方法 |
CN114374140A (zh) * | 2021-12-29 | 2022-04-19 | 杭州微伽量子科技有限公司 | 一种用于激光锁相的高速低延迟数字pid电路及其工作方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101877577A (zh) * | 2009-04-28 | 2010-11-03 | 大唐移动通信设备有限公司 | 有限冲激响应滤波器的实现方法和有限冲激响应滤波器 |
CN102082591A (zh) * | 2010-12-13 | 2011-06-01 | 武汉滨湖电子有限责任公司 | 一种圆阵列天线数字波束形成方法 |
-
2017
- 2017-10-11 CN CN201710941825.7A patent/CN108008665B/zh active Active
Patent Citations (2)
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)
Title |
---|
巩庆伟: "非法作业监听设备信号处理系统测向算法FPGA设计", 《中国优秀硕士论文全文数据库》 * |
罗辉果: "基于FPGA的子空间分解方位估计算法的实现研究", 《中国优秀硕士论文全文数据库》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109146804A (zh) * | 2018-07-26 | 2019-01-04 | 南京航空航天大学 | 一种基于fpga的sar图像几何失真校正方法 |
CN109146804B (zh) * | 2018-07-26 | 2021-03-16 | 南京航空航天大学 | 一种基于fpga的sar图像几何失真校正方法 |
CN114374140A (zh) * | 2021-12-29 | 2022-04-19 | 杭州微伽量子科技有限公司 | 一种用于激光锁相的高速低延迟数字pid电路及其工作方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108008665B (zh) | 2020-07-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101782893B (zh) | 可重构数据处理平台 | |
CN103677736B (zh) | 数字信号处理器的数据路径电路 | |
CN107392309A (zh) | 一种基于fpga的通用定点数神经网络卷积加速器硬件结构 | |
CN106775599A (zh) | 递归神经网络的多计算单元粗粒度可重构系统及方法 | |
CN105468335A (zh) | 流水级运算装置、数据处理方法及片上网络芯片 | |
CN102541774B (zh) | 多粒度并行存储系统与存储器 | |
CN107797962A (zh) | 基于神经网络的计算阵列 | |
CN1017283B (zh) | 坐标旋转数字计算机的复数乘法器 | |
CN103488459B (zh) | 一种改进的高基cordic方法及基于其的复数乘法运算单元 | |
CN109977347B (zh) | 一种支持多模式配置的可重构fft处理器 | |
CN101109973A (zh) | 一种基于直接数字频率合成器的波形发生器 | |
US8805914B2 (en) | Method and apparatus for performing numerical calculations | |
CN109146067A (zh) | 一种基于FPGA的Policy卷积神经网络加速器 | |
CN100511125C (zh) | 一种cordic算法的实现装置 | |
CN108008665A (zh) | 基于单片fpga的大规模圆阵实时波束形成器及波束形成计算方法 | |
CN102495721A (zh) | 一种支持fft加速的simd向量处理器 | |
CN106940689A (zh) | 基于Jacobi迭代算法的高精度矩阵特征值分解实现方法 | |
CN103034621B (zh) | 基2×k并行fft架构的地址映射方法及系统 | |
CN106027045B (zh) | 基于改进cordic算法的直接数字频率合成器 | |
CN104504205B (zh) | 一种对称fir算法的并行化二维分割方法及其硬件结构 | |
CN110348249A (zh) | 一种基于存储器内计算的处理器结构 | |
CN106951394A (zh) | 一种可重构定浮点通用fft处理器 | |
CN116710912A (zh) | 一种矩阵乘法器及矩阵乘法器的控制方法 | |
CN102129419B (zh) | 基于快速傅立叶变换的处理器 | |
CN102364456A (zh) | 64点fft计算器 |
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 |