CN102929837A - 基于fpga的高速定点fft处理器及其处理方法 - Google Patents

基于fpga的高速定点fft处理器及其处理方法 Download PDF

Info

Publication number
CN102929837A
CN102929837A CN2012103645663A CN201210364566A CN102929837A CN 102929837 A CN102929837 A CN 102929837A CN 2012103645663 A CN2012103645663 A CN 2012103645663A CN 201210364566 A CN201210364566 A CN 201210364566A CN 102929837 A CN102929837 A CN 102929837A
Authority
CN
China
Prior art keywords
data
fft
butterfly
module
processing module
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
Application number
CN2012103645663A
Other languages
English (en)
Other versions
CN102929837B (zh
Inventor
史江义
舒浩
谢辉辉
马佩军
田映辉
邸志雄
汤海华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xidian University
Original Assignee
Xidian University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Xidian University filed Critical Xidian University
Priority to CN201210364566.3A priority Critical patent/CN102929837B/zh
Publication of CN102929837A publication Critical patent/CN102929837A/zh
Application granted granted Critical
Publication of CN102929837B publication Critical patent/CN102929837B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Advance Control (AREA)
  • Complex Calculations (AREA)

Abstract

本发明公开一种基于FPGA的高速定点FFT处理器及其处理方法,本发明的FFT处理器包括多级FFT处理模块和一级倒位序输出模块。本发明处理方法的具体步骤为:1、接收数据;2、数据翻转;3、数据存储;4、数据蝶形处理;5、判断运算是否结束;6、处理后数据位置调整;7、调整后数据存储;8、倒位序输出。本发明采用了流水线结构及多数据并行处理方法,实现了高速、高精度的FFT运算,解决了基于DSP的FFT处理器设计周期长、硬件成本高及无法并行处理数据的缺陷,同时提高了FFT处理器的工作频率及数据处理速率。

Description

基于FPGA的高速定点FFT处理器及其处理方法
技术领域
本发明涉及数字信号处理技术领域,更进一步涉及通信和雷达信号处理技术领域中基于现场可编程门阵列(Field Programmable Gate Array,FPGA)的高速定点快速傅里叶变换(Fast Fourier Transform,FFT)处理器及其处理方法。本发明可使数据在现场可编程门阵列中进行快速傅里叶变换实时处理时提高数据处理速率和系统性能。
背景技术
FFT运算的实现方式种类繁多,既可以用软件实现,也可以用硬件实现。由于一般软件都运行在PC机或服务器等大型计算设备上,其计算速度很慢,而且设备体积庞大,不能满足雷达、信号分析等应用领域对FFT处理快速、便携的要求。所以,FFT的实现一般多采用嵌入式的硬件系统如单片机、DSP(Digital Signal Process)处理器,但是随着技术的进步,人们对于雷达、信号分析这些应用领域的要求也越来越高,这些嵌入式硬件系统的计算速度已不能满足这些应用领域的要求,难以与高速的A/D器件匹配。而面向DSP的各类专用集成电路(ASIC)芯片可以解决并行性和速度的问题,但其高昂的开发费用、耗时的设计周期和不灵活的纯硬件结构,使得基于DSP的解决方案日益失去其实用性。
FPGA是Field Programmable Gate Array的缩写,即现场可编程门阵列。相比于PAL、GAL、CPLD等可编程器件,其具有更高的集成度、更强的逻辑实现能力和更好的设计灵活性。并且随着集成电路技术的快速发展,FPGA集成度迅速增加已进入千万门级,并且它提供了丰富的片上资源,降低了设计成本,缩短了设计周期。采用并行度更大、速度更快、灵活度更高的FPGA芯片来实现复杂数字系统的设计开发已成为必然趋势。而在FPGA中对FFT运算进行实现,不但要求运算速度快,而且要兼顾电路面积,两者之间要有良好的均衡。
四川虹微技术有限公司拥有的专利技术“一种蝶形运算FFT处理器”(申请号200810046075.8,授权公告号CN101354700B),公开了一种用CORDIC算法实现的基4FFT运算方法,该方法使用了CORDIC旋转算法器来实现复数的乘法。该专利技术存在的不足是,需要13个周期才能完成一次蝶形运算,数据运算的延迟较长,难以满足FFT处理器对实时性的要求,而且控制逻辑复杂,电路规模较大。
杭州中科微电子有限公司申请的专利“一种实现基2FFT计算的FFT处理器”(申请号200910097236.0,申请公告号CN101847137A),公开了一种基于模块复用方法实现的基2FFT运算方法,该方法使用两类不同的复用模块完成对数据的FFT运算。该处理器存在的不足是,数据运算的延迟较长,同时FFT处理器不能对连续的输入数据进行FFT运算,限制了FFT处理器的应用领域。
同时,上述两项专利共同存在的不足是,FFT处理器每个周期均只对两个数据进行蝶形运算,使得FFT处理器的工作频率较低,难以与高速A/D器件匹配。
发明内容
本发明的目的在于克服上述现有技术的不足,解决传统FFT处理器控制逻辑复杂、处理延迟较长、工作频率较低的问题,提出了一种基于FPGA的高速定点FFT处理器,并采用流水线结构方式实现对数据快速、高精度的FFT运算处理。
本发明基于FPGA的高速定点FFT处理器,包括多级FFT处理模块和一级倒位序输出模块。FFT处理模块包括控制单元、数据翻转单元、存储单元及蝶形处理单元;倒位序输出模块包括控制单元、数据翻转单元及存储单元。
FFT处理模块中的存储单元,通过数据总线与数据翻转单元、蝶形处理单元相连,通过控制总线与控制单元相连;FFT处理模块中的控制单元通过控制总线与数据翻转单元、蝶形处理单元相连。倒位序模块中的存储单元,通过数据总线与数据翻转单元相连,通过控制总线与控制单元相连;倒位序模块中的控制单元通过控制总线与数据翻转单元相连。
FFT处理模块,对输入数据进行蝶形处理,每个时钟周期对四个相对应的数据进行两次蝶形处理,并将处理结果输出到下一级FFT处理模块或倒位序输出模块。倒位序输出模块,接收FFT处理模块的数据,并对数据进行倒位序操作,最后将结果输出。FFT处理器中多级FFT处理模块的级联数目由FFT处理器处理的数据序列长度决定。
本发明基于FPGA的高速定点FFT处理方法的具体步骤如下:
(1)接收数据
多级FFT处理模块中的第一级FFT处理模块接收待进行FFT运算的输入数据。
(2)数据翻转
FFT处理模块中的数据翻转单元,在控制单元的控制下,每个时钟周期对待进行FFT运算的输入数据的相对位置进行一次调整,得到调整后的数据。
(3)数据存储
FFT处理模块中的数据翻转单元将调整后的数据通过数据总线传输给FFT处理模块中的存储单元,在控制单元的控制下,存储单元将翻转单元的输出数据存入到“写”状态的存储器组,存储单元的数据选择器选择“读”状态的存储器组的输出数据作为待处理数据。
(4)数据蝶形处理
FFT处理模块中的存储单元将待处理数据通过数据总线传输给FFT处理模块中的蝶形处理单元,蝶形处理单元采用蝶形处理方法对数据进行处理,得到蝶形处理后数据。
(5)判断FFT运算是否结束
5a)将已经级联的FFT处理模块个数相加,获得已经级联的处理模块数目。
5b)判断已经级联的处理模块数目是否与多级FFT处理模块级联数目相等,如果是,则认为FFT运算完成,执行步骤(6)的操作;如果否,则认为FFT运算没有完成,执行步骤5c)的操作。
5c)前级FFT处理模块中的蝶形处理单元将蝶形处理后数据通过数据总线传输给本级FFT处理模块中的数据翻转单元,在控制单元的控制下,数据翻转单元每个时钟周期对蝶形处理后数据的相对位置进行一次调整,得到调整后的数据,执行步骤(3)的操作。
(6)处理后数据位置调整
多级FFT处理模块中最后一级FFT处理模块中的蝶形处理单元,将蝶形处理后数据通过数据总线传输给倒位序输出模块中的数据翻转单元,在控制单元的控制下,数据翻转单元每个时钟周期对蝶形处理后数据的相对位置进行一次调整,得到调整后的处理数据。
(7)调整后数据存储
倒位序输出模块中的数据翻转单元,将调整后的处理数据通过数据总线传输给倒位序输出模块中的存储单元,存储单元在控制单元的控制下,将调整后的处理数据写入到数据存储器中。
(8)倒位序输出
倒位序输出模块中存储单元的数据选择器,在控制单元的控制下,对数据存储器中存储的数据进行倒位序操作,得到数据的倒位序输出数据。
本发明与现有技术相比具有以下特点:
第一,由于本发明采用现场可编程门阵列(FPGA)实现整个定点FFT处理器,克服了现有技术基于DSP的FFT处理器的设计周期长、硬件成本高,使得本发明的硬件开销较小且设计周期短,可以适应于不同的通信或雷达信号处理系统。
第二,由于本发明在对输入数据进行FFT运算的过程中采用流水线的工作方式,相比现有技术基于FPGA的FFT处理器,克服了FFT处理器无法对连续数据进行FFT运算的缺陷,使得本发明提高了处理数据的吞吐量。
第三,由于本发明采用多数据并行处理的方式实现FFT处理器,相比现有技术基于双数据并行处理方式,使得本发明提高了FFT处理器的工作频率及数据处理速度。
附图说明
图1为本发明处理器的方框图;
图2为本发明处理器倒位序输出模块的方框图;
图3为本发明处理器存储单元的方框图;
图4为本发明处理器蝶形处理单元的方框图;
图5为本发明处理器数据存储器的存储数据分布图;
图6为本发明处理方法的流程图。
具体实施方式:
下面结合附图对本发明的FFT处理器做进一步的描述。
参照附图1,本发明的FFT处理器包括多级FFT处理模块和一级倒位序输出模块。FFT处理模块和倒位序输出模块按照流水线方式通过数据总线和控制总线级联,多级FFT处理模块的级联数目由FFT处理器处理的数据序列长度决定,本实施例中,FFT处理模块的级联数目为10。FFT处理模块接收前级FFT处理模块或待进行FFT运算的输入数据,对输入数据进行蝶形处理,每个时钟周期对四个相对应的数据进行两次蝶形处理,并将处理结果输出到下一级FFT处理模块或倒位序输出模块。倒位序输出模块,接收多级FFT处理模块中最后一级FFT处理模块的输出数据,并对数据进行倒位序操作,将结果输出。
FFT处理模块包括控制单元、数据翻转单元、存储单元和蝶形处理单元。其中,存储单元,通过数据总线与数据翻转单元、蝶形处理单元相连,还通过控制总线与控制单元相连;控制单元通过控制总线与数据翻转单元、蝶形处理单元相连。
参照附图2,本发明的倒位序输出模块,包括控制单元、数据翻转单元和存储单元。其中,存储单元,通过数据总线与数据翻转单元相连,通过控制总线与控制单元相连;控制单元通过控制总线与数据翻转单元相连。
参照附图3,本发明的存储单元包括八个数据存储器和一个数据选择器;八个数据存储器分成两组构成“乒乓”结构,同组的数据存储器又分为两个实部存储器和两个虚部存储器分别存储数据的实部和虚部;实部存储器、虚部存储器通过各自的数据总线分别与数据选择器相连;数据存储器存储每级FFT处理模块的输入数据,数据选择器从“乒乓”存储器中选择出正确数据并调整其对应位置,将结果输出。
参照附图4,本发明的蝶形处理单元包括四个处理单元和两个蝶形因子存储器;四个处理单元排列成两行两列,不同列的处理单元之间通过数据总线交叉互联,同列的处理单元通过数据总线与一个蝶形因子存储器相连,两个蝶形因子存储器通过数据总线分别与不同列的处理单元相连。
下面结合附图6对本发明处理方法做进一步描述,其步骤如下:
步骤1.数据翻转
多级FFT处理模块中的第一级FFT处理模块接收待进行FFT运算的输入数据。由于FFT运算的对称性,顺序存储的数据存储方式会造成存储器带宽利用不均衡的问题,所以本设计采用了对称翻转的存储方式。以16点数据的FFT运算为例,附图5表示的是输入数据在同组的数据存储器中的存储分布图,每隔四分之一的输入数据序列长度,输入数据在同组数据存储器中的相对存储位置会翻转一次。输入数据翻转单元,按照以上翻转规则,每个时钟周期调整输入数据的相对位置,得到调整后的数据。
步骤2.数据存储
FFT处理模块中的数据翻转单元将调整后的数据通过数据总线传输给FFT处理模块中的存储单元。参照附图3,本发明FFT处理器存储单元中的八个数据存储器分为RAMO数据存储器组和RAM1数据存储器组,这两组数据存储器组构成“乒乓”存储结构。每组数据存储器分为实部存储器和虚部存储器,分别存储调整后的数据的实部和虚部。另外每组数据存储器的实部存储器及虚部存储器还分别包括A存储器和B存储器两个数据存储器,对数据进行分区存储。由于本发明采用了流水线结构,所以任意时刻两组数据存储器中都有一组数据存储器为“读”状态,而另一组数据存储器为“写”状态。FFT处理模块中的存储单元将调整后的数据存入到“写”状态的存储器组。由于存储单元的输入数据已经进行了相对位置调整,为了保证存储单元输出数据的相对位置与FFT处理器的输入数据的相对位置一致,所以同组的两个存储器在读数据的时候产生地址顺序并不一致。参照附图5,同组数据存储器中的A存储器首先同时读取0区数据、2区数据,然后同时读取1区数据、3区数据;B存储器首先同时读取1区数据、3区数据,然后同时读取0区数据、2区数据。存储单元中的控制单元按照上述规则控制“读”状态的数据存储器组输出数据,同时数据选择器选择“读”状态的存储器组的数据输出,得到待处理数据。
步骤3.数据蝶形处理
FFT处理模块中的存储单元将待处理数据通过数据总线传输给FFT处理模块中的蝶形处理单元,蝶形处理单元采用蝶形处理方法对数据进行处理,得到蝶形处理后数据。蝶形处理方法的具体步骤如下:
第一步,对于蝶形处理单元的输入数据,按照下式求得第一次蝶形处理的结果:
Y 1 ( i ) = X ( i ) + X ( i + N / 2 ) × W N p
Y 2 ( i ) = X ( i ) - X ( i + N / 2 ) × W N p
Y 3 ( i ) = X ( i + N / 4 ) + X ( i + 3 N / 4 ) × W N p
Y 4 ( i ) = X ( i + N / 4 ) - X ( i + 3 N / 4 ) × W N p
其中,Y1、Y2、Y3、Y4分别表示第一次蝶形处理的输出序列,X为蝶形处理单元的输入数据序列,i、i+N/4、i+N/2、i+3N/4表示当前处理数据在输入数据序列中的对应位置,0≤i≤N/4-1,N为输入数据的序列长度,
Figure BSA00000783571600065
为输入数据序列进行蝶形处理所需的蝶形因子;
第二步,对于第一步蝶形处理得到的结果,按照下式求得第二次蝶形处理的结果:
Z ( 4 k ) = Y 1 ( k ) + Y 3 ( k ) × W N p
Z ( 4 k + 1 ) = Y 1 ( k ) - Y 3 ( k ) × W N p
Z ( 4 k + 2 ) = Y 2 ( k ) + Y 4 ( k ) × W N p
Z ( 4 k + 3 ) = Y 2 ( k ) - Y 4 ( k ) × W N p
其中,Z表示第二次蝶形处理后的输出数据序列,4k、4k+1、4k+2、4k+3表示处理结果在输出序列中的对应位置,0≤k≤N/4-1,N为输入数据的序列长度,Y1、Y2、Y3、Y4表示第一次蝶形处理的结果,
Figure BSA00000783571600073
为数据进行蝶形处理所需的蝶形因子。
从步骤2存储单元输出数据的读取规则中,我们可以看出存储单元输出的待处理数据在输入数据序列中的对应位置关系恰好满足蝶形处理方法对待处理数据的要求。由此,通过蝶形处理方法,得到蝶形处理后数据。
步骤4.判断FFT运算是否结束
由于本发明采用了流水线结构,所以本发明的FFT处理器由多级FFT处理模块和倒位序输出模块级联构成,而FFT处理模块的级联数目由FFT处理器处理的数据序列长度决定。
4a)将已经级联的FFT处理模块个数相加,获得已经级联的处理模块数目。
4b)判断已经级联的处理模块数目是否与多级FFT处理模块级联数目相等,如果是,则认为FFT运算完成,执行步骤5的操作;如果否,则认为FFT运算没有完成,执行步骤4c)的操作;
4c)前级FFT处理模块中的蝶形处理单元将蝶形处理后数据通过数据总线传输给本级FFT处理模块中的数据翻转单元。由于存储器带宽利用不均衡的问题,与步骤1相同,数据翻转单元需要对蝶形处理后数据进行相对位置调整。同时,由于在FFT处理模块中的存储单元对数据采用了分区存储,所以使得FFT处理模块输出的蝶形处理后数据在数据序列中的对应位置不连续。FFT处理模块从数据序列的第一个数据开始先连续输出4个蝶形处理后数据然后跳过4个蝶形处理后数据再连续输出4个蝶形处理后数据,按如此规则输出一半数据序列长度的数据后再按同样方式输出另外一半数据序列长度的数据。由于上述FFT处理模块非连续的输出数据方式,本级FFT处理模块的数据翻转单元与第一级FFT处理模块的数据翻转单元不同,本级FFT处理模块的数据翻转单元每隔八分之一数据序列长度翻转一次蝶形处理后数据在同组数据存储器中的相对存储位置。本级FFT处理模块中的数据翻转单元,按照上述翻转规则,每个时钟周期对蝶形处理后数据的相对位置进行一次调整,得到调整后的数据,执行步骤3的操作;
步骤5.处理后数据位置调整
多级FFT处理模块中最后一级FFT处理模块中的蝶形处理单元,将蝶形处理后数据通过数据总线传输给倒位序输出模块中的数据翻转单元。由于FFT处理模块非连续的输出数据方式,倒位序输出模块中的数据翻转单元每隔八分之一数据序列长度翻转一次蝶形处理后数据在同组数据存储器中的相对存储位置。倒位序输出模块中的数据翻转单元,按照上述翻转规则,每个时钟周期对蝶形处理后数据的相对位置进行一次调整,得到调整后的处理数据;
步骤6.调整后处理数据存储
倒位序输出模块中的数据翻转单元,将调整后的处理数据通过数据总线传输给倒位序输出模块中的存储单元。存储单元在控制单元的控制下,将调整后的处理数据存入到“写”状态的数据存储器中;
步骤7.倒位序输出
对于已经处理完的存储数据,本发明的FFT处理器需要对其进行倒位序排列才能得到正确数据序列顺序的输出结果。以32点数据为例,倒位序后数据在数据序列中的对应位置与倒位序前数据在数据序列中的对应位置的映射关系如下:
n={b4,b3,b2,b1,b0}
r=24×b0+23×b1+22×b2+21×b3+20×b4
其中,n表示倒位序前数据在数据序列中的对应位置,b4、b3、b2、b1、b0分别表示n用二进制数表示时对应数据位上的数值,r表示对n进行倒位序操作后数据在数据序列中的对应位置。
倒位序输出模块中存储单元的数据选择器,按照上述倒位序规则,对数据存储器中存储的数据进行倒位序操作,得到倒位序输出数据。

Claims (6)

1.基于FPGA的高速定点FFT处理器,包括多级FFT处理模块和一级倒位序输出模块;所述FFT处理模块中的存储单元,通过数据总线与数据翻转单元、蝶形处理单元相连,通过控制总线与控制单元相连;所述FFT处理模块中的控制单元通过控制总线与数据翻转单元、蝶形处理单元相连;所述倒位序模块中的存储单元,通过数据总线与数据翻转单元相连,通过控制总线与控制单元相连;所述倒位序模块中的控制单元通过控制总线与数据翻转单元相连;
所述的FFT处理模块,对输入数据进行蝶形处理,每个时钟周期对四个相对应的数据进行两次蝶形处理,并将处理结果输出到下一级FFT处理模块或倒位序输出模块;
所述的倒位序输出模块,接收FFT处理模块的数据,并对数据进行倒位序操作,最后将结果输出。
2.根据权利要求书1所述的基于FPGA的高速定点FFT处理器,其特征在于,所述多级FFT处理模块的级联数目由FFT处理器处理数据的序列长度决定。
3.根据权利要求书1所述的基于FPGA的高速定点FFT处理器,其特征在于,所述存储单元包括八个数据存储器和一个数据选择器;八个数据存储器分成两组构成“乒乓”结构,同组的数据存储器又分为两个实部存储器和两个虚部存储器分别存储数据的实部和虚部;实部存储器、虚部存储器通过各自的数据总线分别与数据选择器相连;数据存储器存储每级FFT处理模块的输入数据,数据选择器从“乒乓”存储器中选择出正确数据并调整其相应位置,将结果输出。
4.根据权利要求书1所述的基于FPGA的高速定点FFT处理器,其特征在于,所述蝶形处理单元包括四个处理单元和两个蝶形因子存储器;四个处理单元排列成两行两列,不同列的处理单元之间通过数据总线交叉互联,同列的处理单元通过数据总线与一个蝶形因子存储器相连,两个蝶形因子存储器通过数据总线分别与不同列的处理单元相连。
5.基于FPGA的高速定点FFT处理方法,包括如下步骤:
(1)接收数据
多级FFT处理模块中的第一级FFT处理模块接收待进行FFT运算的输入数据;
(2)数据翻转
FFT处理模块中的数据翻转单元,在控制单元的控制下,每个时钟周期对待进行FFT运算的输入数据的相对位置进行一次调整,得到调整后的数据;
(3)数据存储
FFT处理模块中的数据翻转单元将调整后的数据通过数据总线传输给FFT处理模块中的存储单元,在控制单元的控制下,存储单元将翻转单元的输出数据存入到“写”状态的存储器组,存储单元的数据选择器选择“读”状态的存储器组的输出数据作为待处理数据;
(4)数据蝶形处理
FFT处理模块中的存储单元将待处理数据通过数据总线传输给FFT处理模块中的蝶形处理单元,蝶形处理单元采用蝶形处理方法对数据进行处理,得到蝶形处理后数据;
(5)判断FFT运算是否结束
5a)将已经级联的FFT处理模块个数相加,获得已经级联的处理模块数目;
5b)判断已经级联的处理模块数目是否与多级FFT处理模块级联数目相等,如果是,则认为FFT运算完成,执行步骤(6)的操作;如果否,则认为FFT运算没有完成,执行步骤5c)的操作;
5c)前级FFT处理模块中的蝶形处理单元将蝶形处理后数据通过数据总线传输给本级FFT处理模块中的数据翻转单元,在控制单元的控制下,数据翻转单元每个时钟周期对蝶形处理后数据的相对位置进行一次调整,得到调整后的数据,执行步骤(3)的操作;
(6)处理后数据位置调整
多级FFT处理模块中最后一级FFT处理模块中的蝶形处理单元,将蝶形处理后数据通过数据总线传输给倒位序输出模块中的数据翻转单元,在控制单元的控制下,数据翻转单元每个时钟周期对蝶形处理后数据的相对位置进行一次调整,得到调整后的处理数据;
(7)调整后数据存储
倒位序输出模块中的数据翻转单元,将调整后的处理数据通过数据总线传输给倒位序输出模块中的存储单元,存储单元在控制单元的控制下,将调整后的处理数据写入到数据存储器中;
(8)倒位序输出
倒位序输出模块中存储单元的数据选择器,在控制单元的控制下,对数据存储器中存储的数据进行倒位序操作,得到数据的倒位序输出数据。
6.根据权利要求书5所述的基于FPGA的高速定点FFT处理方法,其特征在于,所述步骤(4)的蝶形处理方法的具体步骤如下:
第一步,对于蝶形处理单元的输入数据,按照下式求得第一次蝶形处理的结果:
Y 1 ( i ) = X ( i ) + X ( i + N / 2 ) × W N p
Y 2 ( i ) = X ( i ) - X ( i + N / 2 ) × W N p
Y 3 ( i ) = X ( i + N / 4 ) + X ( i + 3 N / 4 ) × W N p
Y 4 ( i ) = X ( i + N / 4 ) - X ( i + 3 N / 4 ) × W N p
其中,Y1、Y2、Y3、Y4分别表示第一次蝶形处理的输出序列,X为蝶形处理单元的输入数据序列,i、i+N/4、i+N/2、i+3N/4表示当前处理数据在输入数据序列中的对应位置,0≤i≤N/4-1,N为输入数据的序列长度,
Figure FSA00000783571500035
为输入数据序列进行蝶形处理所需的蝶形因子;
第二步,对于第一步蝶形处理得到的结果,按照下式求得第二次蝶形处理的结果:
Z ( 4 k ) = Y 1 ( k ) + Y 3 ( k ) × W N p
Z ( 4 k + 1 ) = Y 1 ( k ) - Y 3 ( k ) × W N p
Z ( 4 k + 2 ) = Y 2 ( k ) + Y 4 ( k ) × W N p
Z ( 4 k + 3 ) = Y 2 ( k ) - Y 4 ( k ) × W N p
其中,Z表示第二次蝶形处理后的输出数据序列,4k、4k+1、4k+2、4k+3表示处理结果在输出序列中的对应位置,0≤k≤N/4-1,N为输入数据的序列长度,Y1、Y2、Y3、Y4表示第一次蝶形处理的结果,
Figure FSA000007835715000310
为数据进行蝶形处理所需的蝶形因子。
CN201210364566.3A 2012-09-18 2012-09-18 基于fpga的高速定点fft处理器及其处理方法 Expired - Fee Related CN102929837B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210364566.3A CN102929837B (zh) 2012-09-18 2012-09-18 基于fpga的高速定点fft处理器及其处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210364566.3A CN102929837B (zh) 2012-09-18 2012-09-18 基于fpga的高速定点fft处理器及其处理方法

Publications (2)

Publication Number Publication Date
CN102929837A true CN102929837A (zh) 2013-02-13
CN102929837B CN102929837B (zh) 2015-06-17

Family

ID=47644638

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210364566.3A Expired - Fee Related CN102929837B (zh) 2012-09-18 2012-09-18 基于fpga的高速定点fft处理器及其处理方法

Country Status (1)

Country Link
CN (1) CN102929837B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103413571A (zh) * 2013-07-29 2013-11-27 西北工业大学 存储器和利用该存储器实现检错纠错的方法
CN105893326A (zh) * 2016-03-29 2016-08-24 西安科技大学 基于fpga实现65536点fft的装置和方法
CN107291658A (zh) * 2016-04-13 2017-10-24 中兴通讯股份有限公司 一种数据信号的处理方法及装置
CN110806315A (zh) * 2019-11-20 2020-02-18 北京工业大学 一种基于倒位编辑的齿轮箱复合故障诊断方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101317172A (zh) * 2005-11-25 2008-12-03 松下电器产业株式会社 快速傅立叶变换电路
CN101520769A (zh) * 2009-04-10 2009-09-02 炬才微电子(深圳)有限公司 一种数据处理的方法和系统
CN101706770A (zh) * 2009-11-03 2010-05-12 北京天童芯源科技有限公司 包含四条指令的支持快速傅里叶变换运算的方法
CN101937424A (zh) * 2010-09-10 2011-01-05 南京航空航天大学 基于fpga实现高速fft处理的方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101317172A (zh) * 2005-11-25 2008-12-03 松下电器产业株式会社 快速傅立叶变换电路
CN101520769A (zh) * 2009-04-10 2009-09-02 炬才微电子(深圳)有限公司 一种数据处理的方法和系统
CN101706770A (zh) * 2009-11-03 2010-05-12 北京天童芯源科技有限公司 包含四条指令的支持快速傅里叶变换运算的方法
CN101937424A (zh) * 2010-09-10 2011-01-05 南京航空航天大学 基于fpga实现高速fft处理的方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
张琼: "基于FPGA和DAB的可变点FFT处理器研究", 《中国优秀硕士学位论文全文数据库(电子期刊)信息科技辑》, vol. 2011, no. 7, 31 July 2011 (2011-07-31) *
张竺君: "基于FPGA的可变点FFT处理器的设计与实现", 《中国优秀硕士学位论文全文数据库(电子期刊)信息科技辑》, vol. 2010, no. 1, 31 January 2010 (2010-01-31) *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103413571A (zh) * 2013-07-29 2013-11-27 西北工业大学 存储器和利用该存储器实现检错纠错的方法
CN103413571B (zh) * 2013-07-29 2016-03-02 西北工业大学 存储器和利用该存储器实现检错纠错的方法
CN105893326A (zh) * 2016-03-29 2016-08-24 西安科技大学 基于fpga实现65536点fft的装置和方法
CN105893326B (zh) * 2016-03-29 2019-02-01 西安科技大学 基于fpga实现65536点fft的装置和方法
CN107291658A (zh) * 2016-04-13 2017-10-24 中兴通讯股份有限公司 一种数据信号的处理方法及装置
CN107291658B (zh) * 2016-04-13 2020-09-11 南京中兴软件有限责任公司 一种数据信号的处理方法及装置
CN110806315A (zh) * 2019-11-20 2020-02-18 北京工业大学 一种基于倒位编辑的齿轮箱复合故障诊断方法
CN110806315B (zh) * 2019-11-20 2021-04-16 北京工业大学 一种基于倒位编辑的齿轮箱复合故障诊断方法

Also Published As

Publication number Publication date
CN102929837B (zh) 2015-06-17

Similar Documents

Publication Publication Date Title
CN103226543B (zh) 一种流水线结构的fft处理器
CN101782893B (zh) 可重构数据处理平台
CN102945224A (zh) 基于fpga的高速可变点fft处理器及其处理方法
CN105718423A (zh) 一种流水可重构的单精度浮点fft/ifft协处理器
CN101763338B (zh) 一种点数可变的混合基fft/ifft实现装置及其方法
CN102929837B (zh) 基于fpga的高速定点fft处理器及其处理方法
Norollah et al. RTHS: A low-cost high-performance real-time hardware sorter, using a multidimensional sorting algorithm
CN103218348A (zh) 快速傅里叶变换处理方法和系统
CN103984560A (zh) 基于大规模粗粒度嵌入式可重构系统及其处理方法
CN101847137B (zh) 一种实现基2fft计算的fft处理器
CN103984677A (zh) 基于大规模粗粒度嵌入式可重构系统及其处理方法
CN104699624A (zh) 面向fft并行计算的无冲突存储访问方法
CN103544111B (zh) 一种基于实时性处理的混合基fft方法
CN101211333A (zh) 一种信号处理方法、装置和系统
CN101650706A (zh) Fft分支计算方法及装置
CN104050148A (zh) 快速傅里叶变换加速器
CN102541813B (zh) 一种多粒度并行fft蝶形计算的方法及相应的装置
CN103034621A (zh) 基2×k并行fft架构的地址映射方法及系统
CN106021171A (zh) 一种基于大规模粗粒度可重构处理器的sm4-128的密钥扩展实现方法及系统
Korat et al. An efficient hardware implementation of vector-based odd-even merge sorting
JP2015503785A (ja) Fft/dftの逆順ソーティングシステム、方法およびその演算システム
Shi et al. Accelerating intersection computation in frequent itemset mining with fpga
CN102411557B (zh) 多粒度并行fft计算装置
CN100442847C (zh) H.264整数变换加速的装置
CN101694648B (zh) 傅里叶变换处理方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20150617

Termination date: 20210918

CF01 Termination of patent right due to non-payment of annual fee