一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种应用于雷达信号处理的并行卷积方法及装置与流程

2022-03-16 15:47:22 来源:中国专利 TAG:


1.本发明涉及雷达信号处理技术领域,特别是涉及一种应用于雷达信号处理的并行卷积方法及装置。


背景技术:

2.信号处理应用中,卷积是非常常见而且重要的运算,如通信中的各种信号滤波、雷达模拟器中的回波运算等。在高速信号处理应用中,卷积运算速度直接影响着信号处理系统的响应时间,制约着系统的性能提高。
3.下面以合成孔径雷达实时闭环回波模拟器应用为例,在进行场景回波信号实时产生过程中,每收到一次回波计算参数数据包,需要进行一次卷积。雷达激励信号与系统函数进行卷积的点数比较多,运算量大,对系统的设计提出了挑战。设计的需求是在fpga上实现任意长输入信号与与固定长(如8192点)系统函数之间的快速卷积(如保证流水状态下每30us内能完成4096点与8192点之间的卷积)。传统的卷积在进行卷积时,输入信号x(n)与系统函数h(n)必须为确定长度,无法完成任意长卷积。此外传统卷积处理延时较长(如在进行4096点与8192点的卷积运算时,仅fft变换需要的时钟周期为32918个时钟周期。在200mhz时钟下需要的时间为164.59us),不能满足设计的需求。


技术实现要素:

4.针对上述问题,本发明的目的是提供一种应用于雷达信号处理的并行卷积方法及装置,实现对任意长雷达激励信号的卷积运算,缩短了处理的时间,提高系统的运行速度。
5.为实现上述目的,本发明提供了如下方案:
6.一种应用于雷达信号处理的并行卷积方法,包括:
7.对任意长输入信号和系统函数进行分段存储;所述输入信号为雷达激励信号,所述系统函数为雷达激励信号的目标响应函数;
8.对分段存储后的输入信号和系统函数分别进行快速傅里叶变换;
9.对快速傅里叶变换后的输入信号和系统函数进行复乘和逆快速傅里叶变换,得到多段卷积结果;
10.对多段卷积结构按照设定规则和时间顺序依次叠加,得到最终的卷积结果。
11.可选地,将所述输入信号分为4段,将所述系统函数分为8段。
12.可选地,快速傅里叶变换采用了12条流水线并行的方式,其中输入信号4条流水线,系统函数8条流水线。
13.可选地,复乘及逆快速傅里叶变换采用32条流水线并行的方式。
14.本发明还提供了一种应用于雷达信号处理的并行卷积装置,包括:
15.第一分段存储模块,用于对输入信号进行分段存储;所述输入信号为雷达激励信号;
16.第二分段存储模块,用于对系统函数进行分段存储;所述系统函数为雷达激励信
号的目标响应函数;
17.第一fft计算模块,与所述第一分段存储模块连接,用于对分段后的输入信号进行快速傅里叶变换;
18.第二fft计算模块,与所述第二分段存储模块连接,用于对分段后的系统函数进行快速傅里叶变换;
19.复乘及ifft计算模块,与所述第一fft计算模块和所述第二fft计算模块连接,用于对快速傅里叶变换后的输入信号和系统函数进行复乘和逆快速傅里叶变换,得到多段卷积结果;
20.重叠相加模块,与所述复乘及ifft计算模块连接,用于对多段卷积结构按照设定规则和时间顺序依次叠加,得到最终的卷积结果。
21.可选地,所述第一分段存储模块包括:
22.第一分段单元,用于对输入信号进行分段;
23.第一存储单元,用于对分段后的输入信号进行存储;
24.所述第二分段存储模块包括:
25.第二分段单元,用于对系统函数进行分段;
26.第二存储单元,用于对分段后的系统函数进行存储。
27.可选地,所述第一fft计算模块采用4条并行流水线;所述第二fft计算模块采用8条并行流水线.
28.可选地,所述复乘及ifft计算模块采用32条并行流水线。
29.根据本发明提供的具体实施例,本发明公开了以下技术效果:
30.本发明采用多条流水线并行处理的方式,对输入信号和系统函数进行分段、存储、fft、复乘、ifft、重叠相加等一系列操作,实现卷积运算,缩短了处理的时间,从而提高了运行速度。
附图说明
31.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
32.图1为本发明实施例应用于雷达信号处理的并行卷积方法的流程图;
33.图2为分段卷积过程各段叠加情况;
34.图3为输入信号任意长卷积;
35.图4为段落转换图;
36.图5为第一分段单元内部结构图;
37.图6为第二存储单元内部结构图;
38.图7为存储单元的div_store_s1_ctrl结构图
39.图8为fft变换部分其中一条流水线;
40.图9为复乘及ifft变换部分其中一条流水线;
41.图10为重叠相加部分结构图;
42.图11为资源使用情况;
43.图12为卷积之后的结果;
44.图13为输出结果的频域波形。
具体实施方式
45.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
46.本发明的目的是提供一种应用于雷达信号处理的并行卷积方法及装置,实现对任意长雷达激励信号的卷积运算,缩短了处理的时间,提高系统的运行速度。
47.为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
48.如图1所示,本发明提供的一种应用于雷达信号处理的并行卷积方法,包括:
49.步骤1、对任意长输入信号和系统函数进行分段存储;所述输入信号为雷达激励信号,所述系统函数为雷达激励信号的目标响应函数。将所述输入信号分为4段,将所述系统函数分为8段。
50.步骤2、对分段存储后的输入信号和系统函数分别进行快速傅里叶变换。快速傅里叶变换采用了12条流水线并行的方式,其中输入信号4条流水线,系统函数8条流水线。
51.步骤3、对快速傅里叶变换后的输入信号和系统函数进行复乘和逆快速傅里叶变换,得到多段卷积结果。复乘及逆快速傅里叶变换采用32条流水线并行的方式。
52.步骤4、对多段卷积结构按照设定规则和时间顺序依次叠加,得到最终的卷积结果。
53.输入信号x(n)与系统函数h(n)的卷积结果可以表示为y(n)=x(n)*h(n),输出序列的长度为输入序列的长度与系统函数长度之和减1。这种线性卷积的方法对资源的消耗比较大,而且不能实现对信号“实时”处理。分段卷积的设计思想是将长序列分为若干个短的小段,将输入信号的小段与系统函数的小段之间卷积的结果按照相应的规则进行叠加,即可得到卷积的结果y(n)。
54.假设输入信号x(n)可以分为m段长度为l的小段,系统函数h(n)可以分为n段长度为l的小段。用xi(n)与hj(n)分别表示x(n)与h(n)的分段信号(1≤i≤m,1≤j≤n):
[0055][0056][0057]
将y(n)用xi(n)与hj(n)可以表示为:
[0058]
[0059]
xi(n)与hj(n)的值并不是都集中在前l个点,为此引入新的变量xi(n)及hj(n)(1≤i≤m,1≤j≤n),它们只在前l个点有值。
[0060][0061]
为了更好地用公式将最后的卷积结果表示出来,对变量xi(n)及hj(n)进行拓展。当m《i≤m n-1,n《j≤m n-1时:
[0062][0063]
最后的卷积结果可以表示为(其中k为0~m n-1的整数,p为0~l之间的整数):
[0064][0065]
公式(6)已经表示出来了输入信号x(n)及系统函数h(n)定长时的卷积结果,它可以进一步表示为:
[0066][0067]
当输入信号为任意长,如图2所示,系统函数为8192点时,可以把卷积看做多个4096点的信号与系统函数相卷。用表示第一段4096点输入信号与系统函数相卷,表示第二段,表示第三段,再用表示第四段等等。以其中一段为例进行分析,如图3所示。图4表示卷积过程中段落的转换关系,它可表示为公式(8)所示,其中t=4,q为自然数,z=q\3。
[0068][0069]
本发明还提供了一种应用于雷达信号处理的并行卷积装置,包括:
[0070]
第一分段存储模块,用于对输入信号进行分段存储;所述输入信号为雷达激励信号;
[0071]
第二分段存储模块,用于对系统函数进行分段存储;所述系统函数为雷达激励信号的目标响应函数;
[0072]
第一fft计算模块,与所述第一分段存储模块连接,用于对分段后的输入信号进行快速傅里叶变换;
[0073]
第二fft计算模块,与所述第二分段存储模块连接,用于对分段后的系统函数进行快速傅里叶变换;
[0074]
复乘及ifft计算模块,与所述第一fft计算模块和所述第二fft计算模块连接,用
于对快速傅里叶变换后的输入信号和系统函数进行复乘和逆快速傅里叶变换,得到多段卷积结果;
[0075]
重叠相加模块,与所述复乘及ifft计算模块连接,用于对多段卷积结构按照设定规则和时间顺序依次叠加,得到最终的卷积结果。
[0076]
其中,所述第一分段存储模块包括:
[0077]
第一分段单元,用于对输入信号进行分段;
[0078]
第一存储单元,用于对分段后的输入信号进行存储;
[0079]
所述第二分段存储模块包括:
[0080]
第二分段单元,用于对系统函数进行分段;
[0081]
第二存储单元,用于对分段后的系统函数进行存储。
[0082]
具体实施例:
[0083]
下面对任意长输入信号(雷达信号)以每阶段进行4段(4个1024点信号)与8段(8个1024点函数)卷积为例说明本方法的实现原理。
[0084]
输入信号x(n)为频率为50mhz、幅度为2^15的正弦波,每30us,发送4096点的输入信号。系统函数h(n)(目标响应函数)为8192点的数据。
[0085]
步骤一:分段存储部分
[0086]
接收到数据之后首先进行的操作是分段存储,下面介绍分段存储的功能和详细设计。
[0087]
该部分实现的功能是对输入信号及系统函数的分段存储。输入信号分为4段并进行存储,系统函数分为8段并进行存储。两部分整体结构相同,只存在分段段数的差别。以输入信号为例进行分析,又可以细化为第一分段单元与第一存储单元。
[0088]
第一分段单元的主要功能是对输入信号进行分段,将输入信号分为4段1024点的信号。如图5所示,第一分段单元有3个输入,5个输出。3个输入分别为复位信号,数据有效信号和数据信号。其中4个输出分别对应分段处理后的4路信号,另外1个输出为输出信号存储的判断信号。start_div_flag模块产生的是控制信号,用于控制该部分进行计数分段。div_len_counter模块实现的功能是计数,当每计数1024次之后给下一级模块一个使能信号。div_num_counter模块实现的是对分段段数的计数,当计数达到分段的段数时,输出div_n_f信号反馈给start_div_flag模块。
[0089]
第一存储单元实现的是对信号的存储及读取操作,上面已经提到将x(n)分为了4段1024点的数据。如图6所示,第一存储单元内部包含4个模块,分别对应4段1024点的数据。如图7所示,以其中的一个模块div_store_s1_ctrl进行分析,该模块实现的功能是对1024点的数据进行存储,分别存储4个ram中,每个ram中256个点。然后读取时4个ram中的数据依次读出,并对读出的数据后面补1024个0,然后输出第一存储单元。其中ram_wr_ctrl模块和截位模块(iq0,iq1,iq2,iq3)实现的功能是每次给ram存入一个数据,从dual port ram_1到dual port ram_4循环存储,直至每个ram中都存满256个数据为止。start_div_flag模块和div_len_counter模块实现的主要功能是产生ram的读地址信号,进行ram中数据的读取。output_ctrl模块前面的数据选择器的功能是依次选择4个ram中的数据读出,output_ctrl模块的功能是在输出的1024个点的数据后面继续补上1024个点的0,输出给下一级。
[0090]
步骤二:fft变换部分
[0091]
输入信号x(n)分为4段,系统函数h(n)分为8段,并经过补零之后,成为2048点的数据段。它们从分段存储部分流出之后进入fft变换部分。
[0092]
fft变换处理部分采用了12条流水线并行的方式,其中输入信号4条流水线,系统函数8条流水线。该部分调用了fast fouriertransform 9.0模块,实现了对分段信号的fft变换。
[0093]
re_round_gain模块和im_round_gain模块实现的是对fft变换之后信号的实部及虚部进行截位操作,之后将实部及虚部进行拼接输出。如图8为fft变换部分其中一条流水线。
[0094]
步骤三:复乘及ifft变换部分
[0095]
输入信号x(n)的4段信号与系统函数h(n)的4段信号从fft变换部分流出之后,进入复乘及ifft变换部分。
[0096]
复乘及ifft变换部分采用32条流水线并行的方式,实现了输入信号分段与系统函数任何一分段都可以实现复乘(4*8=32),以其中一条流水线为例进行分析,如图9所示。complex_mul模块内部调用了complex multiplier 6.0模块,实现了复乘运算。ifft模块内部调用了fast fourier transform 9.0模块,实现了ifft变换。
[0097]
步骤四:重叠相加部分
[0098]
ifft变换之后的结果从ifft模块出来后会进行叠加,分为11路将32个小段卷积的结果按照相应规则进行叠加,叠加之后的结果流入重叠相加部分。
[0099]
重叠相加部分的内部结构如图10所示。fifo_group模块用于存储卷积的结果,每个fifo组可存储一次4096点与8192点卷积的结果,其内部包括22个fifo,其中11个fifo用来存放对应11条流水线卷积结果的前1024个点,另外11个fifo用来存放对应11条流水线卷积结果的后1024个点。fifo_write模块控制每次卷积结果按顺序循环存储在3组fifo中。当数据存入fifo中以后,fifo_write模块控制3组66个fifo的读取,并且每个fifo组内部读出的数据会叠加,并通过dout输出给最后的叠加模块。3个fifo组输出的结果经过最后的叠加即得到最终的卷积结果。
[0100]
技术效果如下:
[0101]
本发明使用的是基于xilinx的v7-690t的高性能fpga处理板。利用system generator搭建的模块生成verilog代码,并在vivado上综合布局布线之后得到的资源使用情况如图11所示,该处理板满足设计需求。
[0102]
输入测试的基带数据为频率为50mhz、幅度为2^15的正弦波,系统函数为单脉冲。系统时钟周期为200mhz,双路采样。输入信号与系统函数通过系统卷积之后的结果如图12所示,其中实线和虚线的线分别代表卷积之后的l路和q路的结果。通过观察iq两路的输出结果与预期结果一致,说明本设计成功实现了任意长输入信号与8192点系统函数之间的卷积。
[0103]
通过观察输出结果的频域波形图,如图13所示,结果良好,证明了本系统的性能满足要求。
[0104]
传统卷积进行4096点输入信号与8192点系统函数的卷积,在进行fft变换时,会进行补零操作。4096点的输入信号后面补8192个点的0,8192点的输入信号后面补4096个点的0。并且由于fft模块设置transform length必须为2的指数次方,因此将4096点的输入信号
与8192点的系统函数都补零至16384点。从信号进入fft模块至第一个数据出来需要32918个周期。系统时钟为200mhz,该部分需要的时间为164.59us。采用流水线处理,此部分需要的最短时间为16384个时钟周期,该部分所需要的时间为81.92us。
[0105]
而采用分段卷积的方法,输入信号与系统函数都分为1024个点的小段,小段之间并行进行fft变换。从信号进入fft模块至第一个数据出来需要4221个周期。在200mhz的系统时钟下,所需要的时间为21.105us。采用流水线处理的方法,在执行此部分需要的最短时间为2048个时钟周期,所需要的时间为10.24us。
[0106]
分段卷积采用流水线处理,其它各部分也能够在30us内完成各自功能。系统能够实现任意长输入信号与8192点系统函数之间的卷积(即保证流水状态下每30us内都能完成4096点与8192点之间的卷积)。
[0107]
表1fft变换所需时间对比
[0108][0109][0110]
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
[0111]
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献