一种支持4375点和3780点FFT/IFFT的处理器制造技术

技术编号:14470028 阅读:63 留言:0更新日期:2017-01-21 02:01
本发明专利技术涉及一种实现4375点和3780点FFT/IFFT变换的方法与并行高性能处理器。在FFT/IFFT变换的第一层采用素因子算法分解4375点和3780点,完全消除了第一级间的旋转因子。底层用相同的WFTA算法,完成4375点需要的5点、7点DFT计算,以及3780点需要的3点、4点、5点、7点DFT计算。设计了配套的二维存储器阵列,以及映射关系完全没有冲突的地址生成单元,保证了各级运算过程中,数据能够以较高的并行度被读取,并严格遵循同址寻址方式被写回。本发明专利技术能够使得处理器用同样的硬件资源,支持2种不同素数点长度的FFT/IFFT变换,并获得高数据吞吐率,提高DTMB接收系统的性能。

【技术实现步骤摘要】

本专利技术涉及一种快速傅里叶变换(FastFourierTransform,FFT)的方法及其处理器,尤其涉及一种支持4375点和3780点FFT/IFFT的方法及其处理器。
技术介绍
地面数字电视广播经过多年的发展,已经推广使用的主要技术标准有:欧洲的DVB-T、美国的ATSC和日本的ISDB-T。在此背景下,2006年8月,中国国家标准化管理委员会颁布了中国数字电视地面广播传输系统标准GB20600-2006,即中国的DTMB。DTMB采用时域同步正交频分复用(TDS-OFDM)技术作为其关键的传输技术,包括多载波和单载波两种模式,但均采用长度为3780的帧体来传输数字电视信号。多载波和单载波在本质上是两种完全不同的调制技术,有各自的优点。在DTMB接收机中,多载波模式的最佳接收发生在频域,但为了实现TDS-OFDM技术,必须采用迭代消除方法,多次进行FFT/IFFT变换,才能消除由于多径导致的帧头PN序列对数据体严重的码间干扰,对信道进行准确的估计。FFT处理器占据了大量的运算时间,其数据吞吐率在很大程度上决定了DTMB接收机的性能。单载波模式的最佳接收发生在时域,但研究表明,对单载波采用SC-FDE(频域判决反馈均衡)技术,可以获得和TD-DFE(时域判决反馈)接近的性能。和多载波的迭代消除方法类似,SC-FDE同样需要通过迭代,对大量数据进行多次正向和反向快速傅里叶变换,并且迭代次数越多,越接近TD-DFE的性能。由于SC-FDE也是在频域实现的,可以复用多载波模式的硬件资源,大大简化系统复杂度,很好地融合多载波和单载波两种模式。在DTMB系统中,进一步的研究表明,直接采用4375点的FFT/IFFT变换,可以有效避免循环迭代中的卷积和搬移操作,从而免去了由于信道估计不准造成的残余误差,降低了重构过程引入的信噪比错误平层,有效提高信道估计的收敛速度和质量。这就需要设计一种FFT处理器,同时支持4375和3780两种长度的FFT变换,而现有的产品缺少很好的技术手段来解决这一技术难题。
技术实现思路
本专利技术的目的在于提供一种支持4375点和3780点FFT/IFFT的方法及其处理器,以解决现有技术中无法支持4375点和3780点的问题。为了实现本专利技术的目的,采用以下技术方案来实现:一种支持4375点和3780点FFT/IFFT的方法,包括分解、混序、数据运算和数据输出共四个步骤,所述的分解的步骤是:1)首先将4375点或3780点进行第一层分解,按照素因子分解为两个互素的数,第一层分解不包含旋转因子运算;2)然后将步骤1)中得出的两个互素的数的其中一个数继续按照混合基彻底分解;3)最后将步骤1)中得出的两个互素的数的另外一个数按照素因子彻底分解。特别地,所述的4375点的分解方式为首先分解为7×625,其中7和625互素,625继续用混合基分解为5×5×5×5。特别地,所述的3780点的分解方式为首先分解为140×27,其中140和27互素,140继续用素因子分解算法分解为4×5×7,而27采用混合基分解为3×3×3。特别地,进行所述的数据运算的步骤时,4375点运算和3780点运算共用点数为3点、4点、5点、7点的基本小点数DFT单元。特别地,对4375点进行混序的步骤包括:1)建立码位倒置的625点DFT索引表:ROM1(k)=mod(k×7,625),k的取值范围为0至624;2)建立按时间抽取的625点DFT索引表:ROM2(k)=n1×125+n2×25+n3×5+n4,n1、n2、n3、n4的范围均为0至4;3)对序列号为n的输入,变换后的索引号为:ROM2{ROM1([mod(n×268,625)]}+mod(n×4,7)×625;4)按ROM2{ROM1[mod(n×268,625)]}+mod(n×4,7)×625的映射关系,产生所有4375点输入序列的写地址,将数据存放至存储器RAM的对应单元中,完成对输入序列重新排序;5)输入序列被分为7组,每组有625个数据。特别地,对4375点进行数据运算的方法是完成7组长度为625点的较短序列进行DFT变换和625组长度为7点的较短序列进行DFT变换,并采用同址运算读取地址;所述的对7组长度为625点的较短序列进行DFT变换的步骤如下:1)对组号为i,序列号为n=i×625+j,即长度为625的较短序列进行DFT变换;其中i的值为0至6,j的值为0至624,并首先对内层的j进行循环,由于625=5×5×5×5,等效为4级基为5的FFT运算;2)按(n1×(5^L)+n2)+n3×(5^(L+1))产生读地址,读取5个数据,进入旋转因子运算单元,乘以相应的旋转因子,然后进入WFTA计算单元,完成5点WFTA运算后的结果,按同址计算方式,存放到原来的地址。其中n1为最内层的循环计数,取值0至4;L为最外层的循环计数,取值为0至3;n2、n3为中间层的循环计数,n2取值0至(5^L)-1,n3取值0至(625/5^(L+1))-1;符号^表示乘方运算;3)组号i取值为0,按步骤1)及步骤2)完成一组625点DFT,并依此取值1至6,重复步骤1)及步骤2),共完成7组625点DFT;所述的对625组长度为7点的较短序列进行DFT变换的步骤为:按关系n1×625+n2,产生读地址,读取7个数据,进入WFTA计算单元,做7点WFTA运算,结果按同址计算方式,存入原来地址;其中n1为最内层循环计数,取值0至6;n2为最外层循环计数,取值0至624。特别地,对4375点进行数据输出的步骤是按关系mod(268×n,625)+mod(n×4,7)×625产生读地址,从RAM单元中输出数据,即为4375点FFT/IFFT结果。特别地,对3780点进行混序的步骤是:1)对长度为3780、自然顺序排序的输入序列X(n)进行分组和索引变换;建立码位倒置的540点DFT索引表:ROM3(k)=540×n2+(20×n1+4×n3+n4),其中n2为最内层循环,取值0至6;n1,n3、n4为外层循环,取值分别为n1=mod(n×11,27),n2=mod(n,5),n3=mod(n,4),n的范围为0至539;2)按步骤1)所示的映射关系,产生所有3780点输入序列的地址,将数据存放至存储器RAM的对应单元中,完成对输入序列重新排序;3)输入序列被分为7组,每组有540个数据。特别地,对3780点进行数据运算的方法是完成140组长度为27点的较短序列进行DFT变换、945组长度为4点的较短序列进行DFT变换、756组长度为5点的较短序列进行DFT变换、540组长度为7点的较短序列进行DFT变换,并采用同址运算读取地址;所述的140组长度为27点的较短序列进行DFT变换的步骤如下:1)按20×n1+n2+540×n3产生读地址,从RAM中读取27个数据;n1为最内层循环计数,取值0至26;n2为此外层循环计数,取值0至19;n3为外层循环计数,取值0至6;由于27=3×3×3,等效为3级基为3的FFT运算;2)建立码位倒置的27点DFT索引表:ROM4(k)=mod(k×5,27),k的取值范围为0至26;3)建立按时间抽取的27点DFT索引表本文档来自技高网
...

【技术保护点】
一种支持4375点和3780点FFT/IFFT的方法,包括分解、混序、数据运算和数据输出的步骤,其特征在于:所述的分解步骤具体是:1)首先是将4375点或3780点进行第一层分解,按照素因子分解为两个互素的数, 第一层分解不包含旋转因子运算;2)然后将步骤1)中得出的两个互素的数的其中一个数继续按照混合基彻底分解;3)最后将步骤1)中得出的两个互素的数的另外一个数按照素因子彻底分解。

【技术特征摘要】
1.一种支持4375点和3780点FFT/IFFT的方法,包括分解、混序、数据运算和数据输出的步骤,其特征在于:所述的分解步骤具体是:1)首先是将4375点或3780点进行第一层分解,按照素因子分解为两个互素的数,第一层分解不包含旋转因子运算;2)然后将步骤1)中得出的两个互素的数的其中一个数继续按照混合基彻底分解;3)最后将步骤1)中得出的两个互素的数的另外一个数按照素因子彻底分解。2.如权利要求1所述的一种支持4375点和3780点FFT/IFFT的方法,其特征在于:所述的4375点的分解方式为首先分解为7×625,其中7和625互素,625继续用混合基分解为5×5×5×5。3.如权利要求1所述的一种支持4375点和3780点FFT/IFFT的方法,其特征在于:所述的3780点的分解方式为首先分解为140×27,其中140和27互素,140继续用素因子分解算法分解为4×5×7,而27采用混合基分解为3×3×3。4.如权利要求1所述的一种支持4375点和3780点FFT/IFFT的方法,其特征在于:进行所述的数据运算的步骤时,4375点运算和3780点运算共用点数为3点、4点、5点、7点的基本小点数DFT单元。5.如权利要求2所述的一种支持4375点和3780点FFT/IFFT的方法,其特征在于,对4375点进行混序的步骤包括:建立码位倒置的625点DFT索引表:ROM1(k)=mod(k×7,625),k的取值范围为0至624;建立按时间抽取的625点DFT索引表:ROM2(k)=n1×125+n2×25+n3×5+n4,n1、n2、n3、n4的范围均为0至4;对序列号为n的输入,变换后的索引号为:ROM2{ROM1([mod(n×268,625)]}+mod(n×4,7)×625;按ROM2{ROM1[mod(n×268,625)]}+mod(n×4,7)×625的映射关系,产生所有4375点输入序列的写地址,将数据存放至存储器RAM的对应单元中,完成对输入序列重新排序;输入序列被分为7组,每组有625个数据。6.如权利要求2所述的一种支持4375点和3780点FFT/IFFT的方法,其特征在于:对4375点进行数据运算的方法是完成7组长度为625点的较短序列进行DFT变换和625组长度为7点的较短序列进行DFT变换,并采用同址运算读取地址;所述的对7组长度为625点的较短序列进行DFT变换的步骤如下:对组号为i,序列号为n=i×625+j,即长度为625的较短序列进行DFT变换;其中i的值为0至6,j的值为0至624,并首先对内层的j进行循环,由于625=5×5×5×5,等效为4级基为5的FFT运算;按(n1×(5^L)+n2)+n3×(5^(L+1))产生读地址,读取5个数据,进入旋转因子运算单元,乘以相应的旋转因子,然后进入WFTA计算单元,完成5点WFTA运算后的结果,按同址计算方式,存放到原来的地址,其中n1为最内层的循环计数,取值0至4;L为最外层的循环计数,取值为0至3;n2、n3为中间层的循环计数,n2取值0至(5^L)-1,n3取值0至(625/5^(L+1))-1;符号^表示乘方运算;组号i取值为0,按步骤1)及步骤2)完成一组625点DFT,并依此取值1至6,重复步骤1)及步骤2),共完成7组625点DFT;所述的对625组长度为7点的较短序列进行DFT变换的步骤为:按关系n1×625+n2,产生读地址,读取7个数据,进入WFTA计算单元,做7点WFTA运算,结果按同址计算方式,存入原来地址;其中n1为最内层循环计数,取值0至6;n2为最外层循环计数,取值0至624。7.如权利要求2所述的一种支持4375点和3780点FFT/IFFT的方法,其特征在于:对4375点进行数据输出的步骤是按关系mod(268×n,625)+mod(n×4,7)×625产生读地址,从RAM单元中输出数据,即为4375点FFT/IFFT结果。8.如权利要求3所述的一种支持4375点和3780点FFT/IFFT的方法,其特征在于:对3780点进行混序的步骤是:对长度为3780、自然顺序排序的输入序列X(n)进行分组和索引变换;建立码位倒置的540点DFT索引表:ROM3(k)=540×n2+(20×n1+4×n3+n4),其中n2为最内层循环,取值0至6;n1,n3、n4为外层循环,取值分别为n1=mod(n×11,27),n2=mod(n,5),n3=mod(n,4),n的范围为0至539;按步骤1)所示的映射关系,产生所有3780点输入序列的地址,将数据存放至存储器RAM的对应单元中,完成对输入序列重新排序;输入序列被分为7...

【专利技术属性】
技术研发人员:吴历曦
申请(专利权)人:无锡华润矽科微电子有限公司
类型:发明
国别省市:江苏;32

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

1