基于小点数算法核实现大点数FFT或DFT的方法及系统技术方案

技术编号:33533469 阅读:10 留言:0更新日期:2022-05-19 02:09
本发明专利技术公开了一种基于小点数FFT或DFT算法核实现大点数FFT或DFT的方法。利用已有小点数FFT/DFT算法核,通过特定外围运算,即可实现大点数FFT/DFT运算;本方法仅包含一维FFT/DFT处理,无矩阵的转置操作,结构简易,灵活性强,降低对算法核的采购及研发成本。降低对算法核的采购及研发成本。降低对算法核的采购及研发成本。

【技术实现步骤摘要】
基于小点数算法核实现大点数FFT或DFT的方法及系统


[0001]本专利技术涉及信号测试测量
,具体涉及一种基于小点数FFT/DFT算法核实现大点数FFT/DFT的方法。

技术介绍

[0002]在信号测试测量系统中,一些应用场景需要对数据的频域特征进行高精度分析,因此不仅需要对数据进行FFT/DFT运算完成时域到频域的变换,并且需要较大的FFT/DFT点数来满足较高的频域分辨率需求。
[0003]数据的FFT/DFT运算通常使用FPGA/DSP/软件算法包的FFT/DFT核来完成,而已有的FFT/DFT核通常有支持的最大FFT/DFT点数限制,一些频域高分辨率应用场景所需要的FFT/DFT点数可能会超出已有FFT/DFT核支持的最大点数,此时直接使用已有算法核无法满足需求。
[0004]如何在不直接重新开发大点数FFT/DFT算法核的情况下,应用已有的FFT/DFT核,实现超出其最大支持点数的FFT/DFT功能,且与直接做大点数FFT/DFT功能等效,是目前信号测试测量系统高精度频域分析中需要解决的问题。
[0005]现有实现大点数FFT的方法中,也将其拆分成多个小点数FFT,Winograd算法,需要进行多次矩阵转置,引入了额外操作;专利CN103106181A优化了多次转置的操作,但在两维FFT运算中,对于数据的拆分的两个维度有2的整数次幂的要求,对FFT的点数有一定限制。

技术实现思路

[0006]有鉴于此,本专利技术提供了一种基于小点数FFT/DFT算法核实现大点数FFT/DFT的方法,仅包含一维FFT/DFT处理,无矩阵的转置操作,具有更为简易的结构以及更灵活的FFT/DFT点数支持。
[0007]理论推导过程如下:对于N点数据x(n)的FFT结果X(p),
[0008][0009]其中,p=0,1,2,

,N

1,n=0,1,2,

,N

1,“exp(
·
)”是以自然常数e为底的指数函数,“j”为虚数单位;
[0010][0011]对于每个i1而言,x(i2*M+i1)相当于对x(n)以i1为起始点,以M点为周期的抽取,进行M路串并转换。其中,N=M*K,M为对x(n)进行串并转换的路数,K为小点数FFT/DFT算法核的点数。
[0012][0013][0014][0015][0016]项相当于对x(i2*M+i1)做K点FFT/DFT并做M

1次周期重复扩展到N点;然后对于每个i1的N点扩展FFT/DFT数据使用进行复乘加权,将所有i1对应的第p点复乘加权结果求和,得到X(p)。其中,“%”为求余运算。
[0017]基于以上推导,一个点数为N的FFT/DFT计算,具体步骤为:
[0018]S00、进行M路数据串并转换:将单路输入的离散信号序列x(n),n=0,1,2,

,以M为循环周期,按顺序依次抽取给1~M路并行数据输出端口,第m路输出数据表示为x
m
(k),m=1,2,..,M,则x
m
(k)满足与x(n)的关系:x
m
(k)=x(M*k+m

1);x(n)与x
m
(k)同为实数数据或复数数据;
[0019]S01、第m路数据x
m
(k)作为该路输入,利用小点数FFT/DFT核,按顺序使用K点完成FFT/DFT运算,记第m路FFT/DFT核运算输出的复数数据为X
m
(i),i=0,1,2,

(K

1);对步骤S00并行输出的每一路数据,调用FFT/DFT核做K点的FFT/DFT运算;
[0020]S02、第m路运算输出K点的数据X
m
(i),以K点为周期做M

1次重复扩展,扩展为M*K点数据,记第m路周期扩展后数据为X

m
(p),p=0,1,2,

(M*K

1),则X

m
(p)与X
m
(i)满足关系:X

m
(p)=X
m
(p%K),其中“%”为求余运算;对步骤S01运算输出的每一路K点数据,扩展为M*K点数据。
[0021]S03、生成与每路X

m
(p)数据每点一一对应的复数加权因子序列w
m
(p),式中“exp(
·
)”是以自然常数e为底的指数函数,“j”为虚数单位。当每个FFT/DFT核配置的点数K和串并转换的路数M确定后,第m路数据对应的复数加权因子序列w
m
(p)就确定了,不会根据输入数据的变化而变化,因此本步骤生成加权因子序列的过程可以独立于其他步骤预先执行或者与其他步骤同步执行;
[0022]S04、将步骤S02生成的第m路扩展后的每点M*K复数数据X

m
(p)与步骤S03生成该路复数加权因子序列w
m
(p),进行点对点复乘,得到M*K点复数数据X

m
(p)*w
m
(p);对每路扩展后的数据与该路复数加权因子序列进行点对点复乘,得到M路M*K点复数数据。
[0023]S05、将步骤S04生成的所有M路M*K点复数数据X

m
(p)*w
m
(p),对应每点数据相加,得到一路最终M*K点FFT/DFT运算结果X(p),即得到一路最终M*K点FFT/DFT运算结果X(p),即
[0024]至此通过以上步骤完成了一次基于K点FFT/DFT核实现M*K点FFT/DFT计算的功能。
[0025]有益效果:
[0026]本专利技术利用已有小点数FFT/DFT算法核,不需要额外直接开发算法,仅包含一维
FFT/DFT处理;无矩阵转置操作,通过特定外围运算得到,即可实现大点数FFT/DFT;本专利技术具有较强扩展性和灵活性,实现结构更简易,支持更灵活的FFT/DFT点数;本专利技术扩展已有算法资源的使用范围,降低对算法核规格的硬性需求,从而降低芯片或者算法包采购成本及研发成本。
附图说明
[0027]图1为本专利技术的原理框图。
[0028]图2为实施例原理框图。
[0029]图3为实施例中本专利技术的FFT方法的结果与直接进行FFT的结果对比图。
具体实施方式
[0030]下面结合附图并举实施例,对本专利技术进行详细描述。
[0031]利用基于FPGA,65536点FFT算法IP核实现65536*2点FFT的频域分析系统如图2所示,系统内包括:具有串并两路采集输出的ADC芯片、FPGA芯片、DDR芯片及上位机。
[00本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于小点数算法核实现大点数FFT或DFT的方法,其特征在于,包括:S00、进行M路数据串并转换:将点数为N的单路离散的信号序列x(n),以M为循环周期,按顺序依次抽取,形成1~M路并行数据,其中,N=M*K,第m路输出x
m
(k)=x(M*k+m

1),m=1,2,..,M;K为小点数FFT/DFT算法核的点数;S01、针对x
m
(k),利用FFT/DFT核,按顺序使用K点完成运算,得到X
m
(i),i=0,1,2,...(K

1);S02、将X
m
(i)以K点为周期做M次重复扩展,扩展为M*K点数据X

m
(p),p=0,1,2,...(M*k

1),即:X

m
(p)=X
m
(p%K),其中“%”为求余运算;S03、将X

m
(p)与第m路的复数加权因子序列w
m
(p)进行点对点复乘,得到M*K点复数数据X

m
(p)*w
m
(p);其中,其中,“exp(
·
)”是以自然常数e为底的指数函数,“j”为虚...

【专利技术属性】
技术研发人员:陈文棵刘家玮胡志臣谢金源余俊罗皓中黄漪婧
申请(专利权)人:北京航天测控技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1