首页> 中国专利> 快速傅立叶变换/反快速傅立叶变换运算核

快速傅立叶变换/反快速傅立叶变换运算核

摘要

本发明涉及可把FFT以及IFFT运算处理过程所需的存储器容量最小化的FFT/IFFT运算核。所述FFT/IFFT运算核具有输入缓冲器、第1多路器、运算模块、以及控制模块。所述输入缓冲器存储并输出第1FFT输入序列。所述第1多路器接通第1以及第3FFT输入序列的其中一个。所述控制模块生成对以DIT方式处理或是以DIF方式处理所输入的序列进行决定的信号处理方式指示信号,以及让输入的序列以不处理的状态原本地通过的分路指示信号。所述运算模块具有串联的若干个运算阶段,应答于所述信号处理方式指示信号以及所述分路指示信号,变换第1FFT输入序列以及第3FFT输入序列、分别生成第1FFT输出序列以及第3FFT输出序列、变换第2IFFT输入序列、生成第2IFFT输出序列。

著录项

  • 公开/公告号CN101836202A

    专利类型发明专利

  • 公开/公告日2010-09-15

    原文格式PDF

  • 申请/专利号CN200980100171.9

  • 发明设计人 黄仓益;

    申请日2009-06-08

  • 分类号G06F17/14(20060101);

  • 代理机构上海翼胜专利商标事务所(普通合伙);

  • 代理人翟羽

  • 地址 518040 深圳市福田区车公庙福田天安科技创业园

  • 入库时间 2023-12-18 00:52:30

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-10-19

    专利权人的姓名或者名称、地址的变更 IPC(主分类):G06F17/14 变更前: 变更后: 变更前: 变更后: 申请日:20090608

    专利权人的姓名或者名称、地址的变更

  • 2013-08-14

    授权

    授权

  • 2010-11-03

    实质审查的生效 IPC(主分类):G06F17/14 申请日:20090608

    实质审查的生效

  • 2010-09-15

    公开

    公开

说明书

技术领域

本发明涉及运算核,特别是OFDM收信器所使用的OFDM收信器的FFT/IFFT运算核。

背景技术

在正交频分复用技术(Orthogonal Frequency Division Multiplexing,下面简称为OFDM)的系统中,需要进行N点(N为整数,N-point)离散傅立叶变换(Discrete Fourier Transform,下面简称为DFT),而DFT的数学运算量与N成正比。因此N较大时需要能够有效计算DFT的运算法(Algorithm)。快速傅立叶变换(Fast Fourier Transform,下面简称为FFT)是一种能够把N长度的序列(Sequence)连续分解成更小长度的序列,大幅降低DFT运算量的运算法(Algorithm)。作为能够把N长度的序列分解成更小长度序列的方式,FFT包括有以时间(时域)抽取(Decimation In Time,下面简称为DIT)的方式、以及以频率(频域)抽取(Decimation In Frequency,下面简称为DIF)的方式。OFDM调制解调系统由于可以设计N-点FFT运算法,因此可以实现所述方式。

FFT用于把时域(Time Domain)信号变换成频域(Frequency Domain)信号,反快速傅立叶变换(Inverse Fast Fourier Transform,下面简称为IFFT)把频域信号变换成时域信号。对于无线通信来说,由于需要对频域进行分析,因此利用通过FFT生成的频域信号,进行信道估计(Channel Estimation)比较有效。现有的FFT装置有使用共享存储器(Shared Memory)的单处理组件(SingleProcessing Element,下面简称为SPE)结构,以及在各运算阶段(Operating Stage)的运算器(Operator)之间使用各迟滞反馈寄存器(Delay Feedback Register)的管线(Pipeline)结构。

其中,通过SPE结构实现的N-点FFT装置需要具有与运算阶段相同数量的对N个样本(Sample)的存储器读/写存取(Memory Read/Write Access),因此存在输出等待时间(Output Latency)大的缺点。对于管线结构来说,其优点是输出等待时间(Output Latency)为N-循环(N-cycles),虽然其存储容量上与SPE结构相同,但其缺点是需要与运算阶段相同数量的存储器、以及其输入和输出数据的顺序不同。通常为了容易地进行FFT之后的处理,会追加数据列变换用存储器、把等待时间相关N-循环最大限度增加,以使得输入与输出数据的顺序相同。

使用于OFDM调制解调等的FFT装置,由于需要处理连续的多个FFT输入信号,因此需要有存储器,以便在处理当前的FFT输入信号的同时,存储下一个FFT输入信号。另外,在管线结构中,具有构成FFT各步骤迟滞反馈寄存器的存储器,FFT装置大部分被存储器所占据,存储器越多,会造成系统面积越大的缺点。

发明内容

本发明的目的在于:提供一种可把FFT以及IFFT运算处理过程所需存储器容量最小化的FFT/IFFT运算核。

为了解决所述课题,本发明的FFT/IFFT运算核具有一输入缓冲器、一第1多路器、一运算模块、以及一控制模块。所述输入缓冲器存储并输出一第1FFT输入序列。所述第1多路器接通第1 FFT输入序列以及第3 FFT输入序列的其中一个。所述控制模块生成一信号处理方式指示信号以及一分路指示信号。所述信号处理方式指示信号指定输入于所述运算模块的序列是以DIT的方式或是以DIF的方式处理,所述分路指示信号指示让输入于所述运算模块的序列以不处理的状态原本地通过。这里,所述信号处理方式指示信号以及所述分路指示信号由FFT的大小决定。所述运算模块应答于所述信号处理方式指示信号以及所述分路指示信号,变换所述第1 FFT输入序列以及所述第3 FFT输入序列、分别生成一第1 FFT输出序列以及一第3 FFT输出序列、变换一第2 IFFT输入序列、生成一第2 IFFT输出序列。运算模块具有串连的若干个运算阶段。

本发明通过共享使用1个FFT/IFFT运算核,可以最大限度地降低所需存储器容量。

附图说明

图1是本发明的FFT/IFFT运算核模块图。

图2是图1的第0运算阶段的内部模块示意图。

图3是图1的第1运算阶段到第6运算阶段的内部模块示意图。

图4是多种大小(Size)输入序列的情况下,相关的各运算阶段使用与否以及使用顺序示意图。

图5是FFT/IFFT的大小(Size)不同的情况下,各运算阶段中使用的存储器容量(Memory Depth)示意图。

图6是相应于存储在输入缓冲器的每一样本的比特数(Bits Per Sample)小于可在FFT内部运算阶段处理的相应于每一样本的比特数(Bits Per Sample)的情况下,输入缓冲器结构以及使用过程的一实施例示意图。

图7是相应于存储在输入缓冲器的每一样本的比特数(Bits Per Sample)等于可在FFT内部运算阶段处理的相应于每一样本的比特数(Bits Per Sample)的情况下,输入缓冲器结构以及使用过程的一实施例示意图。

图8是输入缓冲器存储的每一样本相应比特数小于可在FFT内部运算阶段处理的每一样本相应比特数的情况下,各运算阶段的存储器种类以及容量。

图9是存储在输入缓冲器的每一样本相应比特数等于可在FFT内部运算阶段处理的每一样本相应比特数的情况下,各运算阶段的存储器种类以及容量。

图10是32-点DIT FFT的信号流程图。

图11是32-点DIF IFFT的信号流程图。

图12是执行32-点DIT运算以及32-点DIF运算的各运算阶段之间的连接关系示意图。

图13是连续3次输入时的32-点DIT/DIF动作时间示意图。

具体实施方式

本发明涉及对应于每一符号(Symbol)进行3次所规定FFT过程中,OFDM收信器所使用的FFT/IFFT运算核,交替地进行DIT方法的管线FFT和DIF方法的管线IFFT过程,不进行数据列变换,通过使用M(M为整数)倍于FFT输入输出样本时钟(Clock)频率的核心时钟(Core Clock),可以执行多个FFT过程。例如,对于需要进行3次FFT过程的OFDM收信器来说,M为4。

另外,为了以多次方式执行可变N-点(Variable N-point)FFT,根据DIT方法或DIF方法和FFT序列,不同地适用各阶段(Stage)的动作结构,使之具有共享特定存储器的结构。

下面,参照附图,对本发明的具体实施例进行详细说明。

这里说明的是对每一符号(Symbol)进行3次所规定FFT过程中,OFDM收信器的运算过程,表1是与对每一符号(Symbol)需要进行3次FFT运算的运算过程相关的表。

表1

 FFT顺序  FFT/IFFT  DIT/DIF 输入序列 输出序列  传输时间 1  FFT  DIT 置换顺序 (Permutated) 自然顺序 (Naturally Ordered)  N 2  IFFT  DIF 自然顺序 (Naturally Ordered) 置换顺序 (Permutated)  N 3  FFT  DIT 置换顺序 (Permutated) 自然顺序 (Naturally Ordered)  2×N

如表1所示,不管执行FFT还是IFFT,变换后的数据序列的顺序与变换前的数据序列的顺序不同。

顺序1通过使用DIT方法,把时域(Domain)上的OFDM符号载体(SymbolCarrier),即输入序列(Input Sequence)变换成频域上的序列,而输出序列(OutputSequence)的数据的排列顺序与输入序列相比发生变化。顺序2使用DIF方法的IFFT以及顺序3使用DIT方法的FFT,用于信道估计(Channel Estimation)。

无线信道环境具有时强时弱(Fading)的特点,在时域和频域上的信道状态在各个时间点上发生不规律的变化。这里,时强时弱(Fading)是指是两个以上电波相互干扰后,振幅以及相位发生不规则变化的现象。对于信道进行振幅和相位推定的过程叫做信道估计(Channel Estimation)。信道估计可以说是对无线信道的频率应答进行估计的过程。

通常把FFT的大小(Size)叫做点(Point),下面为了说明上的方便,以8192点的FFT/IFFT运算核,即FFT的最大规格为8192的情况为例进行说明。因此,虽然说明的只是8192点及其以下的点,但把本发明修改成适合于更大规格FFT动作的,也包括在本发明的技术思想范围内。

图1是本发明的FFT/IFFT运算核100模块图。

如图1所示,FFT/IFFT运算核100包括输入缓冲器(Buffer)110、第1多路器(Multiplexer)M1、运算模块120、以及控制模块130。

输入缓冲器110存储并输出第1FFT输入序列(FFT Inputs)。

第1多路器M1接通(Multiplex)第1FFT输入序列(FFT Inputs)以及第3FFT输入序列(FFT Inputs)的其中一个。

控制模块130产生信号处理方式指示信号DIT/DIF(图2或图3)以及分路指示信号BP(图2或图3)。信号处理方式指示信号DIT/DIF决定把输入的序列以DIT方式处理或是以DIF方式处理。分路指示信号BP把输入的序列以没有处理的原有状态通过。这里,信号处理方式指示信号DIT/DIF以及分路指示信号BP根据FFT的大小决定。

运算模块120应答于信号处理方式指示信号DIT/DIF以及分路指示信号BP,转换第1FFT输入序列(FFT Inputs)以及第3FFT输入序列(FFT Inputs)、分别生成第1FFT输出序列(FFT Outputs)以及第3FFT输出序列(FFTOutputs)、转换第2IFFT输入序列(IFFT Inputs)、生成第2IFFT输出序列(IFFTOutputs)。运算模块120具有串连的若干个运算阶段。

第0运算阶段121应答于相应信号处理方式指示信号DIT/DIF以及相应分路指示信号BP,把第1多路器M1的输出信号Mo或第1运算阶段122的第2输出信号D1F原本地分路或进行信号处理,生成第1输出信号D0T或第2输出信号D0F(未图示)。这里进行信号处理是意味着对输入序列进行FFT或IFFT运算,同样适用于下面的说明。

第1运算阶段122应答于相应信号处理方式指示信号DIT/DIF以及相应分路指示信号BP,把第0运算阶段121的第1输出信号D0T或第2运算阶段123的第2输出信号D2F原本地分路或进行信号处理后,生成第1输出信号D1T或第2输出信号D1F

第2运算阶段123到第5运算阶段126与第1运算阶段122相同的逻辑连接,这里不再详细说明。

第6运算阶段127应答于相应信号处理方式指示信号DIT/DIF以及相应分路指示信号BP,把第5运算阶段126的第1输出信号D5T或第2IFFT输入序列(IFFT Inputs)原本地或进行信号处理,生成第1输出信号D6T(未图示)或第2输出信号D6F

综上所述,第1FFT输入序列(FFT Inputs)以及第3FFT输入序列(FFTInputs)被输入时,以从第0运算阶段121开始依次到第6运算阶段127的方向,执行DIT方式运算,生成第1FFT输出序列(FFT Outputs)以及第3FFT输出序列(FFT outputs)。第2IFFT输入序列(IFFT Inputs)被输入到运算模块120时,以从第6运算阶段127依次到第0运算阶段121的方向、执行DIF方式的运算,生成第2IFFT输出序列(IFFT Outputs)。

所述FFT/IFFT运算的执行方向由信号处理方式指示信号DIT/DIF决定。8192点的FFT/IFFT运算中,串连的多个运算阶段121-127全部被使用。但是,对于小于8192的FFT/IFFT运算来说,根据分路指示信号BP,有一部分运算阶段不会被使用。也就是说,将不会被用于运算的运算阶段所连接的分路指示信号BP进行启动(Enable),让输入到相应运算阶段的序列以没有被运算的状态直接分路到下一运算阶段中。

如上所述,本发明图1的FFT/IFFT运算核100的N为8192,即为8192点FFT/IFFT运算核。因此,第0运算阶段到第6运算阶段中的某一个运算阶段具有基数-2(Radix-2)结构,其余6个运算阶段应具有基数-4(Radix-4)结构。这里基数-2结构是处理2样本的输入序列的结构,基数-4结构是处理4样本的输入序列的结构。这些被串连后,总共成为8192(2*46)点。上面所述的样本和下面的说明中使用的样本包括I(In-phase)信道以及Q(Quadrature)信道的信息。

另外,图1的本发明FFT/IFFT运算核100使用于OFDM收信器为宜。

为了容易理解本发明的概念,假设图1的第0运算阶段121具有基数-2结构,其它6个运算阶段122-127具有基数-4的结构。

图2是图1的第0运算阶段121的内部模块示意图。

如图2所示,第0运算阶段121包括第2多路器M2、第3多路器M3、第4多路器M4、基数-2蝶式模块(Butterfly)210、第1延时器220以及第1乘法器230。

第2多路器M2在信号处理方式指示信号DIT/DIF指示DIT方式的运算时,选择并接通第1多路器M1(图1)的输出信号Mo;信号处理方式指示信号DIT/DIF指示DIF方式的运算时,选择并接通第1运算阶段122的第2输出信号D1F。第3多路器M3在信号处理方式指示信号DIT/DIF指示DIT方式的运算时,选择并接通旋转因子(Twiddle Factor)WK(n);信号处理方式指示信号DIT/DIF指示DIF方式的运算时,选择并接通单位旋转因子(1,Unit Weight)。这里K是整数,代表阶段的序号。例如,图2中使用的K为0时,这时的旋转因子表示为W0(n)

基数-2蝶式模块210从第2多路器M2的输出信号中,把一部分输出信号分路,对剩余的输出信号以及由第1延时器220输出的延时信号进行蝶式(Butterfly)运算。第1延时器220把由基数-2蝶式模块210分路的信号延时,生成延时信号。第1乘法器230对第3多路器M3的输出信号和基数-2蝶式模块210的输出信号进行复数乘法(Complex Multiplication)。

第4多路器M4在分路指示信号BP处于失效(Disable)状态时,选择并接通第1乘法器230的输出信号;分路指示信号BP处于启动(Enable)状态时、选择并接通第2多路器M2的输出信号。即,分路指示信号BP被启动(Enable)时,第0运算阶段121(图1)被排除于FFT/IFFT运算,因此分路(Bypass)通过第2多路器M2输入的信号。

第4多路器M4的输出信号成为第1输出信号D0T以及第2输出信号D0F。信号处理方式指示信号DIT/DIF指示DIT方式的运算时,第2输出信号D0F不使用于接下来的下一运算阶段;而信号处理方式指示信号DIT/DIF指示DIF的方式运算时,第1输出信号D0T不会被使用于下一运算阶段。因此如图2所示,即使同时输出第1输出信号D0T以及第2输出信号D0F,FFT/IFFT运算也不会出现问题。

图3是图1的第1运算阶段122到第6运算阶段127的内部模块示意图。

如图3所示,第K(K为1到6之间的任一整数)运算阶段122-127包括第5多路器M5、第6多路器M6、第7多路器M7、基数-4蝶式模块310、延时模块320以及第2乘法器330。

第5多路器M5在信号处理方式指示信号DIT/DIF指示DIT方式的运算时,选择并接通第(K-1)运算阶段的第一输出信号D(K-1)T;信号处理方式指示信号DIT/DIF指示DIF方式的运算时,选择并接通第(K+1)运算阶段的第2输出信号D(K+1)F。当第K运算阶段为第6运算阶段127时,选择并接通第2 IFFT输入序列(IFFT Inputs)(图1),替代第2输出信号D(k+1)F。第6多路器M6在应用于FFT/IFFT运算各运算阶段中的最终阶段时,应答于控制信号LS(LastStage),选择单位旋转因子(1);第6多路器M6在应用于FFT/IFFT运算的各运算阶段中的中间使用的运算阶段时,选择并接通由信号处理方式指示信号DIT/DIF决定的旋转因子WK(n)

基数-4蝶式模块310从第5多路器M5的输出信号中分路一部分信号,对第5多路器M5输出信号中的剩余信号以及由延时模块320输出的延时信号,进行蝶式运算。延时模块320对基数-4蝶式模块310分路的信号进行延时,生成所述多个延时信号。延时模块320具有第1延时器321、第2延时器322、第3延时器323。第1延时器321把基数-4蝶式模块310分路信号中的第1信号,延时一定时间。第2延时器322把基数-4蝶式模块310分路信号中的第2信号,延时一定时间。第3延时器323把基数-4蝶式模块310分路信号中的第3信号,延时一定时间。基数-4蝶式模块310对第1延时器321到第3延时器323以及第5多路器M5的输出信号进行蝶式运算,而蝶式运算所生成的4个输出信号中,只有一个信号被输出,其余3个输出信号重新存储于延时器321-323中。

第2乘法器330对第6多路器M6的输出信号和基数-4蝶式模块310的输出信号进行复数乘法。第7多路器M7在分路指示信号BP被启动(Enable)时,选择并接通第5多路器M5的输出信号;分路信号BP失效(Disable)时,选择并接通第2乘法器330的输出信号。即分路信号BP被启动(Enable)时,第K运算阶段排除于FFT/IFFT运算,因此分路(Bypass)通过第5多路器M5输入的信号。

这里第7多路器M7的输出信号成为第1输出信号DKT以及第2输出信号DKF。信号处理方式指示信号DIT/DIF指示DIT方式的运算时,不使用第2输出信号DKF;而信号处理方式指示信号DIT/DIF指示DIF方式运算时,不使用第1输出信号DKT。因此,如图3所示,即使同时输出第1输出信号DKT以及第2输出信号DKF,也不会对FFT/IFFT运算产生问题。图2以及图3的旋转因子Wk(n)按各运算阶段相互不同。

虽然,附图中没有详细记录,但依次使用多个运算阶段时,在最终运算阶段中,多路器M3(图2)、M6(图3)接通至乘法器230(图2)、330(图3)的旋转因子WK(n),恒定为1(one)。对这一部分,只要参照图12即可以容易理解。

图4是多种大小(Size)输入序列的情况下,相关的各运算阶段使用与否以及使用顺序示意图。

图4的箭头方向是运算执行顺序,数字是运算阶段的序号。

首先,对DIT方式运算执行过程进行说明。

这一情况下,由于本发明FFT/IFFT运算核100(图1)可处理的最大规格为8192,因此如果处理更小规格的序列,则应只使用内设的各运算阶段中的一部分,其余的进行分路处理。

如图4所示,FFT的大小(Size)为16时,依次使用两个具有基数-4结构的运算阶段即可。这里以依次使用第1运算阶段1以及第2运算阶段2的(1->2)为例进行说明。FFT的大小(Size)为32时,只要在FFT大小(Size)为16的结构上,把具有基数-2结构的第0运算阶段0进行追加为(0->1->2)即可。FFT的大小(Size)为1024时,依次使用具有基数-4结构的5个运算阶段即可,这里的实施例中,依次使用了第1运算阶段1到第5运算阶段5,成为(1->2->3->4->5)。同理,对于1024两倍的2048来说,只要追加具有基数-2结构的第0运算阶段0而成为(0->1->2->3->4->5)即可。

进行DIF方式运算的情况,也可以用相同的理论进行说明。

如图4所示,IFFT的大小(Size)为16时,依次使用两个具有基数-4结构的运算阶段即可。这里以分路第2运算阶段2后使用第3运算阶段3以及第1运算阶段1的(3->1)为例进行说明。IFFT的大小(Size)为32时,只要在IFFT大小(Size)为16的结构上,把具有基数-2结构的第0运算阶段0进行追加为(3->1->0)即可。IFFT的大小(Size)为1024时,依次使用具有基数-4结构的5个运算阶段即可,这里的实施例中,分路第5运算阶段5后,依次使用了第6运算阶段6到第1运算阶段1而成为(6->4->3->2->1)。同理,对于1024两倍的2048来说,只要追加具有基数-2结构的第0运算阶段0而成为(6->4->3->2->1->0)即可。

图5是FFT/IFFT的大小(Size)不同的情况下,各运算阶段中使用的存储器容量(Memory Depth)示意图。

图5中,各模块的内部数字意味着存储器容量(Memory Depth),没有记录的各模块代表与未使用的运算阶段对应的存储器。

为了实现只用一个FFT运算核100(图1),依次进行每一符号(Symbol)的FFT过程、IFFT过程以及FFT过程,需要设置额外的存储器(Memory)。辅助的存储器在第1FFT输出DIT时存储第2 IFFT输入序列,在第2 IFFT输出DIF时存储第3 FFT的DIT输入序列。

下面,对此进行详细说明。从DIT向DIF变更FFT动作方法时,需要具有可存储最大(N/4)个各样本的存储器,而从DIF向DIT变更FFT动作方法时,需要具有可存储最大N个样本的存储器。

请再参考图1,为了解决所述有关存储器的问题,把情况分为存储在输入缓冲器110(图1)的相应于每一样本的比特数(Bits Per Sample)小于可在FFT内部运算阶段处理的相应于每一样本的比特数(Bits Per Sample)的情况,以及存储在输入缓冲器110的相应于每一样本的比特数(Bits Per Sample)等于可在FFT内部运算阶段处理的相应于每一样本的比特数(Bits Per Sample)的情况。

第一,存储在输入缓冲器110的相应于每一样本的比特数(Bits Per Sample)小于可在FFT内部运算阶段处理的相应于每一样本的比特数(Bits PerSample)N(N为整数)的情况下,作为DIT和DIF之间所需的存储器,使用与(N/4)样本大小相同的辅助存储器;作为DIF和DIT之间所需的N样本存储器,共享使用辅助的(N/4)样本存储器和第6运算阶段127的(3N/4)样本存储器。由于本发明的FFT/IFFT运算核100最大可以处理8192比特的输入序列,所述情况相当于需要处理小于8192比特的输入序列的情况。这一情况下,可以把输入缓冲器110以如下方式划分区域进行使用。

图6是相应于存储在输入缓冲器的每一样本的比特数(Bits Per Sample)小于可在FFT内部运算阶段处理的相应于每一样本的比特数(Bits Per Sample)的情况下,输入缓冲器结构以及使用过程的一实施例示意图。

如图6所示,输入缓冲器的相应于每一样本的比特数(Bits Per Sample)小于可在FFT内部运算阶段处理的相应于每一样本的比特数(Bits Per Sample)的情况下,把图1的输入缓冲器110的区域可以划分为8192容量的1个单口-静态随机存储器(Single Port-Static Random Access Memory,下面简称为SP-SRAM)601和2048容量的一个SP-SRAM 602。这里2048容量的SP-SRAM602是上面说明的存储器,即大小相当于(N/4)样本的辅助存储器。读/写(Read/Write)第1符号1后、读写第2符号2以及读写后续符号3-6的过程,按SP-SRAM 601和SP-SRAM 602的右侧所示箭头方向进行。

第二,输入缓冲器110的相应于每一样本的比特数(Bits Per Sample)等于可在FFT内部运算阶段处理的相应于每一样本的比特数(Bits Per Sample)的情况下,作为DIT和DIF之间所需的(N/4)样本存储器,共享使用输入缓冲器110的(N/4)容量;作为DIF和DIT之间所需的N样本存储器,共享使用的输入缓冲器110的(N/4)容量大小的存储器和第6运算阶段127的(3N/4)样本存储器。这一情况下,也可以把输入缓冲器110按下面的方式划分区域使用。

图7是相应于存储在输入缓冲器的每一样本的比特数(Bits Per Sample)等于可在FFT内部运算阶段处理的相应于每一样本的比特数(Bits Per Sample)的情况下,输入缓冲器结构以及使用过程的一实施例示意图。

如图7所示,输入缓冲器110的相应于每一样本的比特数(Bits Per Sample)等于可在FFT内部运算阶段处理的相应于每一样本的比特数(Bits Per Sample)的情况下,存储器的时钟脉冲频率(Clock Frequency)与FFT/IFFT运算核100的时钟脉冲频率(Clock Frequency)相同时,输入缓冲器110用2048容量的五个SP-SRAM 701-705构成(左侧)。存储器的时钟脉冲频率(Clock Frequency)为FFT/IFFT运算核100时钟脉冲频率(Clock Frequency)的2倍时,输入缓冲器110由10240容量的一个SP-SRAM 706构成(右侧)。

通过4个存储器701-704对第1符号1进行写(Write)以及读(Read)后,进行对第2符号2的写(Write)以及读(Read),后续的第2符号2的读(Read)、写(Write)过程通过4个存储器705、701、702、703进行。接下来,对第3个符号3的写(Write)以及读(Read)的过程通过4个存储器704、705、701、702进行。

以图7左侧的结构,构成输入缓冲器110时,每个符号都存在与(N/4)样本大小相应的不使用的区段。例如,为了执行第1符号1的FFT,从运算模块120读入N样本701-704之后,在存储第2符号2的输入缓冲器110的区段中,图7的第4个存储器704一直处于空闲(Idle)状态。即,对于每一输入符号(Input Symbol)都存在相应于(1/4)N样本大小的空闲(Idle)状态的存储器。另外,在DIF输出和DIT输入之间,由于第6运算阶段127的(3N/4)样本存储器可能是只执行读入存取(Read Access)、或者不存在任何存取的区段,因此在这一区段中,把DIT输入信号写入(Write)在存储器后,在下一阶段中进行读取(Read),以此可以共享(3N/4)样本存储器。

如图6以及图7所示,使用一定容量存储器时,使用与对象容量相同的一个存储器,比使用多个存储器更加节省面积以及加快速度。从而,根据这种优缺点,可以由设计人员任意决定所述存储器的结构。

图8是输入缓冲器存储的每一样本相应比特数小于可在FFT内部运算阶段处理的每一样本相应比特数的情况下,各运算阶段的存储器种类以及容量。

图9是存储在输入缓冲器的每一样本相应比特数等于可在FFT内部运算阶段处理的每一样本相应比特数的情况下,各运算阶段的存储器种类以及容量。

如图8、图9所示,左侧是存储器所使用的时钟脉冲频率与FFT/IFFT运算核所使用的时钟脉冲频率相同时的情况,右侧是存储器所使用的时钟脉冲频率为FFT/IFFT运算核所使用的时钟脉冲频率的两倍时的情况。

如图8所示,输入缓冲器存储的每一样本相应比特数小于可在FFT内部运算阶段处理的每一样本相应比特数的情况下,输入缓冲器包括辅助的(N/4)存储器(Extra Memory)。如图9所示,输入缓冲器存储的每一样本相应比特数等于可在FFT内部运算阶段处理的每一样本相应比特数的情况下,输入缓冲器的总容量为10240。

图10是32-点DIT FFT的信号流程图。

图11是32-点DIF IFFT的信号流程图。

图10以及图11是与普遍公开的运算过程相关的内容。因此,这里不再进行详细说明。

图12是执行32-点DIT运算以及32-点DIF运算的各运算阶段之间的连接关系示意图。

如图12所示,为了执行32-点DIT运算以及32-点DIF运算,需要包括具有基数-2结构的一个运算阶段以及具有基数-4结构的两个运算阶段。这里为了说明上的方便,假设使用具有基数-2结构的第0运算阶段1210,以及具有基数-4结构的第1运算阶段1220以及第2运算阶段1230。

如图12的上半部所示,执行32-点DIT时,DIT输入序列(DIT Inputs)通过第0运算阶段1210、第1运算阶段1220、第2运算阶段1230,生成DIT输出序列(DIT Outputs)。如图12的下半部所示,执行32-点DIF时,DIF输入序列(DIF Inputs)通过第3运算阶段1240、第1运算阶段1250、第0运算阶段1260,生成DIF输出序列(DIF Outputs)。这里,运算最终阶段的旋转因子WK(n)恒定为1(one)。图12的各运算阶段的顺序与图4的32-点DIT以及32-点DIF运算顺序相对应。

图13是连续3次输入时的32-点DIT/DIF动作时间示意图。

图13中显示处理DIT的FFT运算、处理DIF的IFFT运算,最后处理DIT的FFT运算时的时间。图13所示的时间图表,对于所属技术领域的技术人员来说是非常容易理解的图表,因此省略其详细说明。

虽然没有图示,但本发明的FFT/IFFT运算核100的运算阶段包括多个存储器,这些存储器使用于构成运算模块120的多个运算阶段。如果为了3次运算需要使用3个运算核,则多个运算阶段各自的存储器所在面积会比本发明大3倍。但是本发明的运算核进行3次运算时,以时间分割方式共享运算核,与现有技术相比,可以把所需面积减少到1/3。

上面,参照附图,对本发明的技术思想进行了说明。但这只是对本发明最佳实施例的说明,并不限制本发明。当然,对于具有本发明所属领域基本知识的人员来说,可以在本发明技术思想范围内,对本发明进行多种变形以及模仿。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号