CN101571849B - 一种快速傅立叶变换处理器及其方法 - Google Patents

一种快速傅立叶变换处理器及其方法 Download PDF

Info

Publication number
CN101571849B
CN101571849B CN2008100670953A CN200810067095A CN101571849B CN 101571849 B CN101571849 B CN 101571849B CN 2008100670953 A CN2008100670953 A CN 2008100670953A CN 200810067095 A CN200810067095 A CN 200810067095A CN 101571849 B CN101571849 B CN 101571849B
Authority
CN
China
Prior art keywords
base
butterfly
butterfly computation
sequence
computation
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
CN2008100670953A
Other languages
English (en)
Other versions
CN101571849A (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 CN2008100670953A priority Critical patent/CN101571849B/zh
Publication of CN101571849A publication Critical patent/CN101571849A/zh
Application granted granted Critical
Publication of CN101571849B publication Critical patent/CN101571849B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Complex Calculations (AREA)

Abstract

本发明提供了一种快速傅立叶变换处理器及其处理方法,所述快速傅立叶变换处理器对一个N点序列进行多级混合基蝶形运算,所述多级混合基蝶形运算依次为α2级基-2蝶形运算、α3级基-3蝶形运算、α4级基-4蝶形运算以及α5级基-4蝶形运算,其中,α2和α5均为大于或者等于0的整数,α3和α4均为大于0的整数,且每一级蝶形运算的输入数据为其上一级蝶形运算的运算结果。本发明的快速傅立叶变换处理器满足LTE系统要求,实现对LTE系统中准确点数序列的DFT。

Description

一种快速傅立叶变换处理器及其方法
技术领域
本发明涉及一种快速傅立叶变换(FFT)处理器及其方法,尤其涉及用于无线通信LTE(Long Term Evolution,长期演进无线网络)系统中快速傅立叶变换处理器及其方法。
背景技术
在目前快速发展的无限通讯技术领域中,LTE系统是无线通信3G网络系统的一种演进,它改进并增强了3G网络的空中接入技术,采用OFDM(Orthogonal Frequency Division Multiplexing,即正交频分复用)和MIMO(Multiple-Input Multiple-Out-put,即多路进多路出)作为其无线网络演进的唯一标准。这种以OFDM/FDMA为核心的技术目前多被看作“准4G”技术。
基本传输技术和多址技术是无线通信技术的基础,LTE系统作为一种标准化的新一代无线通信技术,其基本传输技术采用下行(基站到用户的通信)OFDMA(正交频分多址接入)方案和上行(用户到基站的通信)SC-FDMA(单载波频分复用多址接入)方案。
其中,所述SC-FDMA是一种基于傅立叶变换扩展的正交频分复用(DFT-S OFDM)多址接入方案。所述上行方案和下行方案的共同点都是将调制数据串并转换,将转换后的多路并行数据分别映射到其各自对应的子载波上进行传输。所述映射至对应子载波的过程由一个DFT(离散傅立叶变换)调制来实现,对应相反的过程由一个IDFT(离散傅立叶逆变换)解调制来实现。在实际相应硬件设计时,为了减少相应硬件的运算量,大多采用一个FFT(Fast Fourier Transformation,快速傅立叶变换)处理器进行FFT(快速傅立叶变换)来实现所述DFT/IDFT(离散傅立叶变换/逆变换)。
对于长度为N点的序列x(n),其中n取0至N-1的整数,其傅立叶变换公式为:
X ( k ) = DFT [ x ( n ) ] = Σ n = 0 N - 1 x ( n ) w ( N , nk ) 式(1)
其中,w(N,nk)=cos(2πkn/N)-i×sin(2πkn/N)=exp(-2π/N)。
显然,采用式(1)进行DFT运算求出X(k),需要N2次序列点x(n)与相应旋转因子w(N,nk)的复数乘法计算,N(N-1)次复数加法计算,当点数N较大时,这种直接DFT运算的计算量会很大,因此,现有技术已经提出利用序列点的周期性来降低运算量,即对式(1)进行基-4/基-2FFT运算,以短点数实现长点数的变换。
现有技术中,对于N=2L的FFT运算,可以采用基-2FFT、基-4FFT或者基-2/基-4混合基(分裂基FFT)算法,具体地,将N点DFT分解为两个N/2点的DFT,依此类推经过N-1次分解,最后将N点DFT分解成N/2个2点的DFT。同理,基-4FFT运算在次不做赘述。
若序列点数N不满足N=2L,现有技术的做法是将x(n)的数值补若干个零点使得序列点数N增长到最临近2L的一个数值,再使用上述的FFT算法。但这种现有技术的做法明显不能满足准确N点DFT计算,尤其对于LTE系统,其上行处理要求进行准确的固定点数的DFT/IDFT计算,且根据LTE系统的协议要求,一共有34种固定点的IDFT计算情况,其序列点数N满足:
Figure GSB00000202543000022
(其中,ε2,,ε3,ε5均为非负整数),显然,LTE系统的序列点长度N不满足N=2L(其中L为整数),传统的FFT处理器不适于LTE系统的要求。
可见,现有技术还存在缺陷,有待于改进和发展。
发明内容
本发明的目的在于,提供一种快速傅立叶变换处理器,实现准确N点DFT/IDFT,且适于LTE系统。
为解决上述技术问题,本发明的技术方案如下:
一种快速傅立叶变换处理器,其用于对一个N个序列点进行DFT,所述N满足公式
Figure GSB00000202543000031
其中,所述快速傅立叶变换处理器对所述N个序列点进行多级混合基蝶形运算,所述多级混合基蝶形运算依次为α2级基-2蝶形运算、α3级基-3蝶形运算、α4级基-4蝶形运算以及α5级基-5蝶形运算,其中,α2和α5均为大于或者等于0的整数,α3和α4均为大于0的整数,所述快速傅立叶变换处理器包括:
至少一个运算存储器,用以暂存所述N个序列点;
一个混合基蝶形运算器;以及
一个控制器,其访问所述至少一个运算存储器以读取所述N个序列点至所述混合基蝶形运算器依次进行所述多级混合基蝶形运算,且每一级蝶形运算的输入数据为其上一级蝶形运算的运算结果。
所述的快速傅立叶变换处理器,其中,所述至少一个运算存储器为两个运算存储器,分别为第一运算存储器和第二运算存储器,分别暂存所述上一级蝶形运算结果和当前一级蝶形运算结果。
所述的快速傅立叶变换处理器,其中,所述快速傅立叶变换处理器进一步具有一个读写地址生成单元,写所述至少一个运算存储器时,所述控制器将其对应的写地址写入所述读写地址生成单元,所述控制器根据所述写地址访问所述运算存储器以读取其上的数据至所述混合基蝶形运算器进行所述多级混合基蝶形运算。
所述的快速傅立叶变换处理器,其中,当前一级混合基蝶形运算的运算结果被写入所述至少一个运算存储器,同时所述控制器将其对应写地址写入所述读写地址生成单元,所述控制器根据所述地址访问所述运算存储器读取其上的蝶形运算结果至所述混合基蝶形运算器进行下一级蝶形运算。
所述的快速傅立叶变换处理器,其中,所述混合基蝶形运算器具有一个基-2蝶形运算单元、一个基-3蝶形运算单元、一个基-4蝶形运算单元和一个基-5蝶形运算单元,其分别进行基-2蝶形运算、基-3蝶形运算、基-4蝶形运算和基-5蝶形运算。
所述的快速傅立叶变换处理器,其中,所述快速傅立叶变换处理器进一步具有一个数据重排单元,所述当前一级蝶形运算结果被写入所述至少一个运算存储器之前,所述当前一级蝶形运算结果先被写入所述数据重排单元进行重排,重排后的数据按顺序写入所述至少一个运算存储器以进行下一级蝶形运算。
所述的快速傅立叶变换处理器,其中,所述数据重排单元具有四个数据匹配单元,分别对应连接混合基蝶形运算器的基-2蝶形运算单元、基-3蝶形运算单元、基-4蝶形运算单元和基-5蝶形运算单元,每个数据匹配单元负责重排其对应蝶形运算单元的运算结果,以进行下一级蝶形运算。
所述的快速傅立叶变换处理器,其中,所述数据匹配单元采用跳址读取顺序写入的方法对所述运算结果进行重排,所述跳址读取顺序写入的方法为:跳址读取所述当前一级蝶形运算结果,再按顺序写入所述运算存储器,所述跳址读取依照公式(3)进行,所述公式(3)为:
Figure GSB00000202543000041
所述Rn为下一级蝶形运算基数,Rc为上一级蝶形运算基数,所述N为所述当前一级蝶形运算结果的个数,所述跳址方法为每隔
Figure GSB00000202543000042
个点读取一个数据直至读完所述N个当前一级蝶形运算结果,按照读取顺序写入所述运算存储器。
一种应用于上述快速傅立叶变换处理器的处理方法,用于对一个长度为N点的序列进行快速傅立叶变换处理,所述处理方法包括以下步骤:
A1、判断是否需要基-2蝶形运算,如果不是则跳至步骤B1,如果是,则输入序列点至所述基-2蝶形运算单元进行α2级基-2蝶形运算;
B1、如步骤A1进行了基-2蝶形运算,对步骤A1的运算结果序列进行α3级基-3蝶形运算;否则,输入序列点至所述基-3蝶形运算单元进行α3级基-3蝶形运算;
C1、步骤B1的运算结果序列进行α4级基-4蝶形运算;
D1、步骤C1的运算结果序列进行α5级基-5蝶形运算。
所述的快速傅立叶变换处理器的处理方法,用于对多个长度为N点的序列进行连续快速傅立叶变换处理,其中,所述快速傅立叶变换处理器具有三个运算存储器,在所述步骤A1之前,执行步骤A2,在执行步骤D1之后执行步骤B2,
所述步骤A2为,要对当前一个序列进行快速傅立叶变换处理时,选择其中两个运算存储器作为所述步骤A1至步骤D1中蝶形运算数据暂存,选择剩余的一个运算存储器用作接收下一个序列,快速傅立叶变换处理结果保存至所述内部运算数据暂存用的两个运算存储器之一上;
所述步骤B2为,下一个序列到来时,选择步骤A2中保存所述快速傅立叶变换处理结果的运算存储器用作接收当前步骤的下一个序列,选择剩余的两个运算存储器作为当前步骤的数据暂存使用。
本发明提供的快速傅立叶变换处理器及其处理方法,其采用一个基-2/基-3/基-4/基-5混合基蝶形运算器,实现LTE系统的准确N点DFT/IDFT计算,且采用两个运算存储器和一个数据重排单元实现N点序列点的流水线式混合基蝶形运算,不仅适于LTE系统的准确计算N点DFT/IDFT的要求,且保证流水线式处理,满足了LTE系统中对实时性的高要求,保证高效率。
附图说明
图1是本发明实施例提供的一种FFT处理器的示意图。
图2是图1的混合基蝶形运算器、数据重排单元、旋转因子ROM以及三个运算存储器的详细示意图。
图3是本发明实施例的FFT处理器的流程图。
图4是图2中混合基蝶形运算器的基-2蝶形单元进行基-2蝶形运算的示意图。
图5是图2中数据重排单元的数据匹配单元FIFO-0的示意图。
图6是图5的数据匹配单元FIFO-0对长度为24点的序列进行数据重排的示意图。
图7是图2中混合基蝶形运算器的基-3蝶形单元进行基-3蝶形运算的示意图。
图8是是图2中数据重排单元的数据匹配单元FIFO-1的示意图。
图9是图8的数据匹配单元FIFO-1对长度为24点的序列进行数据重排的示意图。
图10是图2中混合基蝶形运算器的基-4蝶形单元进行基-4蝶形运算的示意图。
图11是图2中数据重排单元的数据匹配单元FIFO-2的示意图。
图12是图2中混合基蝶形运算器的基-5蝶形单元进行基-5蝶形运算的示意图。
图13是图2中数据重排单元的数据匹配单元FIFO-3的示意图。
图14是本发明实施例的FFT处理器执行序列长度为24点的混合基蝶形示意图。
具体实施方式
下面结合附图和具体实施方式对本发明进行详细说明。
请一并参阅图1和图2,图1为本发明实施例提供的一种FFT处理器的示意图。图2为图1中旋转因子存储器、混合基蝶形运算器、数据重排单元以及三个运算存储器的详细示意图。
所述FFT处理器可用于LTE系统中,对长度为N点的序列点进行准确点数DFT计算。
根据LTE系统的协议要求,一共有34种N点的情况,,具体请参阅表1,N满足:
N = 2 α 2 · 3 α 3 · 4 α 4 · 5 α 5 式(2)
表1
序号   点数N α2 α3 α4 α5 序号   点数N α2 α3 α4 α5
  1   12   0   1   1   0   18   360   1   2   1   1
  2   24   1   1   1   0   19   384   1   1   3   0
  3   36   0   2   1   0   20   432   0   3   2   0
  4   48   0   1   2   0   21   480   1   1   2   1
  5   60   0   1   1   1   22   540   0   3   1   1
  6   72   1   2   1   0   23   576   0   2   3   0
  7   96   1   1   2   0   24   600   1   1   1   2
  8   108   0   3   1   0   25   648   1   4   1   0
  9   120   1   1   1   1   26   720   0   2   2   1
  10   144   0   2   2   0   27   768   0   1   4   0
  11   180   0   2   1   1   28   864   1   3   2   0
  12   192   0   1   3   0   29   900   0   2   1   2
  13   216   1   3   1   0   30   960   0   1   3   1
  14   240   0   1   2   1   31   972   0   5   1   0
  15   288   1   2   2   0   32   1080   1   3   1   1
  16   300   0   1   1   2   33   1152   1   2   3   0
  17   324   0   4   1   0   34   1200   0   1   2   2
因此,对于LTE系统,所述N点序列点的DFT计算可以分解成包括基-2蝶形运算、基-3蝶形运算、基-4蝶形运算和基-5碟形运算的多级混合基蝶形运算来进行准确点数DFT计算。
具体地,所述多级混合基蝶形运算的级数K满足:K=sum(α2,α3,α4,α5)。所述K级混合基蝶形运算包括α2级基-2蝶形运算、α3级基-3蝶形运算、α4级基-4蝶形运算以及α5级基-4蝶形运算。其中,α2和α5均为大于或者等于0的整数,α3和α4均为大于0的整数。
所述FFT处理器对所述N点序列点进行所述多级混合基蝶形运算以完成准确N点DFT计算。
具体地,所述FFT处理器包括一个控制器、至少一个运算存储器、一个数据重排单元和一个混合基蝶型运算器。
在本实施例中,优选地,所述至少一个运算存储器为三个运算存储器。可以理解的是,所述至少一个运算存储器也可以为一个运算存储器,所述控制器可以依靠一个读写地址生成单元实现对所述运算存储器中数据的正确访问。
所述N点序列点输入至一个运算存储器内。所述控制器控制所述混合基蝶形运算器对所述N点序列点进行所述多级混合基蝶形运算。具体地,所述混合基蝶形运算器包括四个蝶形运算单元,分别是基-2蝶型运算单元、基-3蝶形运算单元、基-4蝶形运算单元和基-5蝶形运算单元。每个蝶形运算单元具有一个使能开关,所述控制单元通过控制每个蝶形运算单元的使能开关来选择相应的蝶形运算单元。
所述三个运算存储器分别为一个运算存储器0、一个运算存储器1、一个运算存储器2。所述三个运算存储器的存储空间大小相同。
所述控制器控制所述三个运算存储器的使用分配,以确保对多个连续序列处理周期的流水线处理。所述一个序列处理周期为完成对一个长度为N点的序列点进行FFT处理的时间。
具体地,在一个序列处理周期内,所述控制器选择使用其中两个运算存储器,即图1中的运算存储器0和运算存储器1作为内部混合基蝶形运算的数据暂存之用,以确保流水线式处理,同时将剩余的一个运算存储器2标记为“空闲”状态,所述被标记为“空闲”的运算存储器2作为数据输入/输出的接口存储器。在下一个序列处理周期,将存储有运算结果的运算存储器(运算存储器0或者运算存储器1)标记为“空闲”,选择使用前一序列周期“空闲”的运算存储器2替代所述存储有运算结果的运算存储器,用于内部运算数据暂存,以确保下一个序列点处理流水线式进行。
可以理解的是,所述FFT处理器中,两个运算存储器确保一个序列周期内流水线式进行,三个运算存储器确保连续若干个序列周期的流水线式进行。
图1给出是当前一个序列周期内,选择使用运算存储器0和运算存储器1作为内部运算暂存。运算存储器2用作输入/输出接口存储器,以接收下一序列或者输出上一序列的运算结果。
每个运算存储器包含五个子存储体,分别为第一子存储体、第二子存储体、第三子存储体、第四子存储体和第五子存储体。所述第一子存储体和第二子存储体的深度为600,即容量是600点数据。第三子存储体的深度为400,第四子存储体的深度为300,第五子存储体的深度为240。所述五个子存储体的宽度为数据位宽。
每个运算存储器为一个双端口存储器,其包括两个端口,即一个外部数据端口和一个内部运算端口。所述外部数据端口为一个串行端口,所述内部运算端口为一个五路并行端口,其具有五个子端口,分别对应所述运算存储器的五个子存储体,可用于提供五路并行传输。
所述N点序列点以串行模式由其外部数据端口写入运算存储器0。
优选地,所述FFT处理器进一步包括一个读写地址生成单元,所述控制器通过所述读写地址生成单元,实现对每个运算存储器的访问。具体地,所述控制器在写入运算存储器时,同时将写地址写入所述读写地址生成单元。在读取运算存储器中的数据时,根据读写地址生成单元中的写地址访问所述运算存储器。
所述控制器控制将运算存储器中的数据读入所述混合基蝶形运算器进行若干级蝶形运算。
优选地,所述FFT处理器进一步包括一个旋转因子存储器,所述旋转因子存储器提供所述混合基蝶形器进行所述混合基蝶形运算所需要的旋转因子。
实际设计时,将上述蝶形运算需要的旋转因子预先存储在所述旋转因子存储器中,所述混合基碟形运算器执行蝶形运算时,读取相应的旋转因子。所述旋转因子存储器采用ROM(Read-Only Memory,只读内存)格式存储器。
在实际LTE系统中,其具有34种序列点数的情况,所述34种序列点数的情况中,每一种情况,都需要至少一次基-3蝶形运算和至少一次基-4蝶形运算,而基-2蝶形运算和基-5蝶形运算的次数大于或者等于0,优选地,所述基-2和基-5蝶型运算单元采用旁路电路设计。
每一次,所述N个序列点数据完成一级蝶形运算后,在进入下一级蝶形运算之前,均需要由所述数据重排单元对其进行一次数据重排。
优选地,所述序列长度为N点的序列点输入至所述FFT处理器进行多级混合基FFT运算,即第一级基-2蝶形运算、第二级基-3蝶形运算、第三级基-4碟形运算和第四级基-5蝶形运算。
优选地,所述数据重排单元由四个数据匹配单元构成,分别为数据匹配单元FIFO-0、数据匹配单元FIFO-1、数据匹配单元FIFO-2和数据匹配单元FIFO-3,分别对应连接至所述混合基蝶形运算器的基-2蝶型运算单元、基-3蝶形运算单元、基-4蝶形运算单元和基-5蝶形运算单元。
优选地,所述基-2蝶形运算单元与数据匹配单元FIFO-0之间采用32X2pin并行接口对应连接,其之间数据传输采用2路并行数据传输。所述基-3蝶形运算单元与数据匹配单元FIFO-1之间采用32X3pin并行接口对应连接,其之间数据传输采用3路并行数据传输。所述基-4碟形运算单元与数据匹配单元FIFO-2之间采用32X4pin并行接口对应连接,其之间数据传输采用4路并行数据传输,所述基-5蝶形运算单元与数据匹配单元FIFO-3之间采用32X5pin并行接口对应连接,其之间数据传输采用5路并行数据传输。
具体地,该FFT处理器在完成一级基-2蝶形运算之后,在进入下一级基-3蝶形运算之前,基-2蝶形运算单元将其运算结果写入所述数据重排单元中的与基-2蝶形运算单元对应连接的数据匹配单元FIFO-0进行重排,然后将重排后的数据写入一个运算存储器内,再由所述写入的运算存储器将序列点送至混合基蝶形运算器中的基-3蝶形运算单元进行下一级基-3蝶形运算。
同理,在完成一级基-3蝶形运算之后,运算结果由所述数据重排单元的数据匹配单元FIFO-1对其进行重排以进行下一级蝶形运算。在完成一级基-4蝶形运算之后,由所述数据重排单元的数据匹配单元FIFO-2对其进行数据重排以进行下一级蝶形运算。在完成一级基-5蝶形运算之后,由所述数据重排单元的数据匹配单元FIFO-3对其进行数据重排。
请参阅图3,为本发明实施例的FFT处理器进行准确点数DFT计算的流程图。
所述控制器根据输入的点数N,确定所述多级混合基蝶形运算。具体地,查表1或者采用计算程序,确定点数N对应的多级混合基蝶形运算组合,即基-2运算级数α2、基-3运算级数α3、基-4运算级数α4以及基-5运算级数α5
也可以按照如下计算方法,得到基-2运算次数α2、基-3运算次数α3、基-4运算次数α4以及基-5运算次数α5
N = 2 β 2 · 3 β 3 · 5 β 5
则可以得到,α2=MOD(β2,2),α3=β3,α4=FLOOR(β2/2),α5=β5
所述MOD和FLOOR为计算机语言,其中,MOD(dividend,divisor)为一个取余函数,即MOD(7,5)的返回值为2。FLOOR为一个向下舍入函数,如FLOOR(7,2)的返回值为3。
上述对混合基算法的次数的获得可以查表,或者由计算程序获得。
确定完所述多级混合基蝶形运算的组合,则开始执行多级混合基蝶形运算流程,其包括以下步骤:
步骤一 进行α2级基-2蝶形运算;
基2碟型运算级数α2只有0或1两种情况。因此,实际中,首先判断所述α2是否为0,如果是,则将输入的N点序列写入运算存储器1然后进行步骤二,具体地,0~N/3-1点按顺序写入运算存储器1的第1子存储体,N/3~2N/3-1点按顺序写入其第2子存储体,2N/3~N-1点按顺序写入其第3子存储体。所述地址生成单元产生匹配的地址。
如果不是,则执行步骤A、步骤B、步骤C:
A、N个序列点按顺序写入运算存储器0;
具体地,所述N个序列点按照顺序写入运算存储器0的两个子存储体内,前N/2个序列点按顺序写入运算存储器0的第一子存储体,后N/2个序列点按顺序写入其第二子存储体。
对N点的序列,0~(N/2-1)点按顺序写入运算存储器0的第1小块存储体的地址,N/2~N-1点按顺序写入其第2小块存储体的地址。
B、从所述运算存储器0中的第一子存储体和第二子存储体中分别读取一个排行相同的序列点X(n)和X(n+N/2),构成一个两序列点组,则形成N/2个两序列组,依次读取所述N/2个两序列组至所述混合基蝶形运算器的基-2蝶形运算单元进行基-2蝶形运算;
所述基-2蝶形运算请参阅图4,一个两序列点组的两个序列点X(n)和X(n+N/2)经过一个基-2蝶形运算后的一组运算结果为X(2k)和X(2k+1)。
其中,基-2蝶形运算的权值w0由所述旋转因子存储器提供。
C、将N/2组运算结果依次送至与所述基-2蝶形单元对应连接的数据匹配单元FIFO-0进行数据重排,重排后依次输出N/3组三序列点组运算结果至运算存储器1;
请参阅图5,为所述数据匹配单元FIFO-0进行数据重排的示意图。所述数据匹配单元FIFO-0依次接收所述N/2组基-2蝶形运算结果至其上的乒乓矩阵,进行数据重排,具体地,每一组基-2蝶形运算结果采用2路并行输入所述数据匹配单元FIFO-0,N/2组基-2蝶形运算结果串行输入所述数据匹配单元FIFO-0,重排后依次输出N/3组三序列点组运算结果。每组三序列点组中三个序列点并行对应写入运算存储器1的第一子存储体、第二子存储体和第三子存储体。
请参阅图6,为长度N为24点的序列经基-2蝶形运算,基-2运算结果经数据匹配单元FIFO-0数据重排后写入运算存储器1用以下一级基-3运算的示意图。
所述FIFO-0具有一对乒乓矩阵,分别为乒矩阵20A和乓矩阵20B。
基-2蝶形运算时,第一组两序列点组中,两个序列点0、12经基-2蝶形运算的结果标记新序号0、1,按列写入FIFO-0的乒矩阵20A,依次所述N/2组基-2运算结果,写入乒矩阵20A和乓矩阵20B,按照先写乒矩阵后写乓矩阵的顺序写,直至写完。然后,按行读取乒乓矩阵序列点至运算存储器1。
可以理解的是,所述图5和图6给出的数据重排方法即为一个顺序写入跳址读取的方法,即当前基-2蝶形运算结果按顺序写入其对应数据匹配单元FIFO-0,再跳址读取数据匹配单元FIFO-0中的数据至运算存储器1,所述跳址读取时读取地址依照公式(3)生成,所述公式(3)为:
Figure GSB00000202543000131
所述Rn为下一级蝶形运算即基-3蝶形运算的基数3,Rc为当前一级蝶形运算即基-2蝶形运算的基数2,所述跳址读取方法为每隔个地址读取一个数据直至读完所述N个基-2蝶形运算结果。
下面详细介绍所述跳址读取顺序写入方法的程序:
对于序列点数N,当前蝶型运算的基数为Rc,下一级蝶型运算的基数为Rn,n和k为两个循环变量,其中n取值范围为
Figure GSB00000202543000142
k的取值范围[0:Rn-1]。所述跳址读取的地址生成程序如下:
for n = 0 : N R c · R n - 1
                   {
for k=0:Rn-1
{
addr = n + N · k R c · R n ;
k=k+1;
                                }
                          n=n+1;
                      }end;
在此有必要解释所述蝶形运算的基数,对于基-2蝶形运算的基数就是2,基-3蝶形运算的基数就是3,基-4蝶形运算的基数就是4,基-5蝶形运算的基数就是5。
可以理解的是,按照所述顺序写入跳址读取的方法,对于图6给出的情况,其读取的顺序为0、8、16、1、9、17、2、10、18…………7、15、23。0、8、16为一组三序列组并行写入运算存储器1,1、9、17为第一组并行写入运算存储器1,同理可推出其余组,在此不作赘述。
步骤二 进行基-3碟型运算。
从所述运算存储器1中的第一子存储体、第二子存储体和第三子存储体中并行读取一个排行相同的序列点,构成一个具有三个序列点的三序列点组,依次读取N/3组三序列点组至所述混合基蝶形运算器的基-3蝶形运算单元进行基-3蝶形运算。
所述基-3蝶形运算请参阅图6,三个序列点X(n)、X(n+N/3)和X(n+2N/3)经过基-3蝶形运算后的结果为X(3k)、X(3K+1)和X(3k+2)。其中,基-3蝶形运算的权值w0、w1由所述旋转因子存储器提供。
然后将N/3组基-3蝶形运算结果依次送至与所述基-3蝶形单元对应连接的数据匹配单元FIFO-1进行数据重排。所述数据重排的方法同样按照所述跳址读取顺序写入的方法进行,在此不做赘述。
具体请参阅图7,为所述数据匹配单元FIFO-1的结构示意图。
待基-3蝶形运算单元完成N/3次蝶形运算并依次送至所述数据匹配单元FIFO-1后,所述数据匹配单元FIFO-0对N个基-2蝶形运算结果重排分成三组,对应写入运算存储器0的第一子存储体、第二子存储体、第三子存储体和第四子存储体。
优选地,对所述三个子存储体的读操作为并行操作,通过其对应的子端口并行进行读操作。
如果α3大于1,则需要再循环1次以上所述步骤二,当前一级基-3蝶形运算结果送至所述数据匹配单元FIFO-1进行数据重排,所述数据重排方法同样按照跳址读取顺序写入方法进行,其中,当前一级基数与下一级基数相同,为3,每隔
Figure GSB00000202543000151
个地址读取一个数据,顺序写入运算存储器0的第一子存储体、第二子存储体、第三子存储体。
步骤三 进行基-4碟型运算。
从所述运算存储器0中的第一子存储体、第二子存储体、第三子存储体和第四子存储体中分别读取一个排行相同的序列点,构成一个具有四个序列点的组,读至所述混合基蝶形运算器的基-4蝶形运算单元进行一次基-4蝶形运算。读取所述四个序列点的组为并行读取,
所述基-4蝶形运算请参阅图5,四个序列点X(n)、X(n+N/4)、X(n+N/2)和X(n+3N/4)经过基-4蝶形运算后的结果为X(4k)、X(4K+2)、X(4k+1)和X(4k+3)。其中,基-4蝶形运算的权值w0、w1、w2由所述旋转因子ROM提供。
然后将所述基-4蝶形运算后的结果X(4k)、X(4K+2)、X(4k+1)和X(4k+3)并行写入与所述基-4蝶形单元对应连接的数据匹配单元FIFO-2内进行数据重排。
具体请参阅图12,为所述数据匹配单元FIFO-2的结构示意图。
基-4蝶形运算单元执行一次基-4蝶形运算的结果并行写至所述数据匹配单元FIFO-2。
可以理解的是,基-4蝶形运算单元依次执行N/4次的基-4蝶形运算,并依次送至所述数据匹配单元FIFO-2。所述数据匹配单元FIFO-2对N个基-4蝶形运算结果重排分成五组,对应写入运算存储器1的第一子存储体、第二子存储体、第三子存储体、第四子存储体和第五子存储体。
优选地,对所述四个子存储体的读操作为并行操作,通过其对应的子端口并行进行读操作。
如果α4大于1,则需要再循环1次以上所述步骤三,具体步骤为:当前一级基-4蝶形运算结果送至所述数据匹配单元FIFO-2进行数据重排,所述数据重排方法同样按照跳址读取顺序写入方法进行,其中,当前一级基数与下一级基数相同,为4,每隔
Figure GSB00000202543000161
个地址读取一个数据,顺序写入运算存储器1的第一子存储体、第二子存储体、第三子存储体和第四子存储体。
循环执行步骤三至执行完α4级基-4蝶形运算,判断是否包含基-5运算,如果是则进行步骤四;如果不是则将整个DFT/IDFT结束并更新运算存储器1的状态为“空闲”。
步骤四 进行基-5碟型运算。
从所述运算存储器1中的五个子存储体中分别读取一个排行相同的序列点,构成一个具有五个序列点的组,读至所述混合基蝶形运算器的基-5蝶形运算单元进行一次基-5蝶形运算。读取所述四个序列点的组为并行读取,
所述基-5蝶形运算请参阅图5,四个序列点X(n)、X(n+N/5)、X(n+2N/5)、X(n+3N/5)和X(n+4N/5)经过基-5蝶形运算后的结果为X(5k)、X(5K+1)、X(5k+3)、X(5k+4)和X(5k+2)。其中,基-5蝶形运算的权值w0、w1、w2、w3由所述旋转因子ROM提供。
然后将所述基-5蝶形运算后的结果X(5k)、X(5K+1)、X(5k+3)、X(5k+4)和X(5k+2)并行写入与所述基-5蝶形单元对应连接的数据匹配单元FIFO-3内进行数据重排。
具体请参阅图13,为所述数据匹配单元FIFO-3的结构示意图。
基-5蝶形运算单元执行一次基-5蝶形运算的结果并行写至所述数据匹配单元FIFO-3。
可以理解的是,所述基-5蝶形运算单元依次对N/5个组进行基-5蝶形运算,并依次送至所述数据匹配单元FIFO-3。所述数据匹配单元FIFO-3对N个基-5蝶形运算结果重排分成五组,对应写入运算存储器0的第一子存储体、第二子存储体、第三子存储体、第四子存储体和第五子存储体。
优选地,对所述四个子存储体的读操作为并行操作,通过其对应的子端口并行进行读操作。
因为基-5运算次数为0或者1、2,所以如果基-5次数为0,则执行完所有基-4运算则整个蝶型运算结束,如果次数为1则执行1次基-5运算后结束,如果为2则循环1次基-5运算后结束。
请参阅图14,为所述序列点数N为24时,其混合基蝶形运算的示意图。从图14看出,由基-2蝶形运算完进入基-3蝶形运算之前,采用跳址读取顺序写入的方法,确保了多级混合基蝶形运算流水线式进行。
对于多个连续的长度为N点的序列,所述FFT处理器的处理方法为:
步骤A2、在当前一个序列,选择其中两个运算存储器作为所述步骤A1至步骤D1中蝶形运算数据暂存,选择剩余的一个运算存储器用作接收下一个序列,FFT处理结果保存至所述内部运算数据暂存用的两个运算存储器之一上;
步骤C2、按照所述步骤一至步骤四对所述当前序列进行FFT处理;
步骤B2、下一个序列到来时,选择步骤A2中保存所述FFT处理结果的运算存储器作为接收当前步骤的下一个序列,选择剩余的两个运算存储器作为当前步骤的数据暂存使用。
本发明提供的一种FFT处理器,采用多级混合基蝶形运算,实现对任何满足
Figure GSB00000202543000181
的序列点的准确点数DFT/IDFT计算,采用两个运算存储器和一个数据重排单元,用于对当前一级蝶形运算结果重排顺序以进行下一级蝶形运算,实现多级混合基蝶形运算的流水线进行,且内部运算数据较多采用并行传输,使电路运算性能得到极大提高,本发明实施例的FFT处理器采用三个运算存储器,实现流水线式处理多个连续序列,满足了LTE系统中对实时性的高要求。
以上说明书中的具体实施部分,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的方法及技术内容做出些许的更动或修饰为等同变化的等效实施例,但是凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。

Claims (9)

1.一种快速傅立叶变换处理器,其用于对一个N个序列点进行离散傅立叶变换DFT,所述N满足公式
Figure FDA0000089013790000011
其特征在于,所述快速傅立叶变换处理器对所述N个序列点进行多级混合基蝶形运算,所述多级混合基蝶形运算依次为α2级基-2蝶形运算、α3级基-3蝶形运算、α4级基-4蝶形运算以及α5级基-5蝶形运算,其中,α2和α5均为大于或者等于0的整数,α3和α4均为大于0的整数,所述快速傅立叶变换处理器包括:
至少一个运算存储器,用以暂存所述N个序列点;
一个混合基蝶形运算器,所述混合基蝶形运算器具有一个基-2蝶形运算单元、一个基-3蝶形运算单元、一个基-4蝶形运算单元和一个基-5蝶形运算单元,其分别进行基-2蝶形运算、基-3蝶形运算、基-4蝶形运算和基-5蝶形运算;以及
一个控制器,其访问所述至少一个运算存储器以读取所述N个序列点至所述混合基蝶形运算器依次进行所述多级混合基蝶形运算,且每一级蝶形运算的输入数据为其上一级蝶形运算的运算结果。
2.如权利要求1所述的快速傅立叶变换处理器,其特征在于,所述至少一个运算存储器为两个运算存储器,分别为第一运算存储器和第二运算存储器,分别暂存所述上一级蝶形运算结果和当前一级蝶形运算结果。
3.如权利要求1所述的快速傅立叶变换处理器,其特征在于,所述快速傅立叶变换处理器进一步具有一个读写地址生成单元,写所述至少一个运算存储器时,所述控制器将其对应的写地址写入所述读写地址生成单元,所述控制器根据所述写地址访问所述运算存储器以读取其上的数据至所述混合基蝶形运算器进行所述多级混合基蝶形运算。
4.如权利要求3所述的快速傅立叶变换处理器,其特征在于,当前一级混合基蝶形运算的运算结果被写入所述至少一个运算存储器,同时所述控制器将其对应写地址写入所述读写地址生成单元,所述控制器根据所述地址访问所述运算存储器读取其上的蝶形运算结果至所述混合基蝶形运算器进行下一级蝶形运算。
5.如权利要求2所述的快速傅立叶变换处理器,其特征在于,所述快速傅立叶变换处理器进一步具有一个数据重排单元,所述当前一级蝶形运算结果被写入所述至少一个运算存储器之前,所述当前一级蝶形运算结果先被写入所述数据重排单元进行重排,重排后的数据按顺序写入所述至少一个运算存储器以进行下一级蝶形运算。
6.如权利要求5所述的快速傅立叶变换处理器,其特征在于,所述数据重排单元具有四个数据匹配单元,分别对应连接混合基蝶形运算器的基-2蝶形运算单元、基-3蝶形运算单元、基-4蝶形运算单元和基-5蝶形运算单元,每个数据匹配单元负责重排其对应蝶形运算单元的运算结果,以进行下一级蝶形运算。
7.如权利要求6所述的快速傅立叶变换处理器,其特征在于,所述数据匹配单元采用跳址读取顺序写入的方法对所述运算结果进行重排,所述跳址读取顺序写入的方法为:跳址读取所述当前一级蝶形运算结果,再按顺序写入所述运算存储器,所述跳址读取依照公式
Figure FDA0000089013790000021
进行,所述Rn为下一级蝶形运算基数,Rc为当前一级蝶形运算基数,n和k为两个循环变量,其中n取值范围为[0:
Figure FDA0000089013790000022
],k的取值范围[0:Rn-1],所述N为所述当前一级蝶形运算结果的个数,所述跳址方法为每隔
Figure FDA0000089013790000023
个点读取一个数据直至读完所述N个当前一级蝶形运算结果,按照读取顺序写入所述运算存储器。
8.一种应用于如权利要求1所述的快速傅立叶变换处理器的处理方法,用于对一个长度为N点的序列进行快速傅立叶变换处理,所述处理方法包括以下步骤:
A1、判断是否需要基-2蝶形运算,如果不是则跳至步骤B1,如果是,则输入序列点至所述基-2蝶形运算单元进行α2级基-2蝶形运算;
B1、如步骤A1进行了基-2蝶形运算,对步骤A1的运算结果序列进行α3级基-3蝶形运算;否则,输入序列点至所述基-3蝶形运算单元进行α3级基-3蝶形运算;
C1、步骤B1的运算结果序列进行α4级基-4蝶形运算;
D1、步骤C1的运算结果序列进行α5级基-5蝶形运算。
9.如权利要求8所述处理方法,用于对多个长度为N点的序列进行连续快速傅立叶变换处理,其特征在于,所述快速傅立叶变换处理器具有三个运算存储器,在所述步骤A1之前,执行步骤A2,在执行步骤D1之后执行步骤B2,
所述步骤A2为,要对当前一个序列进行快速傅立叶变换处理时,选择其中两个运算存储器作为所述步骤A1至步骤D1中蝶形运算数据暂存,选择剩余的一个运算存储器用作接收下一个序列,快速傅立叶变换处理结果保存至所述蝶形运算数据暂存用的两个运算存储器之一上;
所述步骤B2为,下一个序列到来时,选择步骤A2中保存所述快速傅立叶变换处理结果的运算存储器用作接收当前步骤的下一个序列,选择剩余的两个运算存储器作为当前步骤的数据暂存使用。
CN2008100670953A 2008-05-04 2008-05-04 一种快速傅立叶变换处理器及其方法 Active CN101571849B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2008100670953A CN101571849B (zh) 2008-05-04 2008-05-04 一种快速傅立叶变换处理器及其方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2008100670953A CN101571849B (zh) 2008-05-04 2008-05-04 一种快速傅立叶变换处理器及其方法

Publications (2)

Publication Number Publication Date
CN101571849A CN101571849A (zh) 2009-11-04
CN101571849B true CN101571849B (zh) 2012-01-25

Family

ID=41231208

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008100670953A Active CN101571849B (zh) 2008-05-04 2008-05-04 一种快速傅立叶变换处理器及其方法

Country Status (1)

Country Link
CN (1) CN101571849B (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102111365B (zh) * 2009-12-28 2015-04-15 重庆重邮信科通信技术有限公司 Lte系统dft/idft旋转因子控制方法、装置及dft/idft运算装置
CN101840393B (zh) * 2010-02-26 2012-10-17 联芯科技有限公司 混合基离散傅立叶变换的处理方法及装置
CN102004720B (zh) * 2010-11-09 2013-04-03 无锡中星微电子有限公司 可变长快速傅立叶变换电路及实现方法
CN102012800B (zh) * 2010-12-01 2012-08-08 华东师范大学 一种混合基2/4蝶型运算核
CN102810087B (zh) * 2011-05-30 2017-04-12 中兴通讯股份有限公司 一种傅立叶变换的实现装置
CN102253923B (zh) * 2011-07-27 2013-08-14 电子科技大学 基于Turbo结构的快速傅立叶DFT变换系统
CN102333061B (zh) * 2011-10-12 2014-08-20 上海屹太电子科技有限公司 基于fft的ofdm调制解调装置
WO2013097219A1 (zh) * 2011-12-31 2013-07-04 中国科学院自动化研究所 一种用于并行fft计算的数据存取方法及装置
US9262378B2 (en) 2011-12-31 2016-02-16 Institute Of Automation, Chinese Academy Of Sciences Methods and devices for multi-granularity parallel FFT butterfly computation
CN102411557B (zh) * 2011-12-31 2014-06-25 中国科学院自动化研究所 多粒度并行fft计算装置
CN103631759B (zh) * 2012-08-22 2018-02-13 中兴通讯股份有限公司 一种实现快速傅立叶变换/离散傅立叶变换的装置及方法
CN103699515B (zh) * 2013-12-27 2017-01-18 中国科学院计算技术研究所 一种fft并行处理装置和方法
CN106656891B (zh) * 2015-07-21 2019-09-20 苏州简约纳电子有限公司 Lte系统中的数据处理装置
CN106372034B (zh) * 2016-08-29 2019-09-17 北京理工大学 一种混合基fft处理器
CN107391439B (zh) * 2017-07-11 2020-08-14 创耀(苏州)通信科技股份有限公司 一种可配置快速傅里叶变换的处理方法
CN109783054B (zh) * 2018-12-20 2021-03-09 中国科学院计算技术研究所 一种rsfq fft处理器的蝶形运算处理方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1655143A (zh) * 2004-02-11 2005-08-17 三星电子株式会社 使用大小减半的存储器的快速傅立叶变换处理器和方法
CN1808419A (zh) * 2005-07-15 2006-07-26 北京大学深圳研究生院 一种实时快速傅立叶变换电路
CN1823333A (zh) * 2003-07-18 2006-08-23 加拿大西格纳斯通信公司 重新编码的基-2流水线fft处理器

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1823333A (zh) * 2003-07-18 2006-08-23 加拿大西格纳斯通信公司 重新编码的基-2流水线fft处理器
CN1655143A (zh) * 2004-02-11 2005-08-17 三星电子株式会社 使用大小减半的存储器的快速傅立叶变换处理器和方法
CN1808419A (zh) * 2005-07-15 2006-07-26 北京大学深圳研究生院 一种实时快速傅立叶变换电路

Also Published As

Publication number Publication date
CN101571849A (zh) 2009-11-04

Similar Documents

Publication Publication Date Title
CN101571849B (zh) 一种快速傅立叶变换处理器及其方法
Leighton et al. Dynamic tree embeddings in butterflies and hypercubes
CN101729463A (zh) 一种实现快速傅立叶变换、反变换的硬件装置及方法
CN103699515B (zh) 一种fft并行处理装置和方法
CN105808309B (zh) 一种基于申威平台的基础线性代数库blas三级函数gemm的高性能实现方法
CN101136891B (zh) 流水线结构的3780点快速傅里叶变换处理器
CN102043761A (zh) 一种基于可重构技术的傅立叶变换的实现方法
US20160239463A1 (en) Method and device for fast fourier transform
CN105512954A (zh) 一种针对大规模柔性作业车间调度的集成搜索方法
CN102609396A (zh) 一种drm系统中离散傅里叶变换处理装置和方法
CN108170640A (zh) 神经网络运算装置及应用其进行运算的方法
Ploskas et al. GPU accelerated pivoting rules for the simplex algorithm
CN104699624A (zh) 面向fft并行计算的无冲突存储访问方法
CN106933777B (zh) 基于国产申威26010处理器的基2一维fft的高性能实现方法
CN106951394A (zh) 一种可重构定浮点通用fft处理器
CN105183701A (zh) 1536点fft处理方式及相关设备
CN105718424B (zh) 一种并行快速傅立叶变换处理方法
CN103186503B (zh) 一种fft/dft倒序排列系统与方法及其运算系统
CN105095152A (zh) 一种可配置的128点fft装置
CN102799564A (zh) 基于多核dsp平台的fft并行方法
CN101661457A (zh) 多处理器系统的三角线性方程组求解的方法和装置
CN100547580C (zh) 用于实现可变大小的快速正交变换的方法和装置
CN103493039B (zh) 数据处理方法、数据处理装置、接入设备和用户设备
US20130046806A1 (en) Fast fourier transform circuit
CN103514042B (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
C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20151103

Address after: 518057 Nanshan District Guangdong high tech Industrial Park, South Road, science and technology, ZTE building, Ministry of Justice

Patentee after: ZTE Corp.

Patentee after: SANECHIPS TECHNOLOGY Co.,Ltd.

Address before: 518057 Nanshan District Guangdong high tech Industrial Park, South Road, science and technology, ZTE building, Ministry of Justice

Patentee before: ZTE Corp.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20221129

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.

Patentee before: SANECHIPS TECHNOLOGY Co.,Ltd.