一种分时复用时间抽取FFT实现方法、系统及介质与流程

文档序号:24872231发布日期:2021-04-30 12:44阅读:265来源:国知局
一种分时复用时间抽取FFT实现方法、系统及介质与流程

本发明涉及通讯及电子对抗技术领域,具体地,涉及一种分时复用时间抽取fft实现方法、系统及介质。



背景技术:

有限长序列的频率测量方法在通讯及电子对抗等领域有着广泛应用。快速傅里叶变换(fastfouriertransform,fft)是信号频率的快速测量方法之一。快速傅里叶变换是数字信号处理中的重要处理工具,它在信号的频谱分析、系统的频域分析、设计以及实现中起到非常关键的作用。

但是,大规模的实时fft运算包含大量的乘法运算和加法运算,同时需要大量的存储器缓存蝶形运算中间数据。采用并行流水线的方法可以提高fft运算速率,有较好的实时性,然而大规模的并行实时fft运算需要消耗大量的硬件资源,并且随着fft运算点数的增多,消耗的硬件资源呈指数级增长。采用串行流水线的方法消耗的硬件资源大为减少,然而串行流水线fft运算的处理时间也大为延长,实时性难以保证。节约硬件资源与提高实时性难以兼顾。



技术实现要素:

针对现有技术中的缺陷,本发明的目的是提供一种分时复用时间抽取fft实现方法、系统及介质,采用该分时复用方案可以大量节约硬件资源,在不降低数据处理速率的情况下,以较少的硬件资源实现大规模的fft运算,从而降低fft的复杂性并提高系统的实时性。

根据本发明提供的一种分时复用时间抽取fft实现方法、系统及介质,所述方案如下:

第一方面,提供了一种分时复用时间抽取fft实现方法,所述方法包括:

将频率为f的处理时钟clk1倍频至频率为2f的clk2,同时保留clk1;对长度为2n的有限长序列x(n)进行2倍均匀抽取,拆分为偶数序列g(n)和奇数序列h(n);

分时复用同一2n-1点并行fft运算模块分别对偶数序列g(n)和奇数序列h(n)进行傅里叶变换,得到序列g(k)和h(k);

对序列g(k)和h(k)进行基-2蝶形运算,得到序列x(k),完成对该长度为2n的有限长序列的fft运算。

优选的,所述对有限长序列x(n)进行拆分包括:

在处理时钟clk1的条件下,对长度为2n的有限长序列x(n)进行2倍均匀抽取,拆分为偶数序列g(n)和奇数序列h(n),序列长度均为2n-1

在处理时钟clk2的条件下,对序列g(n)和h(n)进行重采样,得到序列g1(n)和h1(n),且数据率为g(n)和h(n)的2倍;

在处理时钟clk2的条件下,对序列g1(n)和h1(n)进行并串转换,间次串行输出序列g(n)和h(n)。

优选的,所述得到序列g(k)和h(k)包括:

在处理时钟clk2的条件下,对序列g(n)和h(n)进行2n-1点并行fft运算,输出fft运算结果g(k)和h(k),g(k)和h(k)均为长度为2n-1的并行数据,g(k)输出时间相对h(k)输出时间提前1个时钟节拍,时钟基准为clk2;

在处理时钟clk2的条件下,将生成的g(k)和h(k)延时处理,延时1个时钟周期输出。

优选的,所述完成对该长度为2n的有限长序列的fft运算包括:

在处理时钟clk2的条件下,对步骤2中输出的数据同时进行基-2蝶形运算,得到数据x1(k);

在处理时钟clk2的条件下,对数据x1(k)进行2倍均匀抽取,得到其中一组数据即为序列x(n)的fft运算结果x(k),另一组为错误数据,舍去;

在处理时钟clk1的条件下,舍去错误数据,输出运算结果x(k)。

第二方面,提供了一种分时复用时间抽取fft实现系统,所述系统包括:

模块m1:将频率为f的处理时钟clk1倍频至频率为2f的clk2,同时保留clk1;对长度为2n的有限长序列x(n)进行2倍均匀抽取,拆分为偶数序列g(n)和奇数序列h(n);

模块m2:分时复用同一2n-1点并行fft运算模块分别对偶数序列g(n)和奇数序列h(n)进行傅里叶变换,得到序列g(k)和h(k);

模块m3:对序列g(k)和h(k)进行基-2蝶形运算,得到序列x(k),完成对该长度为2n的有限长序列的fft运算。

优选的,所述模块m1包括:

在处理时钟clk1的条件下,对长度为2n的有限长序列x(n)进行2倍均匀抽取,拆分为偶数序列g(n)和奇数序列h(n),序列长度均为2n-1

在处理时钟clk2的条件下,对序列g(n)和h(n)进行重采样,得到序列g1(n)和h1(n),且数据率为g(n)和h(n)的2倍;

在处理时钟clk2的条件下,对序列g1(n)和h1(n)进行并串转换,间次串行输出序列g(n)和h(n)。

优选的,所述模块m2包括:

在处理时钟clk2的条件下,对序列g(n)和h(n)进行2n-1点并行fft运算,输出fft运算结果g(k)和h(k),g(k)和h(k)均为长度为2n-1的并行数据,g(k)输出时间相对h(k)输出时间提前1个时钟节拍,时钟基准为clk2;

在处理时钟clk2的条件下,将生成的g(k)和h(k)延时处理,延时1个时钟周期输出。

优选的,所述模块m3包括:

在处理时钟clk2的条件下,对步骤2中输出的数据同时进行基-2蝶形运算,得到数据x1(k);

在处理时钟clk2的条件下,对数据x1(k)进行2倍均匀抽取,得到其中一组数据即为序列x(n)的fft运算结果x(k),另一组为错误数据,舍去;

在处理时钟clk1的条件下,舍去错误数据,输出运算结果x(k)。

与现有技术相比,本发明具有如下的有益效果:

1、将一个大规模的fft运算分解成两个小规模的fft运算,简化了运算过程;

2、对最消耗硬件资源的并行fft运算模块进行了复用,能有效节约硬件资源;

3、利用该方法可以在有限硬件资源的条件下进行更大规模的fft运算,有效提高测频分辨率;

4、通过clk1、clk2快慢时钟的配合,保障了数据处理的实时性。

附图说明

通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:

图1为本发明实现方法的流程图;

图2为本发明实现方法的时序图。

具体实施方式

下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。

本发明实施例提供了一种分时复用时间抽取fft实现方法,本方法中含有7个模块,分别为倍频模块、抽取模块、重采样模块、2选1选择器模块、2n-1点并行fft运算模块、延时模块、基-2蝶形运算模块。

参照图1所示,将频率为f的处理时钟clk1输入至倍频模块,倍频至频率为2f的clk2,同时保留clk1,得到时钟信号clk1、clk2,时钟clk1、clk2关系如图2中所示;

离散傅里叶变换是构成fft运算的基本单元,表达式为:

表达式中,x(n)为有限长序列,wn称为核函数(kernel)或旋转因子(twiddle),具有对称性和周期性。核函数是周期为2π的复共轭函数,在z平面上是单位圆上以等间隔排列的离散点。

利用核函数的对称性和周期性,可以将序列x(n)逐次分解为较短的子序列进行fft运算。对长度为2n的有限长序列x(n)进行2倍均匀抽取,拆分为偶数序列g(n)和奇数序列h(n),序列长度均为2n-1,其中

g(n)=x(2n)

h(n)=x(2n+1)

即,将时间序列压缩一半,压缩后的序列g(n)和h(n)的dtft(discrete-timefouriertransform,离散时间傅里叶变换)分别为

因此

x(e)=g(ej2ω)+e-jωh(ej2ω)

上式表明,2n点的dtftx(k)可以通过计算2n-1点dtftg(k)和h(k)进行合成。同理,2n-1点dtft可以进一步分解成更少点的dtft进行合成。上式可以重写为

根据以上公式,进行如下步骤:

参照图1的第一步所示,在处理时钟clk1的条件下,对长度为2n的有限长序列x(n)输入到抽取模块,进行2倍均匀抽取,拆分为偶数序列g(n)和奇数序列h(n),序列长度均为2n-1,x(n)、g(n)和h(n)时序关系如图2中step1所示;

参照图1的第二步所示,在处理时钟clk2的条件下,将序列g(n)和h(n)并行输入到重采样模块中,得到序列g1(n)和h1(n),数据率为g(n)和h(n)的2倍,时序关系如图2中step2所示;

参照图1的第三步所示,在处理时钟clk2的条件下,将序列g1(n)和h1(n)输入到2选1选择器模块,间次串行输出序列g(n)和h(n),时序关系如图2中step3所示;

参照图1的第四步所示,在处理时钟clk2的条件下,将间次串行序列g(n)和h(n)输入到2n-1点并行fft运算模块,间次输出fft运算结果g(k)和h(k),g(k)和h(k)均为长度为2n-1的并行数据,g(k)输出时间相对h(k)输出时间提前1个时钟节拍,时钟基准为clk2,此处即为分时复用fft运算模块,时序关系如图2中step4所示;

参照图1的第五步所示,在处理时钟clk2的条件下,将g(k)和h(k)间次串行输入到延时模块,延时1个时钟周期输出,得到g1(k)和h1(k)时序关系如图2中step5所示;

参照图1的第六步所示,在处理时钟clk2的条件下,将g(k)、h(k)、g1(k)和h1(k)同时输入到基-2蝶形运算模块,得到数据x1(k),时序关系如图2中step6所示;

参照图1的第七步所示,在处理时钟clk2的条件下,将x1(k)输入抽取模块,进行2倍均匀抽取,得到其中一组数据即为序列x(n)的fft运算结果x(k),另一组为错误数据error,时序关系如图2中step7所示;

参照图1的第八步所示,在处理时钟clk1的条件下,舍去错误数据error,输出运算结果x(k),时序关系如图2中step8所示;

至此,该长度为2n的有限长序列x(n)的fft运算已完成。

本发明实施例提供了一种分时复用时间抽取fft实现方法,在合理利用时间抽取fft运算特点的基础上,可以进一步对分解后的两个小规模的fft运算进行分解,进一步简化运算过程,对并行fft运算模块进行更高效率的复用。

本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统及其各个装置、模块、单元以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统及其各个装置、模块、单元以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同功能。所以,本发明提供的系统及其各项装置、模块、单元可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置、模块、单元也可以视为硬件部件内的结构;也可以将用于实现各种功能的装置、模块、单元视为既可以是实现方法的软件模块又可以是硬件部件内的结构。

以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。

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