CN102214159A - 一种实现3780点fft/ifft的方法及其处理器 - Google Patents
一种实现3780点fft/ifft的方法及其处理器 Download PDFInfo
- Publication number
- CN102214159A CN102214159A CN2011101385900A CN201110138590A CN102214159A CN 102214159 A CN102214159 A CN 102214159A CN 2011101385900 A CN2011101385900 A CN 2011101385900A CN 201110138590 A CN201110138590 A CN 201110138590A CN 102214159 A CN102214159 A CN 102214159A
- Authority
- CN
- China
- Prior art keywords
- wfta
- unit
- fft
- data
- points
- 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.)
- Pending
Links
Images
Landscapes
- Complex Calculations (AREA)
Abstract
本发明涉及一种实现3780点FFT/IFFT的方法及其处理器,它由顶层、中间层和底层三层组成。顶层用混合基法分解3780点,中间层用素因子算法分解63点和60点FFT,底层用WFTA算法完成7点、9点、3点、4点、5点的FFT计算。该方法综合了混合基算法、素因子算法、WFTA算法的优点来实现3780点的FFT,避免了用内插法计算4096点所带来的误差,又减少了混合基算法中的旋转因子和混序单元。此外,本发明的设计中采用复用存储器完成索引的结构不仅电路简单,易于实现,而且可节约芯片资源。
Description
技术领域
本发明涉及一种快速傅里叶变换(Fast Fourier Transform,FFT)处理器,尤其涉及一种用于中国地面传输的数字多路电视、高清晰度电视固定和移动广播业务的调制系统。
背景技术
2006年8月,国家标准管理委员会公布中国数字电视地面广播传输系统标准GB20600-2006《数字电视地面广播传输系统帧结构、信道编码和调制》,即DMB-TH标准。该标准采用时域同步正交频分复用(TDS-OFDM)分别对信号进行调制和解调,其中通过综合考虑多种因素而设计出来的3780点子载波数,亦不同于DVB-T标准中的基2或基4的蝶形算法,在实际应用中具有一定的独创性和新颖性。
常用的实现3780点FFT的方法有两种。一种是内插成4096点FFT,这种方法把3780点FFT通过内插得到4096点,再利用各种基2或基4算法做4096点的FFT,再通过抽取得到3780点FFT。以基4算法为例,由于4096=46,所以需要6级FFT单元。该方法的缺点主要有,一方面由于该方法没有做准确的3780点FFT,前后分别采用了内插器和抽取器,所以必然会带来误差,且这样做采样速率会发生改变,在OFDM系统中将增加同步的复杂度;另一方面由DFT性质可知,有限长序列补零之后,不影响频谱的特性,只是增加了频谱的抽样点数,同时也增加了运算量,运算效率约为92.4%。第二种方法是利用混合基算法实现3780点FFT。根据混合基算法,把3780点做如下分解:3780=7*9*3*4*5,其中7点、9点、3点、4点、5点的FFT采用WFTA算法计算,而各点之间用混合基级联,但不足之处是系统每两级间都要进行混序和引入旋转因子,增加算法的运算量和复杂度,导致硬件设计时消耗更多资源。
为了克服前面两种实现3780点FFT的缺点,本发明结合混合基算法、素因子算法和WFTA算法的优点,在混合基算法的基础上,利用素因子算法消除级与级之间的旋转因子,同时采用WFTA算法减少小点N的DFT运算量。
发明内容
本发明的目的是提出一种实现3780点FFT/IFFT的方法及其处理器,其能同时实现OFDM的调制和解调,其不仅能够精确的计算3780点的IFFT/FFT,而且该方法简单,降低硬件实现的复杂度和芯片的资源利用。
本发明的一种实现3780点FFT/IFFT的方法,其特征在于:该方法是将3780点FFT分为三层,顶层用混合基法分解3780点,中间层用素因子算法分解63点和60点FFT,底层用WFTA算法完成7点、9点、3点、4点、5点的FFT计算。
本发明采用综合分解法实现3780点FFT/IFFT处理器(见图1所示),就是把3780点FFT分为三层,顶层用混合基法分解3780点,中间层用素因子算法分解63点和60点FFT,底层用WFTA算法完成7点、9点、3点、4点、5点的FFT计算。这样不仅减少算法复杂度,而且极大地减少了运算量,在资源利用上占有相当大的优势。
本发明设计的3780点FFT/IFFT处理器由以下单元组成(见图2所示):
1、倍频器11,将输入的时钟进行倍频,倍频后的时钟提供给其他模块处理数据使用。
2、输入共轭单元12,对系统的输入进行调整,即对输入数据取共轭。
3、RAM单元13,输入的数据在时钟同步下存入RAM单元13,在控制单元17的控制下进行数据的读写操作。
4、WFTA运算单元14,主要进行7点,9点,3点,4点以及5点等各级FFT运算。且对数据重新排序,保证原址运算,减小操作时间,节约存储空间的开销。
5、旋转因子运算15,对9点WFTA的输出数据进行旋转因子的相乘。
6、选择器16,选择WFTA运算单元14或者旋转因子运算单元15的输出数据作为RAM单元13数据的输入。
7、控制单元17,控制各个模块协同工作。它给定RAM单元13的读写地址和读写控制,控制选择器16正确选择输入作为输出,控制N点WFTA运算单元14之间正确切换。
8、输出共轭单元18,对系统的输出进行调整,即对输出数据取共轭。与输入共轭单元12一起能够同时实现OFDM调制和解调。
本发明提出的3780点FFT/IFFT处理器,通过图2所示的电路结构,并对每一级运算后有效数据位进行重新定制,用存储器流水线架构,在保证数据处理实时性的同时节省存储资源。
附图说明
图1是综合分解法的层次图。
图2是3780点的IFFT的硬件实现框图。
图3 是不同点数WFTA运算状态切换。
图4 是控制单元实现框图。
图5是WFTA运算单元实现框图。
图6是5点WFTA的实现框图。
图7是 5点WFTA运算矩阵。
图8是流水线的存储器结构。
具体实施方式
下面结合附图以一个具体实施例子阐述本发明涉及的技术方案。
本FFT/IFFT处理器基于FPGA平台的硬件架构如图2所示。
图2为本发明FFT/IFFT处理器的硬件系统框图。在本实例中,一组长度为3780点的数据在时钟的同步作用下进入输入共轭模块12,按实部、虚部分开循环存入RAM单元13,在控制单元17的控制下,数据从RAM单元13中读出,进入到WFTA运算单元14进行n点WFTA运算,计算完再存到RAM单元13的相应地址中,实现原址运算。当进行9点WFTA运算后,数据需要先进入旋转因子运算单元15乘以旋转因子,然后再通过选择器16存入RAM单元13,而其它点进入到WFTA运算单元14进行n点WFTA运算后直接通过选择器16存入RAM单元13,而后输出数据从RAM单元13输出后进入输出共轭单元18再取共轭,完成3780点的IFFT计算。
控制单元17见图4,它保证了数据在各个模块间正确流动,它给定存储器的读写地址和读写控制,控制n点WFTA运算状态以及RAM工作状态的正确切换。控制单元主要由控制信号产生模块171和地址产生模块172组成。
控制信号产生模块171根据输入的帧起始信号,根据每个WFTA运算状态所需要的时钟数,利用计数器产生标志WFTA运算状态的控制信号,分别进行7点、9点、5点、3点和4点的WFTA运算。状态间的切换由状态机实现。如图3所示。
地址产生模块172主要是给RAM提供读写地址以及对应的使能信号,如图4 所示,地址产生模块172包含输入地址产生模块1721、运算地址产生模块1722和输出地址产生模块1723。运算地址产生模块是地址产生模块的关键码,通过产生运算过程中的读写地址,保证WFTA运算过程中数据在存储器重的正确读写。下面以7点为例来说明读写地址是如何产生的。
7点WFTA 运算RAM的读写地址为60×(9n1+7n2)mod63+n3,其可转化为:(540n1+420n2)mod3780+n3。该式可用四级流水线实现:
第一级完成540n1和420n2;
第二级完成540n1+420n2;
第三级完成(540n1+420n2)%3780;
第四级完成(540n1+420n2)%3780+n3。
其中,540、420和3780可以作为常数,当然这些常数在做不同点WFTA时,其值也不同,那所有的值都保存起来,根据具体情况,选择对应的常数。n1、n2和n3为三个自变量,但它们都有变化范围,使地址产生形成了三层循环,每层循环都用一个计数器控制。
其中n3为最外层的循环的计数值,其值从0至59;n2为次外层的循环的计数值,其值从0至8;n1为最内层的循环的计数值,其值从0至6。
540*n1与420*n2可利用n1和n2对应的计数器实现,当n1每次增1时,540*n1就累加540,当n1为0时,540*n1也复位0。420*n2也是这样实现的。这样,我们把乘法转化为加法运算,在减少乘法器数量的同时也提高了运算速度。
由于3780=63*60,其中63与60不互质,所以先用混合基法完成3780点到63点和60点FFT的分解。而63=7*9,60=3*4*5,其中7与9互质,3、4与5互质,故可以用素因子算法完成63点和60点FFT的分解。最后7点、9点、3点、4点、5点的FFT均采用WFTA算法计算。以下按照WFTA运算各点数处理顺序,介绍WFTA运算模块,如图2所示。
图5所示为WFTA运算单元14具体实现框图。
(1)按60×(9n1+7n2)mod63+n3读地址进入到7点WFTA单元141做7点WFTA运算,采用同址运算;
(2)按60×(7n1+9n2)mod63+n3读地址进入到9点WFTA单元142做9点WFTA运算,采用同址运算;
(3)做完9点WFTA后的数据进入到旋转因子运算单元15乘以相应的旋转因子,存放到原来的地址;
(4)按(20n1+3n2)mod63+n3读地址进入到3点WFTA单元143做3点WFTA运算,采用同址运算;
(5)按(15n1+4n2)mod60+60×n3读地址进入到4点WFTA单元144做4点WFTA运算,采用同址运算;
(6)按(12n1+5n2)mod60+60×n3读地址进入到5点WFTA单元145做5点WFTA运算,采用同址运算;
(7)按(60n1+n2) mod3780读地址从RAM单元13中输出数据。
这样就实现将3780点数据按小点数WFTA进行分解运算。
小点数的WFTA是3780点IFFT实现的关键,下面以5点WFTA为例,介绍小点数WFTA的实现原理。5点WFTA的实现框图如图6所示。
图6中的B Coef 501、G Coef 505和C Coef 506分别为WFTA算法中三个矩阵的系数(见图7所示);R1~R11 502和503为寄存器,组成两个移位寄存器组,移位寄存器对输入数据移位,以形成流水线输入;AC1~AC11 503和508为累加器,累加器在系数矩阵的控制下对输入数据进行操作;MUX 504和509为多路选择器,选择相应累加器的输出作为第一或者第三阶段的输出。由于5点WFTA标准表达式中C、B矩阵元素只有0、1和-1,则第一和第三个运算阶段的矩阵相乘实际上是一个对输入数据的累加。当矩阵每一行的第一个元素为1时,相应累加器的值等于相应的输入数据,为0时,累加器的值被置为0;当矩阵每行的其他元素为1时,累加器执行加操作,即累加器的值为其原值加新输入的数据;当为-1时,累加器执行减操作,即累加器的值为其原值减去新输入的数据;当为0时,累加器执行保持功能,即后一状态的值等于前一状态的值。
7点、9点以及3点WFTA结构即输入数据控制方式与5点基本类似,4点WFTA结构与5点WFTA结构的B阶段类似。
为了保证数据处理的实时性,节省存储空间,本发明设计对图1的RAM单元13进行处理,划分为三个存储大小均为3780个符号的RAM1、RAM2和RAM3。对处理后的存储结构采用流水线工作方式以保证数据的实时性。
图8所示为流水线的存储器结构。当第一帧3780数据在时刻1存储到RAM1单元131,此时RAM2单元132和RAM3单元133处于空闲状态;当第二帧3780数据在时刻2到来时,数据存入到RAM2单元132中,此时RAM1单元131进行第一帧的WFTA运算,RAM3单元133处于空闲状态;当第三帧3780数据在时刻3到来时,数据存入到RAM3单元133中,此时RAM1单元131正在输出第一帧运算后的数据,RAM2单元132进行第二帧数据的WFTA运算;当第四帧3780数据在时刻4到来时,RAM1单元131又重新恢复到输入数据的状态,然后以此类推。这样就实现了数据的实时处理。
以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。
Claims (4)
1.一种实现3780点FFT/IFFT的方法,其特征在于:该方法是将3780点FFT分为三层,顶层用混合基法分解3780点,中间层用素因子算法分解63点和60点FFT,底层用WFTA算法完成7点、9点、3点、4点、5点的FFT计算。
2.根据权利要求1所述的实现3780点FFT/IFFT的方法,其特征在于:所述的WFTA算法完成7点、9点、3点、4点、5点的FFT计算包括以下步骤:
(1)按60×(9n1+7n2)mod63+n3读地址进入到7点WFTA单元141做7点WFTA运算,采用同址运算;
(2)按60×(7n1+9n2)mod63+n3读地址进入到9点WFTA单元142做9点WFTA运算,采用同址运算;
(3)做完9点WFTA后的数据进入到旋转因子运算单元15乘以相应的旋转因子,存放到原来的地址;
(4)按(20n1+3n2)mod63+n3读地址进入到3点WFTA单元143做3点WFTA运算,采用同址运算;
(5)按(15n1+4n2)mod60+60×n3读地址进入到4点WFTA单元144做4点WFTA运算,采用同址运算;
(6)按(12n1+5n2)mod60+60×n3读地址进入到5点WFTA单元145做5点WFTA运算,采用同址运算;
(7)按(60 n1+ n2) mod3780读地址从RAM单元13中输出数据;
其中n3为最外层的循环的计数值,其值从0至59;n2为次外层的循环的计数值,其值从0至8;n1最内层的循环的计数值,其值从0至6。
3. 一种3780点FFT/IFFT处理器,其特征在于:采用了三层分解算法即混合基分解算法、素因子分解算法以及WFTA算法实现了3780点FFT/IFFT处理器,所述的3780点FFT/IFFT处理器由倍频器(11),输入共轭单元(12)、RAM单元(13)、WFTA运算单元(14)、旋转因子运算(15)、选择器(16)、控制单元(17)、输出共轭单元(18)组成,倍频器(11)将输入的时钟进行倍频,倍频后的时钟信号连接到其他单元的时钟输入端;输入共轭单元(12)对输入数据取共轭;输入的数据在时钟同步下存入RAM单元(13),在控制单元(17)的控制下进行数据的读写操作;WFTA运算单元(14)对7点,9点,3点,4点以及5点等各级FFT运算;旋转因子运算(15),对9点WFTA的输出数据进行旋转因子的相乘;选择器(16)选择WFTA运算单元(14)或者旋转因子运算单元(15)的输出数据作为RAM单元(13)数据的输入,控制N点WFTA运算单元(14)之间切换;控制单元(17)控制各个模块,控制RAM单元(13)的读写地址和读写控制;输出共轭单元(18)对输出数据取共轭,与输入共轭单元(12)实现OFDM调制和解调。
4. 根据权利要求1所述的3780点FFT/IFFT处理器,其特征在于:所述的RAM单元划分为RAM1单元、RAM2单元和AM3单元,当第一帧3780数据在时刻1存储到RAM1单元131,此时RAM2单元132和RAM3单元133处于空闲状态;当第二帧3780数据在时刻2到来时,数据存入到RAM2单元132中,此时RAM1单元131进行第一帧的WFTA运算,RAM3单元133处于空闲状态;当第三帧3780数据在时刻3到来时,数据存入到RAM3单元133中,此时RAM1单元131正在输出第一帧运算后的数据,RAM2单元132进行第二帧数据的WFTA运算;当第四帧3780数据在时刻4到来时,RAM1单元131又重新恢复到输入数据的状态,然后以此类推。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011101385900A CN102214159A (zh) | 2010-11-11 | 2011-05-26 | 一种实现3780点fft/ifft的方法及其处理器 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201020602041.5 | 2010-11-11 | ||
CN201020602041 | 2010-11-11 | ||
CN2011101385900A CN102214159A (zh) | 2010-11-11 | 2011-05-26 | 一种实现3780点fft/ifft的方法及其处理器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102214159A true CN102214159A (zh) | 2011-10-12 |
Family
ID=44745474
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011101385900A Pending CN102214159A (zh) | 2010-11-11 | 2011-05-26 | 一种实现3780点fft/ifft的方法及其处理器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102214159A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102419741A (zh) * | 2011-11-30 | 2012-04-18 | 中国传媒大学 | 一种基于同址同序素因子算法的3780点离散傅里叶变换处理装置和方法 |
CN102880592A (zh) * | 2012-10-09 | 2013-01-16 | 苏州威士达信息科技有限公司 | 一种顺序输出的高精度3780点fft处理装置和方法 |
CN103294642A (zh) * | 2012-02-28 | 2013-09-11 | 中兴通讯股份有限公司 | 离散傅立叶变换/逆离散傅立叶变换处理方法及处理器 |
CN103488611A (zh) * | 2013-09-02 | 2014-01-01 | 电子科技大学 | 基于IEEE802.11.ad协议的FFT处理器 |
CN103810144A (zh) * | 2012-11-08 | 2014-05-21 | 无锡汉兴电子有限公司 | 一种质数长度fft/ifft方法和装置 |
CN106201998A (zh) * | 2016-07-18 | 2016-12-07 | 晶晨半导体(上海)有限公司 | 非基2点多数据模式fft的实现方法和装置 |
CN106339353A (zh) * | 2015-07-13 | 2017-01-18 | 无锡华润矽科微电子有限公司 | 一种支持4375点和3780点fft/ifft的方法及其处理器 |
CN106405234A (zh) * | 2016-08-31 | 2017-02-15 | 长沙威胜信息技术有限公司 | 数字化谐波分析方法 |
-
2011
- 2011-05-26 CN CN2011101385900A patent/CN102214159A/zh active Pending
Non-Patent Citations (2)
Title |
---|
ZHI-XING YANG ET AL: "Design of a 3780-point IFFT processor for TDS-OFDM", 《IEEE TRANSACTIONS ON BROADCASTING》 * |
陈联武等: "3780点FFT的FPGA设计与实现", 《2009年通信理论与信号处理学术年会论文集》 * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102419741A (zh) * | 2011-11-30 | 2012-04-18 | 中国传媒大学 | 一种基于同址同序素因子算法的3780点离散傅里叶变换处理装置和方法 |
CN103294642A (zh) * | 2012-02-28 | 2013-09-11 | 中兴通讯股份有限公司 | 离散傅立叶变换/逆离散傅立叶变换处理方法及处理器 |
CN102880592A (zh) * | 2012-10-09 | 2013-01-16 | 苏州威士达信息科技有限公司 | 一种顺序输出的高精度3780点fft处理装置和方法 |
CN103810144A (zh) * | 2012-11-08 | 2014-05-21 | 无锡汉兴电子有限公司 | 一种质数长度fft/ifft方法和装置 |
CN103810144B (zh) * | 2012-11-08 | 2018-12-07 | 无锡汉兴电子有限公司 | 一种质数长度fft/ifft方法和装置 |
CN103488611A (zh) * | 2013-09-02 | 2014-01-01 | 电子科技大学 | 基于IEEE802.11.ad协议的FFT处理器 |
CN106339353A (zh) * | 2015-07-13 | 2017-01-18 | 无锡华润矽科微电子有限公司 | 一种支持4375点和3780点fft/ifft的方法及其处理器 |
CN106201998A (zh) * | 2016-07-18 | 2016-12-07 | 晶晨半导体(上海)有限公司 | 非基2点多数据模式fft的实现方法和装置 |
WO2018014612A1 (zh) * | 2016-07-18 | 2018-01-25 | 晶晨半导体(上海)股份有限公司 | 非基2点多数据模式fft的实现方法和装置 |
CN106201998B (zh) * | 2016-07-18 | 2018-06-29 | 晶晨半导体(上海)股份有限公司 | 非基2点多数据模式fft的实现方法和装置 |
CN106405234A (zh) * | 2016-08-31 | 2017-02-15 | 长沙威胜信息技术有限公司 | 数字化谐波分析方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102214159A (zh) | 一种实现3780点fft/ifft的方法及其处理器 | |
He et al. | Designing pipeline FFT processor for OFDM (de) modulation | |
CN101587469B (zh) | 可变长度的快速傅立叶变换装置 | |
KR100923892B1 (ko) | 고속 푸리어 변환 트위들 승산 | |
CN103970718B (zh) | 一种快速傅里叶变换实现装置及方法 | |
JP2009535678A (ja) | パイプラインfftのアーキテクチャおよび方法 | |
CN101136891B (zh) | 流水线结构的3780点快速傅里叶变换处理器 | |
CN102073621B (zh) | 一种应用于fft/ifft的基4蝶形单元电路及其处理方法 | |
Jiang | An area-efficient FFT architecture for OFDM digital video broadcasting | |
WO2006049419A1 (en) | Method for transforming data by look-up table | |
Yoshizawa et al. | An area and power efficient pipeline FFT processor for 8× 8 MIMO-OFDM systems | |
CN109783766A (zh) | 一种基2算法的快速傅里叶变换硬件设计方法 | |
Kim et al. | High speed eight-parallel mixed-radix FFT processor for OFDM systems | |
CN104268124B (zh) | 一种fft实现装置和方法 | |
Lai et al. | Low-computation-cycle, power-efficient, and reconfigurable design of recursive DFT for portable digital radio mondiale receiver | |
CN101331479A (zh) | 循环快速傅里叶变换 | |
Lin et al. | Low-cost FFT processor for DVB-T2 applications | |
CN103345379A (zh) | 一种复数乘法器及其实现方法 | |
CN101937332A (zh) | 基于基24算法的多路fft处理器中乘法器的复用方法 | |
CN201993753U (zh) | 一种应用于fft/ifft的基4蝶形单元电路 | |
Palekar et al. | OFDM system using FFT and IFFT | |
CN102073620B (zh) | 快速傅立叶转换器与反快速傅立叶转换器及其方法 | |
CN105975436A (zh) | 一种SoC系统中通用可配置加速单元的IP电路 | |
CN106649200B (zh) | 一种基于时分复用的自相关运算vlsi设计方法 | |
CN205486097U (zh) | 基于fpga的fft装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20111012 |