一种针对LFMCW辐射源进行L阵列DBF测角方法
文献发布时间:2024-04-18 19:58:30
技术领域
本发明属于雷达信号处理领域,具体涉及一种针对线性调频连续波(LFMCW)信号处理系统上的数字波束形成(DBF)测角方法。
背景技术
近年来,LFMCW雷达凭借其体积小,无距离盲区,发射功率低,被截获概率低等优点,被广泛应用与军事探测及安全防护领域。国外以将基于逆SAR技术的线性调频连续波雷达,用于对战区内目标的识别成像;同时在地面装甲的主动探测防御、自适应导航也以LFMCW雷达为主。因此对于LFMCW辐射源的探测技术在需求中得以逐步发展。
早期由于射频器件不够成熟,各个接收通道之间的同步困难,所以无法对各个通道进行空域的积累;后来随着射频器件逐渐成熟,各个接收通道实现同步,在信号处理过程中可以通过对各个接收通道的信号进行数字加权,实现对特定方向的空域积累。
一般来说信号处理机中包括用于信号并行处理的可编程逻辑单元和用于复杂计算的串行计算单元。对于LFMCW体制信号的处理,通常采用的是FPGA+DSP架构,但是由于FPGA和DSP是两个独立的芯片,所以之间的数据传输速率受到电路板走线和接口协议的限制,虽然在一些算法简单、数据量少的信号处理场景中影响不大,但是当系统的算法复杂度提升,需要传输的数据过多,那么FPGA和DSP之间的数据传输速率就会成为LFMCW信号实时处理的瓶颈。对于有多个接收单元阵列接收机来说,如果采用传统阵列波束形成算法对接收信号进行处理测角,需形成多路数字波束对侦察区域进行覆盖,对每个数字波速进行处理后通过和差比值确定目标所在波束及角度,该处理方法由于要对每个波束进行完整处理,导致数据过于庞大,搜索时长变长,而FPGA的逻辑资源有限,即使FPGA有并行处理的优势,但是也很难对同一阵列的所有指向的回波并行处理,其次FPGA的运算能力有限,后续处理需要依靠运算单元,但是一方面数据量过大会导致串行的计算单元处理时间过长;另一方面数据从FPGA搬移到具有浮点运算能力的串行运算单元时,也要消耗一定处理时间,影响雷达系统的实时处理能力。
发明内容
本发明提出了一种针对LFMCW辐射源进行L阵列DBF测角方法,在FPGA内将L阵列接收到的数据进行下变频和抽取滤波然后按两个维度的线形阵列处理,利用FPGA并行处理的优势,在DBF处理时分搜索和处理并行的两路,然后利用FFT的IP对两个线形阵列的思路和差波束进行FFT处理,将结果转化为单精度浮点数后利用Zynq的AXI IP将FPGA内的数据传输给ARM进行后续处理和角度转换。
实现本发明的技术解决方案为:一种针对LFMCW辐射源进行L阵列DBF测角方法,其特征在于,步骤如下:
步骤一:将信号处理机AD采集到的各路数字信号分别进行数字下变频和抽取滤波,然后经过FIFO缓存,FIFO存满后将数据读出,同时ARM按需求配置ROM1和ROM2的寻址空间M和N,对应两个线阵所搜索的波束个数,转入步骤二。
步骤二:将抽取滤波后横向接收单元对应的各路数据,将上述横向接收单元对应的各路数据和ROM1地址为1~M的加权因子循环相乘,得到和波束平方值最大的加权因子地址,缓存该加权因子地址作为波束序号,并得到一组对应的横向最大和差波束;将抽取滤波后纵向接收单元对应的各路数据,将上述纵向接收单元对应的各路数据和ROM2地址为1~N的加权因子循环相乘,得到和波束平方值对大的加权因子地址,缓存该加权因子地址作为波束序号,并得到一组对应的纵向最大和差波束,转入步骤三。
步骤三:从ROM中读出与FFT点数对应的窗函数采样点分别与两组和差波束相乘,得到和差波束加窗处理数据,完成加窗处理降低旁瓣,然后将和差波束加窗处理数据作为FFT IP核的输入,进行FFT运算,得到和差波束傅里叶变换数据,转入步骤四。
步骤四:将和差波束傅里叶变换数据输入滑窗阈值截取模块,在滑窗阈值截取模块中对和差波束傅里叶变换数据进行处理,得到目标所在和波束加权因子对应步骤二中的ROM1、ROM2地址;通过幅度上下限确定所定点数据需位数进行截断后将结果转换为浮点值,将数据转换为单精度浮点数后将和差波束傅里叶变换浮点数据缓存到FIFO,实现从FFT输出时钟到AXI传输时钟的时钟域变换和数据位宽调整;滑窗阈值截取模块采用快时间维度和不同波束维度的两维滑窗,每个维度采用寄存器对极值进行缓存,在时间维度实现信号流水处理的同时实时比较得到信号极值对应的和差波束傅里叶变换浮点数据,从而在波束维度选取目标所在和波束,转入步骤五。
步骤五:等待FIFO存到编程满后,编辑AXI IP工作时钟,本发明利用AXI IP核将FIFO中和差波束傅里叶变换浮点数据和寄存器中的波束序号通过AXI总线发送给ARM,并缓存在ARM挂载的DDR中实现DDR中缓存和差波束傅里叶变换浮点数据的实时刷新和流水处理,转入步骤六。
步骤六:ARM将步骤五中DDR缓存数据按地址取出进行和差波束差比计算,将两组和差比值计算结果在天线方向图查表,得到两个线阵测得的目标角度,通过本发明提出的测角方法将并行线阵测角结果转换为二维测角结果,得到目标的方位、俯仰角,至此完成一次测角。
本发明与现有技术相比,其显著优点在于:
(1)本发明将L阵列的接收单元当作两个线阵处理,在进行DBF测角时两个线阵同时进行搜索,相比直接对整个L阵列进行DBF处理的二维搜索更快,减少了搜索需要的时间,提高了系统的反应速度。
(2)在进行DBF处理时,采用滑窗阈值截取模块,实现处理与搜索比较并行,一条支路用寄存器中的加权因子生成和差波束进行数据流处理,进行角度估计;与此同时另一条支路通过滑窗阈值截取模块,循环比较各个数字波束幅度平方和信号上下阈值,及时更新对应寄存器中的加权因子和阈值值,通过这种处理和搜索并行的方法可以减少搜索等待时间,不用等待所有波束都搜索完才进行处理,同时能有效控制数据宽度。本发明还ARM通过控制DBF时ROM的寻址范围可以调整搜索角度的大小,增加了系统灵活性。
(3)本发明利用低数据量的DBF处理方法,结合Zynq系列的AXI数据线实现FPGA和ARM之间数据的高效传输,极大的提高了信号处理机的总体性能,保证基本测角功能的同时增强了系统的实时处理能力。
附图说明
图1为L阵列实现DBF测角的信号处理流图。
图2为FPGA控制DBF的有限状态机的状态转换图。
图3(a)、图3(b)为数字波束形成实现模块划分及数据流向图。
图4为两线阵角度换算示意图。
图5为滑窗阈值截取模块示意图。
图6(a)、图6(b)、图6(c)、图6(d)为Matlab绘制不同角度目标仿真测角结果图。
图7(a)、图7(b)为Matlab绘制的目标轨迹仿真测角结果图。
图8(a)、图8(b)为仿真角度估计值均方根误差与信噪比关系曲线图。
图9(a)、图9(b)为波束切换时Modelsim与ILA结果对照图。
图10(a)、图10(b)、图10(c)、图10(d)为实际系统上Zynq传输给计算机数据及测角结果图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明中,除非另有明确的规定和限定,术语“连接”、“固定”等应作广义理解,例如,“固定”可以是固定连接,也可以是可拆卸连接,或成一体;“连接”可以是机械连接,也可以是电连接。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
另外,本发明各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围指内。
下面将结合本设计实例对具体实施方式、以及本次发明的技术难点、发明点进行进一步介绍。
本发明提出一种基于Zynq系列的FPGA+ARM架构的数字波束形成(DBF)实现方法,通过对L接收阵列的数字处理系统进行DBF处理,既能保证针对LFMCW信号的测角功能,又能降低数据量,也能对特定范围内进行波束搜索而不影响数据流传输。
步骤一:将信号处理机AD采集到的各路数字信号分别进行数字下变频和抽取滤波,然后经过FIFO缓存,FIFO存满后将数据读出,同时ARM按需求配置ROM1和ROM2的寻址空间M和N,对应两个线阵所搜索的波束个数。
进一步地,抽取滤波操作是在数字下变频后将数据进行抽取,因为AD的采样速率比基带信号最大频率的二倍要大得多,所有进行抽取可以减小数据量。如图1中,通过FIFO进行缓存时,FIFO的读时钟频率要高于写时钟频率,对写满的FIFO利用高频率的读时钟读出可以加快后续处理的速率,同时通过FIFO缓存将回波信号从时间域上分开并行处理,可以为后续处理预留时间。在进行搜索之前,ARM可以通过AXI数据线对FPGA内控制ROM读取地址的寄存器进行赋值,以此来根据需求控制搜索波束的个数。
步骤二:将抽取滤波后横向接收单元对应的各路数据,将上述横向接收单元对应的各路数据和ROM1地址为1~M的加权因子循环相乘,得到和波束平方值最大的加权因子地址,缓存该加权因子地址作为波束序号,并得到一组对应的横向最大和差波束;将抽取滤波后纵向接收单元对应的各路数据,将上述纵向接收单元对应的各路数据和ROM2地址为1~N的加权因子循环相乘,得到和波束平方值对大的加权因子地址,缓存该加权因子地址作为波束序号,并得到一组对应的纵向最大和差波束。
进一步地,接收单元是指的L阵列天线中的每个接收天线,接收天线接收到的数据经过混频后由AD进行采集,在该系统L阵中横向有16个接收天线纵向有16个接收天线,共31个(中间有一个共用)。将L阵分别当作两组16个接收天线的线阵时,每个线阵有16路数据,在ROM中按照地址存储着不同的加权因子,当16路信号和加权因子进行相乘时本质上是通过对16路信号进行相位补偿,实现数字波束的不同指向,然后16路信号全部相加得到该波束指向下的和波束,左右8路信号求和后然后左右相减得到该波束指向下的差波束。根据所要搜索的最大范围和每个线阵的波束宽度计算出ROM的最大寻址范围,即最多存储的加权因子个数。当ROM中的加权因子按照地址递加分别和16路回波信号相乘得到和差波束,以进行数字波束搜索的同时,寄存器中的加权因子同时也和16路回波信号相乘得到和差波束,然后通过滑窗阈值截取模块循环比较,得到的和波束的平方值(即IQ两路各自相乘后求和)较大值对应的加权因子,工作状态转换如图2所示,加权因子更新流程如图3(a)、图3(b)所示,两个线阵同时进行这种处理,得到两组和差波束的IQ两路。以这种方法在FPGA进行DBF时完成波束选择,这样的好处有两个,一是并行的两个一维搜索比二维搜索更快,二是在FPGA内完成波束的选择,不用将所有指向的数字波束信号都进行处理和传输,在跨波束测角时能及时对波束进行更新,如图9(a)、图9(b)所示。
步骤三:从ROM中读出与FFT点数对应的窗函数采样点分别与两组和差波束相乘,得到和差波束加窗处理数据,完成加窗处理降低旁瓣,然后将和差波束加窗处理数据作为FFT IP核的输入,进行FFT运算,得到和差波束傅里叶变换数据。
进一步地,在两组和差信号进行FFT之前先从ROM中读出预先存放的窗函数序列分别和两组和差信号的IQ两路相乘,因为前面将信号进行时域分离时将信号截断,为了抑制FFT之后产生的旁瓣幅度进行加窗处理,本发明采用的是和FFT点数对应的汉明窗,具体实现方法是先由Matlab中的窗函数导出coe文件,然后在Vivado中将窗函数的coe文件导入到ROM中,在加窗处理时将ROM中的窗函数序列读出和信号相乘。Vivado2019.2中FFT IP核的接口为AXI格式。在进行FFT时判断s_axis_data_tready,该信号为高时将s_axis_data_tvalid置1,表示s_axis_data_tdata数据线上的数据有效,当数据输入到最后一个数据的时候要将s_axis_data_tlast值1,在FFT IP进行计算后产生输出FFT结果时m_axis_data_tvaild会被置1,得到的FFT结果会在m_axis_data_tdata输出,输出完成时同样会有tlast信号作为标志。在加窗处理后通过将两组和差信号输入到4路的FFT的进行并行计算,进一步减少了处理时间。
步骤四:将和差波束傅里叶变换数据输入滑窗阈值截取模块,在滑窗阈值截取模块中对和差波束傅里叶变换数据进行处理,得到目标所在和波束加权因子对应步骤二中的ROM1、ROM2地址;通过幅度上下限确定所定点数据需位数进行截断后将结果转换为浮点值,将数据转换为单精度浮点数后将和差波束傅里叶变换浮点数据缓存到FIFO,实现从FFT输出时钟到AXI传输时钟的时钟域变换和数据位宽调整;滑窗阈值截取模块采用快时间维度和不同波束维度的两维滑窗,每个维度采用寄存器对极值进行缓存,在时间维度实现信号流水处理的同时实时比较得到信号极值对应的和差波束傅里叶变换浮点数据,从而在波束维度选取目标所在和波束,具体如下:
进一步地,检测到FFT IP核输出结果标志m_axis_data_tvaild拉高后,说明此次FFT的有效结果输出,将输出的和差波束傅里叶变换数据分成1、2两路,第1路和差波束傅里叶变换数据送入滑窗阈值截取模块,对第2路和差波束傅里叶变换数据位数截取后进行定点浮点转换。送第1路和差波束傅里叶变换数据处理如图5所示,首先进行RAM缓存,然后通过两个寄存器在波束间进行滑窗循环比较,得到和波束平方值最大的波束,及步骤二中该波束加权因子对应地址;在快时间维通过另一方向三个寄存器滑窗比较,估算出和差波束的最大最小值,即信号的上下阈值,从而估算出表示对应幅度所需的定点数位数,若小于第1路和差波束傅里叶变换数据位数则先进行截取,为另一路第2路和差波束傅里叶变换数据进行截取提供判定依据。然后将第2路和差波束傅里叶变换数据进行定点浮点转换。通过这种方式,一方面实现了对横纵两个方向数字波束的持续循环搜索和阈值的动态设定,另一方面通过这种并行的操作方式减小了波束搜索、阈值确定的时间,不论是从波束个数还是数据位宽的角度,都进一步减小了数据量。之所以要在FFT之后对和波束平方值进行循环比较,是要依靠FFT处理的增益将LFMCW信号从接收信号中进一步突显出来。之所以进行定点浮点转换,是因为前面经过乘法IP核和FFT IP核之后,之前AD采集到的14位数据已经被扩展,而AXI总线的数据线位宽在Vivado内生成的AXI IP核内支持32位,如果对FFT结果的位宽贸然截取则会导致系统的动态范围降低,所有在此时要进行定点浮点转换,将和差波束傅里叶变换数据转换为单精度浮点数,即足够表示数据范围又方便后续数据传输。然后将转换后的单精度浮点数作为输入,输入到例化的双口独立始终FIFO中,输入时钟为50MHz和定点浮点转换速率相同,输出时钟和Zynq IP输出连接,由Zynq IP输出115MHz,该FIFO的作用是实现跨时钟域的缓存,将慢速率的数据缓存到一定数量后,按照较快的时钟通过AXI数据线进行传输。
步骤五:等待FIFO存到编程满后,编辑AXI IP工作时钟,本发明利用AXI IP核将FIFO中和差波束傅里叶变换浮点数据和寄存器中的波束序号通过AXI总线发送给ARM,并缓存在ARM挂载的DDR中实现DDR中缓存和差波束傅里叶变换浮点数据的实时刷新和流水处理,具体如下:
进一步地,在Vivado中生成AXI总线格式的IP核,通过该IP将步骤四中缓存在FIFO的数据通过Zynq内部的AXI数据线由FPGA传输到ARM端,相比于FPGA+DSP结构的信号处理机,Zynq在单个芯片内通过AXI总线进行数据传输的方式好处有两个,一个是传输速度更快,在115MHz时钟下32位位宽时最高可达370MB/s;另一个是对数据操作便捷,无需频繁的跨平台操作。本发明实时进行部分修改编辑,将AXI核的工作时钟M_AXI_ACLK,该时钟和步骤四中FIFO的读时钟设为从Zynq中引出的同源时钟驱动,实现FIFO中数据快速读出的同时,尽量减少跨时钟域的操作。通过该AXI IP写入的数据会缓存到ARM挂载的DDR中,所以要在Zynq IP中提前配置好DDR的寻址空间,该存储空间要大于一次传输的数据量,即大于步骤四中FIFO的大小,当传输完第一次,第二次FIFO满有效进行传输的时候,传输结果会重新覆盖第一次的传输结果。
步骤六:ARM将步骤五中DDR缓存数据按地址取出进行和差波束差比计算,将两组和差比值计算结果在天线方向图查表,得到两个线阵测得的目标角度,通过本发明提出的测角方法将并行线阵测角结果转换为二维测角结果,得到目标的方位、俯仰角,至此完成一次测角,具体如下:
进一步地,ARM从DDR中读取步骤五发送的数据,将和波束和差波束极值相除可以得到和差波束的比值,由该和差比和天线方向图进行查表可以得到目标在该波束内的角度,同时利用步骤二中的加权因子地址和波束宽度可以计算出该波束中心位置对应的角度,根据该波束指向的中心角度以及目标在该波束内的角度,可以得到目标相对于该线阵的法平面的角度,得到目标相对于两个线阵法平面的角度后,需要进行换算才能得到正确的方位角和俯仰角。如图4所示,由Y轴上两个16单元线阵分别测得目标与线阵法平面方向的夹角a,以及由Z轴上两个16单元线阵分别测得目标与线阵法平面方向的夹角b,则根据图4所示关系计算可以得到方位角
本发明针对二位测角数据量大和搜索响应慢的问题,提出基于Zynq系列的FPGA+ARM结构实现的,L阵列LFMCW辐射源DBF测角方法。在FPGA内将L阵列接收到的数据按两个维度的线形阵列处理,利用FPGA并行处理的优势,在DBF处理时,利用滑窗阈值截取模块分搜索和处理并行的两路,利用Zynq的AXI总线完成FPGA到ARM数据传输,解决了L阵列二维测角时数据量大,逐个波束搜索响应慢的问题,提高了系统的实时性。
- 一种针对多个窄带信号运动辐射源的分布式阵列协同直接定位方法
- 一种利用非均匀阵列进行辐射源定位方法