CN102810087B - 一种傅立叶变换的实现装置 - Google Patents

一种傅立叶变换的实现装置 Download PDF

Info

Publication number
CN102810087B
CN102810087B CN201110142424.8A CN201110142424A CN102810087B CN 102810087 B CN102810087 B CN 102810087B CN 201110142424 A CN201110142424 A CN 201110142424A CN 102810087 B CN102810087 B CN 102810087B
Authority
CN
China
Prior art keywords
fft
ram
twiddle factor
control
control modules
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.)
Active
Application number
CN201110142424.8A
Other languages
English (en)
Other versions
CN102810087A (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.)
Sanechips Technology Co Ltd
Original Assignee
ZTE Corp
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 ZTE Corp filed Critical ZTE Corp
Priority to CN201110142424.8A priority Critical patent/CN102810087B/zh
Publication of CN102810087A publication Critical patent/CN102810087A/zh
Application granted granted Critical
Publication of CN102810087B publication Critical patent/CN102810087B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Complex Calculations (AREA)
  • Logic Circuits (AREA)

Abstract

本发明公开了一种实现快速傅立叶变换及快速傅立叶逆变换的装置,实现混合基变点数FFT运算,节约硬件资源。该装置可实现混合基傅里叶计算,支持输入点数=2n×3n×4n×5n的运算,包括:FFT控制模块、m个ALU模块、m组RAM控制模块、旋转因子产生模块:FFT控制模块用于向各模块发送启动命令,向每个ALU模块发送待运算数据、基数选择信号以及旋转因子,向每个RAM控制模块和旋转因子产生模块发送当前的FFT点数;控制迭代状态,控制每个ALU模块进行基数为2或3或4或5的蝶形运算、每个RAM控制模块的读写以及所述旋转因子产生模块的旋转因子生成。本发明装置实现简单,同时提高运行速度、减少硬件开销。

Description

一种傅立叶变换的实现装置
技术领域
本发明涉及无线通信领域,尤其涉及一种实现快速傅立叶变换(Fast FourierTransform,简称FFT)及快速傅立叶逆变换(Inverse Fast FourierTransform,简称IFFT)的实现装置。
背景技术
LTE系统是一种标准化的新一代无线通信技术,其上行链路采用基于DFT(Discrete Fourier Transform,离散傅立叶变换)的SC-FDMA(单载波频分复用多址接入)方案,下行链路采用基于FFT的OFDMA(正交频分多址接入)方案。其中SC-FDMA是一种基于离散傅立叶变换扩展的正交频分复用(DFT-S OFDM)多址接入方案。两种方案的共同点都是将调制数据进行串-并转换,转换后的每路并行数据分别映射到一个相应的子(副)载波进行传输。因此变点数的FFT运算在数字信号处理领域中被广泛应用,但是一般都是2点和4点DFT运算,局限性较大,使用范围受限。
发明内容
本发明要解决的技术问题是提供一种实现快速傅立叶变换及快速傅立叶逆变换的装置,实现混合基变点数FFT运算,节约硬件资源。
为解决上述技术问题,本发明提供了一种傅里叶变换的实现装置,用于实现混合基傅里叶计算,支持输入点数=2n×3n×4n×5n的运算,所述装置包括:快速傅里叶变换(FFT)控制模块、m个算数逻辑单元(ALU)模块、m组随机存取存储器(RAM)控制模块、旋转因子产生模块,m≥1,其中:
所述FFT控制模块,用于在接收到待运算数据和输入点数后向各模块发送启动命令,向每个ALU模块发送待运算数据并根据输入点数向每个ALU模块发送基数选择信号,以及所述旋转因子产生模块生成的旋转因子,向每个RAM控制模块和旋转因子产生模块发送当前的FFT点数;用于控制迭代状态,基于当前迭代状态控制每个ALU模块的运算、每个RAM控制模块的读写以及所述旋转因子产生模块的旋转因子生成;
所述ALU模块,用于在接收到启动命令后,根据所述FFT控制模块发送的基数选择信号、当前的迭代状态以及旋转因子对待运算数据进行基数为2或3或4或5的蝶形运算,在运算结束后,向所述FFT控制模块发送运算结束信号;
所述RAM控制模块,用于在接收到启动命令后,基于所述FFT控制模块发送的当前迭代状态以及当前FFT点数,进行m路读写操作;
所述旋转因子产生模块,用于在接收到启动命令后,根据当前FFT点数和当前迭代状态从用于存储旋转因子的RAM中读出数据,生成旋转因子,将生成的旋转因子发送给所述FFT控制模块。
进一步地,所述FFT控制模块中的迭代状态包括7级。
进一步地,所述ALU模块包括ALU控制单元、离散傅立叶变换(DFT)单元、旋转因子调整单元,其中:
所述ALU控制单元,用于接收所述FFT控制模块发送的启动命令、基数选择信号和当前迭代状态,根据所述基数选择信号选择相应的蝶形运算,以及用于在所述旋转因子调整单元计算结束后,向所述FFT控制模块发送运算结束信号;
所述DFT单元,用于接收所述FFT控制模块发送的待运算数据,根据所述ALU控制单元选择的蝶形运算对所述待运算数据进行DFT运算,将运算后的数据输入所述旋转因子调整单元;
所述旋转因子调整单元,用于将所述FFT控制模块发送的旋转因子和所述DFT单元输出的数据进行乘法运算,完成旋转因子的调整,将计算后的数据返回给所述FFT控制模块。
进一步地,所述RAM控制模块包括RAM逻辑控制单元、RAM读控制信号产生单元和RAM写控制信号产生单元,其中:
所述RAM逻辑控制单元,用于接收所述FFT控制模块发送的启动命令,基于所述RAM读控制信号产生单元发送的读使能信号和读地址从用于存储数据的RAM中读出数据输出至所述FFT控制模块,以及基于所述RAM写控制信号产生单元发送的写使能信号和写地址将从所述FFT控制模块输入的数据写入用于存储数据的RAM;
所述RAM读控制信号产生单元,用于根据所述FFT控制模块发送的FFT点数以及当前迭代状态,生成读地址并向用于存储数据的RAM发送读使能信号;
所述RAM写控制信号产生单元,用于根据所述FFT控制模块发送的FFT点数以及当前迭代状态,生成写地址并向用于存储数据的RAM发送写使能信号。
进一步地,所述RAM读控制信号产生单元,用于采用以下方式根据所述FFT控制模块发送的FFT点数以及当前迭代状态,生成读地址并向用于存储数据的RAM发送读使能信号:
根据所述FFT控制模块发送的当前迭代状态判断此时是否执行读操作,如果进行读操作,则根据所述FFT控制模块发送的FFT点数和当前迭代状态生成片选信号,选择相应的用于存储数据的RAM,并生成读地址并向所述用于存储数据的RAM发送读使能信号。
进一步地,所述RAM读控制信号产生单元采用以下公式生成片选信号,选择相应的RAM:
Pi=Aq mod7,其中,i为RAM的序号,Aq为序列分解的先验信息;每个RAM中的读地址根据公式产生。
进一步地,所述RAM写控制信号产生单元采用以下方式生成最终数据的写地址:
其中:DFT_mod_count1~DFT_mod_countn为N点DFT迭代时的迭代点数计数器值,DFT_point为当前的输入点数,DFT_modn为输入点数对n取模的结果。
进一步地,所述RAM写控制信号产生单元,用于采用以下方式根据所述FFT控制模块发送的FFT点数以及当前迭代状态,生成写地址并向用于存储数据的RAM发送写使能信号:
根据所述FFT控制模块发送的当前迭代状态判断此时是否执行写操作,如果进行写操作,则根据所述FFT控制模块发送的FFT点数和当前迭代状态生成片选信号,选择相应的用于存储数据的RAM,并生成写地址并向所述用于存储数据的RAM发送写使能信号。
进一步地,所述RAM写控制信号产生单元采用以下公式生成片选信号,选择相应的RAM:
Pi=Aq mod7,其中,i为RAM的序号,Aq为序列分解的先验信息;每个RAM中的写地址根据公式产生。
进一步地,所述旋转因子产生模块包括控制单元、读控制信号产生单元以及旋转因子产生单元,其中:
所述控制单元,用于接收所述FFT控制模块发送的启动命令,向所述读控制信号产生单元和旋转因子产生单元发送控制信号;
所述读控制信号产生单元,用于基于所述控制单元发送的控制信号,接收所述FFT控制模块发送的FFT点数和当前迭代状态,生成读地址并向用于存储旋转因子的RAM发送读使能信号;
所述旋转因子产生单元,用于基于所述控制单元发送的控制信号,接收所述FFT控制模块发送的FFT点数和当前迭代状态,以及接收从用于存储旋转因子的RAM读出的旋转因子,采用迭代运算计算在旋转因子调整过程中所需的旋转因子,输出至所述FFT控制模块。
采用本发明所述装置,可以实现输入点数为2n,3n,4n或5n的FFT运算,且实现方式较为简单。另外,本发明装置还可实现硬件并行度为2的FFT运算,即一次计算两路FFT运算。并且本发明在实现两路FFT运算时,合理地复用硬件资源,减少了硬件面积开销,将FFT/IFFT的运算速度提高了一倍。
附图说明
图1为变点FFT装置的结构框图;
图2为FFT控制模块状态机示意图;
图3为ALU运算模块结构图;
图4为RAM控制模块结构图;
图5为旋转因子产生模块的一种结构图;
图6为旋转因子产生模块的一种具体结构图。
具体实施方式
下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
实施例1
本实施例提供的傅里叶变换的实现装置,用于实现混合基傅里叶计算,支持输入点数=2n×3n×4n×5n的运算,所述装置包括:FFT控制模块、m个算数逻辑单元(ALU)模块、m组随机存取存储器(RAM)控制模块(每组RAM对应一路FFT处理)、旋转因子产生模块,m≥1,其中:
所述FFT控制模块,用于在接收到待运算数据和输入点数后向各模块发送启动命令,向每个ALU模块发送待运算数据并根据输入点数向每个ALU模块发送基数选择信号,以及所述旋转因子产生模块生成的旋转因子,向每个RAM控制模块和旋转因子产生模块发送当前的FFT点数;用于控制迭代状态,基于当前迭代状态控制每个ALU模块的运算、每个RAM控制模块的读写以及所述旋转因子产生模块的旋转因子生成;
所述ALU模块,用于在接收到启动命令后,根据所述FFT控制模块发送的基数选择信号、当前的迭代状态以及旋转因子对待运算数据进行基数为2或3或4或5的蝶形运算,在运算结束后,向所述FFT控制模块发送运算结束信号;
所述RAM控制模块,用于在接收到启动命令后,基于所述FFT控制模块发送的当前迭代状态以及当前FFT点数,进行m路读写操作;
所述旋转因子产生模块,用于在接收到启动命令后,根据当前FFT点数和当前迭代状态从用于存储旋转因子的RAM中读出数据,生成旋转因子,将生成的旋转因子发送给所述FFT控制模块。
输入点数例如可以是以下点数中的任意一种:12、24、36、48、60、72、96、108、120、144、180、192、216、240、288、300、324、360、384、432、480、540、576、600、648、720、768、864、900、960、972、1080、1152、1200、1296。
优选地,该ALU模块包括ALU控制单元、DFT单元、旋转因子调整单元,其中:
ALU控制单元,用于接收FFT控制模块发送的启动命令、基数选择信号和当前迭代状态,根据所述基数选择信号选择相应的蝶形运算,以及用于在所述旋转因子调整单元计算结束后,向FFT控制模块发送运算结束信号;
DFT单元,用于接收FFT控制模块发送的待运算数据,根据ALU控制单元选择的蝶形运算对待运算数据进行DFT运算(基数为2或3或4或5),将运算后的数据输入旋转因子调整单元;
旋转因子调整单元,用于将FFT控制模块发送的旋转因子和DFT单元输出的数据进行乘法运算,完成旋转因子的调整,将计算后的数据返回给FFT控制模块。
优选地,该RAM控制模块包括RAM逻辑控制单元、RAM读控制信号产生单元和RAM写控制信号产生单元,其中:
RAM逻辑控制单元,用于接收FFT控制模块发送的启动命令,基于RAM读控制信号产生单元发送的读使能信号和读地址从用于存储数据的RAM中读出数据输出至FFT控制模块,以及基于RAM写控制信号产生单元发送的写使能信号和写地址将从FFT控制模块输入的数据写入用于存储数据的RAM;
RAM读控制信号产生单元,用于根据FFT控制模块发送的FFT点数以及当前迭代状态,生成读地址并向用于存储数据的RAM发送读使能信号;
RAM写控制信号产生单元,用于根据FFT控制模块发送的FFT点数以及当前迭代状态,生成写地址并向用于存储数据的RAM发送写使能信号。
优选地,该RAM读控制信号产生单元,用于采用以下方式根据FFT控制模块发送的FFT点数以及当前迭代状态,生成读地址并向用于存储数据的RAM发送读使能信号:根据FFT控制模块发送的当前迭代状态判断此时是否执行读操作,如果进行读操作,则根据FFT控制模块发送的FFT点数和当前迭代状态生成片选信号,选择相应的用于存储数据的RAM,并生成读地址并向所述用于存储数据的RAM发送读使能信号。
优选地,该RAM写控制信号产生单元,用于采用以下方式根据FFT控制模块发送的FFT点数以及当前迭代状态,生成写地址并向用于存储数据的RAM发送写使能信号:根据FFT控制模块发送的当前迭代状态判断此时是否执行写操作,如果进行写操作,则根据FFT控制模块发送的FFT点数和当前迭代状态生成片选信号,选择相应的用于存储数据的RAM,并生成写地址并向所述用于存储数据的RAM发送写使能信号。
优选地,该旋转因子产生模块包括控制单元、读控制信号产生单元以及旋转因子产生单元,其中:
控制单元,用于接收FFT控制模块发送的启动命令,向读控制信号产生单元和旋转因子产生单元发送控制信号;
读控制信号产生单元,用于基于控制单元发送的控制信号,接收FFT控制模块发送的FFT点数和当前迭代状态,生成读地址并向用于存储旋转因子的RAM发送读使能信号;
旋转因子产生单元,用于基于控制单元发送的控制信号,接收FFT控制模块发送的FFT点数和当前迭代状态,以及接收从用于存储旋转因子的RAM读出的旋转因子,采用迭代运算计算在旋转因子调整过程中所需的旋转因子,输出至FFT控制模块。
应用示例
本实施例以FFT控制模块提供7级迭代状态为例进行说明。硬件装置如图1所示,包括:FFT控制模块、2个ALU(Arithmetic Logic Unit,算数逻辑单元)运算模块、2组RAM(Random Access Memory,随机存取存储器)控制单元、旋转因子产生模块。
由于本实施例中FFT控制模块需要支持多种输入点数FFT运算,若按照每种输入点数设计状态机会导致状态转换异常复杂且容易出错。故此处状态机的设计思想为:无论输入的FFT点数为多少,将状态机分为7个部分:idle(闲置)状态,第一次DFT迭代状态,第二次DFT迭代状态,第三次DFT迭代状态,第四次DFT迭代状态,第五次DFT迭代状态,第六次DFT迭代状态,当系统复位时,状态转向idle态,如图2所示。每次迭代所需要进行的操作由输入的点数来决定,且迭代的次数也是由输入的点数控制,即每次迭代的操作由外部控制,状态机只关注迭代次数的转换。
整个状态机的设计中只关注每次迭代状态的转移,而每次迭代具体执行的点数及每次迭代的具体情况均由状态机外的多路选择决定,下面详细给出多路选择的操作情况:
当FFT控制模块检测到输入的当前FFT点数后,便将2n或3n或4n或5n点DFT迭代的次数由FFT控制模块内部的多路选择器确定下来,即确定附图2中状态机每次基于N(N=2n或3n或4n或5n)点迭代。整体迭代情况确定完之后需要确定每次迭代状态的内部点数运算控制,此时根据多路选择器的结果结合输入的FFT点数来进行每次迭代的中间数据计算控制。无论输入点数是多少,状态机均经过6种迭代状态。若某些小点数FFT只需要经过少于6次的迭代就能完成FFT运算,那此时将其剩余状态设置为数据直通状态。
附图3为ALU运算单元结构图。每个ALU运算单元包括两个子单元:控制逻辑子单元(即ALU控制单元),可配置计算子单元(包括DFT单元和旋转因子调整单元):
1)控制逻辑子单元:用于接到FFT控制模块的启动信号后,启动ALU模块,再利用FFT控制模块传来的基数选择信号对所需进行的蝶形运算公式进行选择,以控制信号的方式向可配置运算子单元输出选择结果,将可配置运算子单元运算之后的数据输出,并在可配置运算子单元计算结束后给出ALU运算结束信号。
2)可配置运算子单元:根据控制逻辑子单元输入的控制信号进行相应运算。其中可配置运算子单元又分为DFT运算子单元和旋转因子调整计算子单元。DFT运算子单元(简称DFT单元)用于对从FFT控制模块中输入的数据先进行2n或3n或4n或5n点的DFT计算;旋转因子调整计算子单元用于将进行过DFT运算之后的数据与相应旋转因子相乘,进行旋转因子的调整,将计算后的数据返回给FFT控制模块。
附图4为RAM控制模块结构图。1组RAM控制模块对应一路FFT处理。其中RAM控制模块中的模块总体控制逻辑检测到FFT控制模块输入的启动信号为高时开启RAM控制模块操作。然后根据FFT控制模块输入的当前迭代状态信号判断此时该执行读/写操作,并根据输入的当前FFT点数信号结合当前迭代状态信号产生RAM片选信号,选中其中相应用于存储数据的RAM,并产生读/写使能,读/写地址。从而将数据读出/存入相应用于存储数据的RAM中。下面将FFT运算数据存储问题分成2个部分来描述:中间过程数据操作和最终数据操作。
中间数据存储方式如下:
在中间计算过程中首先要从7个RAM中选中5或4或3或2个作为本次操作的工作RAM。选RAM的片选信号根据公式Pi=Aq mod7产生,其中i为RAM的序号i=0,1,2,3,4,5,6;Aq为序列分解的先验信息,q=0,1,2,3,4。其中每个RAM中读/写地址根据公式产生。Ai为生成地址和片选信号的参数计数器,Aq的值在初始值的基础上每个时钟(clk)加1。Aq共有5个分别为A0,A1,A2,A3,A4,不同的迭代级数A0,A1,A2,A3,A4的初始值各不相同。采用上述方式存储可以保证寻址不冲突且占用RAM资源最小。
最终输出数据存储地址产生:
最后一级运算结果是乱序的存储在工作RAM中的,在DFT最终输出的时候需要按照一定的地址公式顺序的将数据顺序输出,DFT最终输出地址公式如下:
上述公式中DFT_mod_count1到DFT_mod_countn为N点DFT迭代时的迭代点数计数器,若当前状态为4点DFT迭代则DFT_mode_count为0~3计数,计数器每个clk加1。DFT_point为当前的输入点数。DFT_mod1到DFT_modn为输入点数分别经过的DFT迭代状态的点数,具体地可理解为DFT_modn为输入点数对n取模的结果。
上述公式为一个通用的公式,具体输入的点数只要根据DFT_point(前级模块输入DFT点数信息)和DFT_modn(最后一次DFT迭代状态的点数)来决定进行乘加运算的级数。
本实施例中FFT运算所需要的旋转因子是通过存储加上计算所得。在用于存储旋转因子的RAM中存储极少数的旋转因子,利用旋转因子的可约性,利用读出的极少数旋转因子计算出其他FFT运算中旋转因子调整过程所需旋转因子。
图5为旋转因子产生模块结构图。其中旋转因子产生模块中的总体控制逻辑检测到FFT控制单元输入的启动信号为高之后启动旋转因子产生模块操作。然后根据输入的当前迭代状态值产生读取地址、使能,读出相应旋转因子。再根据FFT点数,当前迭代状态结合读出的旋转因子,根据迭代运算算出旋转因子调整过程中所需旋转因子。最后将结束信号拉高表征旋转因子产生模块操作结束。模块总体控制逻辑主要完成模块的启动和结束操作。其中计算旋转因子调整过程中所需旋转因子电路图如附图6所示。
首先判断输入的当前迭代状态、FFT总点数的值,若这些信号所对应的计算行数和存储在RAM中旋转因子的行数一致,则可以将读出的旋转因子直接用于蝶形运算。若不一致,则将读出的旋转因子再进行迭代运算得到最终的旋转因子。旋转因子产生的迭代运算电路结构是带负反馈结构的复数乘运算,如图6所示,即将上次迭代结果与本次RAM读出的FFT输入点数对应的第一行FFT旋转因子相乘。该旋转因子产生模块可以同时实现两路FFT的计算,即复用该旋转因子产生模块,产生一套旋转因子通过两个硬件接口送给两个模块。
本发明实施例还可用于IFFT变换,IFFT变换和FFT一样只是在输入和输出时对数据取共轭。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。
当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。

Claims (9)

1.一种傅里叶变换的实现装置,用于实现混合基傅里叶计算,支持输入点数=2n×3n×4n×5n的运算,所述装置包括:快速傅里叶变换FFT控制模块、m个算数逻辑单元ALU模块、m组随机存取存储器RAM控制模块、旋转因子产生模块,m≥1,其中:
所述FFT控制模块,用于在接收到待运算数据和输入点数后向各模块发送启动命令,向每个ALU模块发送待运算数据并根据输入点数向每个ALU模块发送基数选择信号,以及所述旋转因子产生模块生成的旋转因子,向每个RAM控制模块和旋转因子产生模块发送当前的FFT点数;用于控制迭代状态,基于当前迭代状态控制每个ALU模块的运算、每个RAM控制模块的读写以及所述旋转因子产生模块的旋转因子生成;
所述ALU模块,用于在接收到启动命令后,根据所述FFT控制模块发送的基数选择信号、当前的迭代状态以及旋转因子对待运算数据进行基数为2或3或4或5的蝶形运算,在运算结束后,向所述FFT控制模块发送运算结束信号;
所述RAM控制模块,用于在接收到启动命令后,基于所述FFT控制模块发送的当前迭代状态以及当前FFT点数,进行m路读写操作;
所述旋转因子产生模块,用于在接收到启动命令后,根据当前FFT点数和当前迭代状态从用于存储旋转因子的RAM中读出数据,生成旋转因子,将生成的旋转因子发送给所述FFT控制模块;
所述ALU模块包括ALU控制单元、离散傅立叶变换DFT单元、旋转因子调整单元,其中:
所述ALU控制单元,用于接收所述FFT控制模块发送的启动命令、基数选择信号和当前迭代状态,根据所述基数选择信号选择相应的蝶形运算,以及用于在所述旋转因子调整单元计算结束后,向所述FFT控制模块发送运算结束信号;
所述DFT单元,用于接收所述FFT控制模块发送的待运算数据,根据所述ALU控制单元选择的蝶形运算对所述待运算数据进行DFT运算,将运算后的数据输入所述旋转因子调整单元;
所述旋转因子调整单元,用于将所述FFT控制模块发送的旋转因子和所述DFT单元输出的数据进行乘法运算,完成旋转因子的调整,将计算后的数据返回给所述FFT控制模块。
2.如权利要求1所述的装置,其特征在于,
所述FFT控制模块中的迭代状态包括7级。
3.如权利要求1所述的装置,其特征在于,
所述RAM控制模块包括RAM逻辑控制单元、RAM读控制信号产生单元和RAM写控制信号产生单元,其中:
所述RAM逻辑控制单元,用于接收所述FFT控制模块发送的启动命令,基于所述RAM读控制信号产生单元发送的读使能信号和读地址从用于存储数据的RAM中读出数据输出至所述FFT控制模块,以及基于所述RAM写控制信号产生单元发送的写使能信号和写地址将从所述FFT控制模块输入的数据写入用于存储数据的RAM;
所述RAM读控制信号产生单元,用于根据所述FFT控制模块发送的FFT点数以及当前迭代状态,生成读地址并向用于存储数据的RAM发送读使能信号;
所述RAM写控制信号产生单元,用于根据所述FFT控制模块发送的FFT点数以及当前迭代状态,生成写地址并向用于存储数据的RAM发送写使能信号。
4.如权利要求3所述的装置,其特征在于,
所述RAM读控制信号产生单元,用于采用以下方式根据所述FFT控制模块发送的FFT点数以及当前迭代状态,生成读地址并向用于存储数据的RAM发送读使能信号:
根据所述FFT控制模块发送的当前迭代状态判断此时是否执行读操作,如果进行读操作,则根据所述FFT控制模块发送的FFT点数和当前迭代状态生成片选信号,选择相应的用于存储数据的RAM,并生成读地址并向所述用于存储数据的RAM发送读使能信号。
5.如权利要求4所述的装置,其特征在于,
所述RAM读控制信号产生单元采用以下公式生成片选信号,选择相应的RAM:
Pi=Aq mod7,其中,i为RAM的序号,Aq为序列分解的先验信息;
每个RAM中的读地址根据公式产生。
6.如权利要求3所述的装置,其特征在于,
所述RAM写控制信号产生单元采用以下方式生成最终数据的写地址:
o u t p u t a d d r = D F T _ mod _ c o u n t 1 * D F T _ p o int D F T _ mod 1 +
D F T _ mod _ c o u n t 2 * D F T _ p o int D F T _ mod 1 * D F T _ mod 2 +
D F T _ mod _ c o u n t 3 * D F T _ p o int D F T _ mod 1 * D F T _ mod 2 * D F T _ mod 3 + ...... +
D F T _ mod _ c o u n t n * D F T _ p o int D F T _ mod 1 * D F T _ mod 2 * ...... * D F T _ mod n
其中:DFT_mod_count1~DFT_mod_countn为N点DFT迭代时的迭代点数计数器值,DFT_point为当前的输入点数,DFT_modn为输入点数对n取模的结果。
7.如权利要求3所述的装置,其特征在于,
所述RAM写控制信号产生单元,用于采用以下方式根据所述FFT控制模块发送的FFT点数以及当前迭代状态,生成写地址并向用于存储数据的RAM发送写使能信号:
根据所述FFT控制模块发送的当前迭代状态判断此时是否执行写操作,如果进行写操作,则根据所述FFT控制模块发送的FFT点数和当前迭代状态生成片选信号,选择相应的用于存储数据的RAM,并生成写地址并向所述用于存储数据的RAM发送写使能信号。
8.如权利要求6所述的装置,其特征在于,
所述RAM写控制信号产生单元采用以下公式生成片选信号,选择相应的RAM:
Pi=Aq mod7,其中,i为RAM的序号,Aq为序列分解的先验信息;
每个RAM中的写地址根据公式产生。
9.如权利要求1所述的装置,其特征在于,
所述旋转因子产生模块包括控制单元、读控制信号产生单元以及旋转因子产生单元,其中:
所述控制单元,用于接收所述FFT控制模块发送的启动命令,向所述读控制信号产生单元和旋转因子产生单元发送控制信号;
所述读控制信号产生单元,用于基于所述控制单元发送的控制信号,接收所述FFT控制模块发送的FFT点数和当前迭代状态,生成读地址并向用于存储旋转因子的RAM发送读使能信号;
所述旋转因子产生单元,用于基于所述控制单元发送的控制信号,接收所述FFT控制模块发送的FFT点数和当前迭代状态,以及接收从用于存储旋转因子的RAM读出的旋转因子,采用迭代运算计算在旋转因子调整过程中所需的旋转因子,输出至所述FFT控制模块。
CN201110142424.8A 2011-05-30 2011-05-30 一种傅立叶变换的实现装置 Active CN102810087B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110142424.8A CN102810087B (zh) 2011-05-30 2011-05-30 一种傅立叶变换的实现装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110142424.8A CN102810087B (zh) 2011-05-30 2011-05-30 一种傅立叶变换的实现装置

Publications (2)

Publication Number Publication Date
CN102810087A CN102810087A (zh) 2012-12-05
CN102810087B true CN102810087B (zh) 2017-04-12

Family

ID=47233794

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110142424.8A Active CN102810087B (zh) 2011-05-30 2011-05-30 一种傅立叶变换的实现装置

Country Status (1)

Country Link
CN (1) CN102810087B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI506457B (zh) * 2014-09-26 2015-11-01 Univ Nat Chiao Tung 折疊式蝶形模組、管線式快速傅利葉轉換處理器及控制方法
CN106372034B (zh) * 2016-08-29 2019-09-17 北京理工大学 一种混合基fft处理器
CN116113940A (zh) * 2020-08-21 2023-05-12 华为技术有限公司 一种图计算装置、处理方法及相关设备
CN112765536B (zh) * 2021-01-26 2023-09-19 中国科学院半导体研究所 一种可配置的fft架构系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101571849A (zh) * 2008-05-04 2009-11-04 中兴通讯股份有限公司 一种快速傅立叶变换处理器及其方法
CN101938442A (zh) * 2009-06-30 2011-01-05 中兴通讯股份有限公司 Dft处理器的预检测基运算方法、混合基运算方法和系统
CN102033852A (zh) * 2009-09-30 2011-04-27 中兴通讯股份有限公司 一种实现fft及ifft运算的装置和方法
US8386552B2 (en) * 2008-09-17 2013-02-26 Freescale Semiconductor, Inc. Fourier transform processing and twiddle factor generation

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101571849A (zh) * 2008-05-04 2009-11-04 中兴通讯股份有限公司 一种快速傅立叶变换处理器及其方法
US8386552B2 (en) * 2008-09-17 2013-02-26 Freescale Semiconductor, Inc. Fourier transform processing and twiddle factor generation
CN101938442A (zh) * 2009-06-30 2011-01-05 中兴通讯股份有限公司 Dft处理器的预检测基运算方法、混合基运算方法和系统
CN102033852A (zh) * 2009-09-30 2011-04-27 中兴通讯股份有限公司 一种实现fft及ifft运算的装置和方法

Also Published As

Publication number Publication date
CN102810087A (zh) 2012-12-05

Similar Documents

Publication Publication Date Title
US8225064B2 (en) Storage region allocation system, storage region allocation method, and control apparatus
CN102810087B (zh) 一种傅立叶变换的实现装置
EP0855657A2 (en) Fast fourier transforming apparatus and method
CN102739195A (zh) 一种fir滤波器的处理方法、装置和系统
US12009948B2 (en) Data processing apparatus and method, base station, and storage medium
CN111737638A (zh) 基于傅里叶变换的数据处理方法及相关装置
US20150301986A1 (en) Fast fourier transform circuit, fast fourier transform processing method, and program recording medium
EP3958149A1 (en) Data processing method and device, storage medium and electronic device
US20060200513A1 (en) Fast Fourier transform processor and method capable of reducing size of memories
CN102184088B (zh) 一种基于串并结合实现有限域乘法的方法及装置
CN103544111B (zh) 一种基于实时性处理的混合基fft方法
CN101082906A (zh) 一种低存储器开销的固定基fft处理器及其方法
CN103873219B (zh) 一种prach基带信号的idft及子载波映射实现方法
Nash High-throughput programmable systolic array FFT architecture and FPGA implementations
US9268744B2 (en) Parallel bit reversal devices and methods
CN103765493B (zh) 数字平方计算机实现的方法和设备
EP2538345A1 (en) Fast fourier transform circuit
CN114297570A (zh) 一种用于通信系统的fft实现装置及其实现方法
CN111356151A (zh) 一种数据处理方法及装置、计算机可读存储介质
CN102611667B (zh) 随机接入检测fft/ifft处理方法及装置
CN113591022A (zh) 一种可分解数据的读写调度处理方法和装置
KR20120100197A (ko) 리포지션된 순서로 데이터를 출력하는 고속 푸리에 변환 장치
CN113971260A (zh) 数字信号处理电路和对应操作方法
CN107451096B (zh) 高吞吐率fft/ifft的fpga信号处理方法
CN110958034B (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
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20121205

Assignee: SANECHIPS TECHNOLOGY Co.,Ltd.

Assignor: ZTE Corp.

Contract record no.: 2015440020319

Denomination of invention: Device for realizing Fourier transform

License type: Common License

Record date: 20151123

LICC Enforcement, change and cancellation of record of contracts on the licence for exploitation of a patent or utility model
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20221121

Address after: 518055 Zhongxing Industrial Park, Liuxian Avenue, Xili street, Nanshan District, Shenzhen City, Guangdong Province

Patentee after: SANECHIPS TECHNOLOGY Co.,Ltd.

Address before: 518057 Ministry of justice, Zhongxing building, South Science and technology road, Nanshan District hi tech Industrial Park, Shenzhen, Guangdong

Patentee before: ZTE Corp.

TR01 Transfer of patent right