一种快速傅里叶变换实现装置及方法

文档序号:6547637阅读:205来源:国知局
一种快速傅里叶变换实现装置及方法
【专利摘要】本申请涉及一种快速傅里叶变换实现装置和方法,其装置包括:输入数据存储到分为高低地址两块的数据存储器,根据读地址生成器从中读取两个复数,低地址数据送入寄存器延时1周期;根据控制器信号,与高地址数据经选择器送入蝶形运算引擎的两个输入支路;与此同时,根据旋转因子地址生成器给定的地址从旋转因子存储器读出旋转因子送入蝶形运算引擎;其输出,按移位寄存器延时的地址和选择器保证原址写回数据存储器。地址生成器中,用简单的基础值加上偏移值来得到读地址,同时读出两块存储器数据依次运算。与现有技术相比,本申请减少了运行周期,增加了最高运行频率,同时旋转因子存储器仅为所需旋转因子的1/4空间,节省了设计资源。
【专利说明】一种快速傅里叶变换实现装置及方法
【技术领域】
[0001]本发明涉及一种快速傅里叶变换实现装置及方法。本发明尤其涉及正交频分复用调制的实现处理。
【背景技术】
[0002]离散傅里叶变换(Discrete Fourier Transform, DFT)及其逆变换是数字信号处理的重要部分,是数字信号时域和频域相互转换的重要方法。快速傅里叶变换(FastFourier Transform, FFT)是计算DFT的快速运算方法,特别是N = 2K点(其中K为整数)的FFT使用尤为广泛。
[0003]正交频分复用(OFDM)技术以其高频谱利用率、强抗多径干扰及窄带干扰能力、便于移动接收等优点,成为当前和未来无线通信高速率传输中十分有竞争力的一种技术。现在通信系统如 WLAN、DVB-T, CMMB, B3G、4G 都采用了 OFDMjn DVB-T2 分别采用 1024、2048、4096、8192、16384、32768点FFT来实现其lk、2k、4k、8k、16k、32k模式。由于各副载波之间的正交性,使得调制结果可以使用傅里叶逆变换来实现。因此FFT的运算效率常常成为通信系统的关键性能。
[0004]现有实现FFT运算装置,使用一个双端口 RAM来进行数据存储,可同时进行读写,但I个周期只能读出I个数据,而蝶形运算每次需要两个数据,造成蝶形运算只有一半的时间在工作;还有使用了分块的双端口 RAM,可以在I个周期同时读出2个数据,但在两级处理之间需要缓冲,造成总体计算周期增大;现有FFT装置还存在,地址生成器控制复杂,旋转因子存储空间占用大,工作频率低等问题。

【发明内容】

[0005]有鉴于此,本发明提供了一种实现快速傅里叶变换的装置及方法,用于解决现有装置及方法中运算周期长,占用存储空间大,最高工作频率低等问题,其技术方案如下:
[0006]一种快速傅里叶变换(FFT)实现装置,包括:数据存储器、蝶形运算引擎、数据地址发生器、旋转因子地址发生器、旋转因子存储器、移位寄存器、控制器、数据选择器1、数据选择器2、寄存器1、寄存器2,其中:
[0007]所述数据存储器按地址分为高低两块双端口存储器,地址最高位为I的称作高地址存储器,最高位为O的称作低地址存储器,共同构成运算点数大小的复数存储器;
[0008]所述读地址生成器,宽度比总数据地址宽度小1,可以同时读出和写入两块存储器内容;
[0009]所述寄存器1,对低地址读出数据进入进行I个周期的延迟;
[0010]所述数据选择器I,对高低两块存储器读出数据进行选择;
[0011]所述旋转因子地址发生器,生成读取旋转因子所需地址;
[0012]所述旋转因子存储器,存储蝶形运算引擎所需旋转因子;
[0013]所述蝶形运算引擎,用于基2碟形运算,其中,X1支路和旋转因子比Xtl支路先I周期进入;
[0014]所述数据选择器2,对蝶形运算引擎两支路输出进行选择;
[0015]所述移位寄存器,将读地址通过与蝶形运算引擎相同的固定延时,得到写地址,实现读写同址运算;
[0016]所述控制器,管理和协调读地址生成器、旋转因子地址生成器、蝶形运算引擎输入数据的选择、蝶形运算引擎输出数据写入存储器时的选择器等。
[0017]所述旋转因子存储器为双端口只读存储器,仅存储N/4个定点实数,其中N为傅里叶变换点数,存储空间为所需旋转因子数据的1/4 ;完整的旋转因子通过双端口存储器和简单加减法计算得到。
[0018]所述数据选择器I和数据选择器2由控制器内的计数器的最低位控制,其工作流程为:
[0019]a.开始运算时读出高地址数据用于蝶形运算的第二支路;
[0020]b.读出高地址数据用于蝶形运算的第一支路,低地址数据用于第二支路;
[0021]c.读出高地址数据用于蝶形运算的第二支路,低地址数据用于第一支路;
[0022]然后重复b、C,直到完成所有处理流程和数据;
[0023]数据选择器2和移位寄存器共同保证蝶形运算引擎输出同址回写到数据存储器。
[0024]所述蝶形运算引擎,第二支路先与旋转因子相乘;第一支路相对晚I周期进入;然后两个支路同时分别进行加法和减法运算,同时得到两个支路的蝶形运算结果;
[0025]所述蝶形运算引擎,乘加运算包括但不限于定点运算得到;在应用于正交频分复
用调制(OFDM)中,使用了总体增益为I的FFT运算,即每I级运算乘以1/#,同时,输入进行经计算和评估的功率回退来确保计算精度和防溢出;
[0026]除此之外还可使用浮点运算来处理增益和溢出问题。使用浮点(单双精度或块浮点),同时使用了权利要求1和权利要求4所述的装置的,属于本发明权利要求范围内。
[0027]所述数据存储器,在数据输入时,按比特反转顺序地址写入;读出时按自然顺序读出。
[0028]可使用使能该装置进行快速傅里叶逆变换,通过输入和输出两个时刻对数据实部虚部进行交换来实现IFFT,此时,总体运算增益为1,与理论上的N点FFT/IFFT有一个乘性
常数因子1/#和#。
[0029]一种快速傅里叶变换方法,包括:
[0030]除了实现N点FFT,该装置还可实现M点FFT,其中1g2N, 1g2M皆为整数,且log2N>log2M,仅仅是地址生成器的参数不同,无需额外的资源,且和单独计算M点FFT所需的计算时间相同;运算分为K = 10&11级,其中K为整数,每级处理所需时钟周期数为M/2,控制计数器计数范围为[0,Μ/2-1]。
[0031]所述的快速傅里叶变换方法,主要包含以下几种状态:
[0032]闲置状态,等待启动信号和所需计算的FFT点数M ;
[0033]输入状态,按比特反转顺序将输入数据写入数据存储器,M个周期;
[0034]处理状态,根据控制信号对高低地址两部分数据存储器内容进行蝶形运算,并同址回写,一共M/2* (1g2M-1)个周期;[0035]末级处理状态,对高低地址读出数据共同进行蝶形运算,并同址回写,一共M/2个周期;
[0036]缓冲延迟状态,此刻,所有需要处理数据的读完成,等待处于处理中的数据完成运算及其回写,一共数个周期,决定于取出数据,蝶形运算,写入数据,一次处理流程所需要的时间,考虑蝶形运算的流水等,为4或5个周期;
[0037]输出状态,按自然顺序将输出数据读出,M个周期。然后回到闲置状态,等待下一帧数据的FFT运算。
[0038]因此,数据存储器的读写是持续的,蝶形运算引擎在处理过程中是全速无中断运行的,处理时间达到了单引擎运算的理论最短值。
[0039]所述读地址生成器,不包含最高位地址,可同时读出高低两部分数据存储器数据,在前1g2M-1级,通过与蝶形运算大小(即两个支路数据的地址差)结合,可用I个地址分别得到:高地址的第二支路数据和第一支路数据、低地址的第二支路数据和第一支路数据;在第1g2M-1级可用I个地址分别得到:高地址数据作为第二支路,低地址数据作为第一支路。
[0040]上述装置和方法从以下方面提高了性能:
[0041]使用分为高低地址的两块数据存储器,先读写高地址数据;使用蝶形运算第二支路优先第一支路I周期进入蝶形运算引擎;使得蝶形运算引擎可以全速执行无需中断,无需处理过程中的缓冲和FIFO,减少了计算的周期数;简化了地址生成器电路,简化了功能丰旲块,可以提闻电路的最闻运行频率;同时减少了旋转因子的存储空间,减少了资源的使用;同时兼容不同点数的FFT,采用同一电路无需额外的装置来计算多种模式下的多种FFT运算,节约了系统资源。
【专利附图】

【附图说明】
[0042]为了更清晰和准确的说明本发明的实施或技术方案,下面对实施例或技术所需要的附图做简单介绍。
[0043]图1为FFT实现装置模块框图;
[0044]图2为16点DIT基2算法实现FFT数据流图;
[0045]图3为碟形运算数据流图;
[0046]图4为一种16点DIT结构实现8点FFT运算数据流图;
[0047]图5为64点FFT中的旋转因子;
[0048]图6为碟形运算引擎电路图;
[0049]图7为16点DIT结构实现4点FFT运算数据流图;
[0050]图8为节省旋转因子存储空间的模块框图;
[0051 ]图9为控制状态机状态转移及其工作内容;
[0052]图10为本发明16点FFT实施例开始运算时的时序示意图。
【具体实施方式】
[0053]下面结合本发明实施例中的附图,对本发明技术方案进行清晰、准确、完整的说明。所述实施例仅是本发明的一部分实施例,并非全部实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。
[0054]DFT和IDFT是数字信号时域和频域相互变换的一种关系,同时在OFDM系统中,也是解调和调制的一种实施算法。在信号处理中,随着处理的方便性,数据常常会整体的I个实数乘性因子放大或缩小。DFT原理如式(I):
【权利要求】
1.一种快速傅里叶变换(FFT)实现方法及装置,其特征在于,包括:数据存储器、蝶形运算引擎、数据地址发生器、旋转因子地址发生器、旋转因子存储器、移位寄存器、控制器、数据选择器1、数据选择器2、寄存器1、寄存器2,其中: 所述数据存储器按地址分为高低两块双端口存储器,地址最高位为I的称作高地址存储器,最高位为O的称作低地址存储器,共同构成运算点数大小的复数存储器; 所述读地址生成器,宽度比总数据地址宽度小1,可以同时读出和写入两块存储器内容; 所述寄存器1,对低地址读出数据进入进行I个周期的延迟; 所述数据选择器1,对高低两块存储器读出数据进行选择; 所述旋转因子地址发生器,生成读取旋转因子所需地址; 所述旋转因子存储器,存储蝶形运算引擎所需旋转因子; 所述蝶形运算引擎,用于基2碟形运算,其中,X1支路和旋转因子比X0支路先I周期进入; 所述数据选择器2,对蝶形运算引擎两支路输出进行选择; 所述移位寄存器,将读地址通过与蝶形运算引擎相同的固定延时,得到写地址,实现读写同址运算; 所述控制器,管理和协调读地址生成器、旋转因子地址生成器、蝶形运算引擎输入数据的选择、蝶形运算引擎输出数据写入存储器时的选择器等。
2.根据权利要求1所述的快速傅里叶变换装置,其特征在于,还包括: 所述旋转因子存储器为双端口只读存储器,仅存储N/4个定点实数,其中N为傅里叶变换点数,存储空间为所需旋转因子数据的1/4 ;完整的旋转因子通过双端口存储器和简单加减法计算得到。
3.根据权利要求1所述的快速傅里叶变换装置,其特征在于,还包括: 数据选择器I和数据选择器2由控制器内的控制计数器的最低位控制; 数据选择器2与移位寄存器共同保证蝶形运算引擎输出同址回写到数据存储器。
4.根据权利要求1所述的快速傅里叶变换装置,其特征在于,还包括: 所述蝶形运算引擎,第二支路先与旋转因子相乘后缓存I周期;第一支路相对晚I周期进入;然后两个支路同时分别进行加法和减法运算,同时得到两个支路的蝶形运算结果。
5.根据权利要求1所述的快速傅里叶变换装置,其特征在于,还包括: 可使用使能该装置进行快速傅里叶逆变换,通过输入和输出两个时刻对数据实部虚部进行相互交换来实现IFFT ;此时,总体运算增益为1,与理论上的N点FFT/IFFT有一个乘性常数因子1/#和
6.一种快速傅里叶变换方法,其特征在于,包括: 除了实现N点FFT,该装置还可实现M点FFT,其中1g2N, 1g2M皆为整数,且log2N>log2M,仅仅是地址生成器的参数不同,无需额外的资源,且和单独计算M点FFT所需的计算时间相同;运算分为K= 1g2M级,每级处理所需时钟周期数为M/2,控制计数器计数范围为[0,Μ/2-1],整个运算过程存储器读写无中断,蝶形运算引擎全速持续运行无中断,达到基2单引擎的理论最短运算时间。
7.根据权利要求1所述的快速傅里叶变换装置和权利要求6所述的快速傅里叶变换方法,其特征在于,还包括: 所述读地址生成器,不包含最高位地址,可同时读出高低两块存储器数据,在前K-1级,通过与蝶形运算大小(即两个支路数据的地址差,偏移地址)结合,可用I个地址分别得到:高地址的两个支路数据、低地址的两个支路数据;在第K级可用I个地址分别得到:高地址数据为第二支路,低地址数据为第一支路。
【文档编号】G06F17/14GK103970718SQ201410225118
【公开日】2014年8月6日 申请日期:2014年5月26日 优先权日:2014年5月26日
【发明者】刘昌银, 张鹏, 万欣 申请人:苏州威士达信息科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1