通用dsp处理器中fft计算实现装置和方法

文档序号:6340057阅读:258来源:国知局
专利名称:通用dsp处理器中fft计算实现装置和方法
技术领域
本发明涉及信号处理领域和通用DSP处理器领域,尤其涉及一种通用DSP处理器中FFT计算实现装置和方法。
背景技术
数字信号处理(DSP,Digital Signal Processing)主要指对数字信号的处理,它对于许多应用来说都是必需的,所述应用例如是数字信号及图像滤波、语音合成、高速调制解调器、语音识别、信号及图像压缩等等。通用DSP处理器是指是一种处理大量数字信号信息的微处理器,具有强大的数据处理能力和很高的运行速度。在通用DSP处理器中常常使用DFT (Discrete Fourier Transform,离散傅里叶变换)来对离散信号进行处理,但是DFT的计算复杂度较高。随之出现的FFT (Fast Fourier ^Transform,快速傅里叶变换)不但将DFT的计算复杂度由
F2降到了 Mog ^V,而且其控制相对简单,存储单元结构简单,耗费硬件资源最少,从而便
于低功耗系统设计,因此在数字信号领域,尤其在数字通信、图像处理、无线通信等方面FFT 都有极为广泛的应用。目前存在许多基于ASIC或者FPGA的FFT处理器。FFT处理器通常有两种结构,一种是级联结构,一种是单级结构。所述级联结构是指具有多级计算单元,前一级的计算结果作为后一级的输入;所述单级结构是指只有一级的计算单元,计算结果作为下一次计算的输入,循环计算。在FFT处理器中采用基于 cooley-turkey算法实现的流水线结构,由于cooley turkey具有原址计算的特点,所以易于硬件实现。常用的FFT处理器都采用多级结构,计算速度快,可以实现流水线计算,但是通用性不强,且价格昂贵。如果要完成各种常用信号处理,还需要通用DSP核来协助处理。对于通用DSP处理器,没有FFT计算所需要的巨量存储器,且计算单元比较少,其通常采用单级结构。该单级结构主要包括基2或基4 FFT计算单元,每次只能进行一级FFT碟形计算。就基2 FFT计算来说,其只能处理2N点,其中,N=l,….,η。而基4 FFT计算,其只能处理4〃点,其中,N=l,....,n,例如16点、256点、1024点等等,却无法处理32点、128点、 512点、2048点等2〃点。由上述可知,基2 FFT计算比基4 FFT计算的作用范围大,但是基4 FFT计算的并行性价比要比基2 FFT计算的高,并且基4 FFT计算的速度要比基2FFT计算快。

发明内容
本发明公开了一种计算效率高的通用DSP处理器中FFT计算实现装置和方法。为了解决上述问题,本发明通用DSP处理器中FFT计算实现装置的技术方案包括
通用DSP处理器中FFT计算实现装置,用于对存储在RAM中的计算点进行FFT变换,其特征在于,包括FFT计算点处理控制单元、数据输入控制单元、混合基FFT计算单元、数据输出控制单元和旋转因子计算单元,其中
所述FFT计算点处理控制单元将点数大于等于阈值的计算点转换为二维数据IXJ, 其中I为4的幂且I X J等于该FFT计算点的点数,对于小于阈值的计算点和二维数据转换后的数据,若不能进行纯基4计算则进行基4或基2的混合级计算的控制;
所述数据输入控制单元用于根据所述FFT计算点处理控制单元处理的结果产生FFT计算点在RAM中的反序地址,使用DMA读取数据,输送给所述混合基FFT计算单元; 所述旋转因子计算单元用于计算旋转因子并输出给所述混合基FFT计算单元; 所述混合基FFT计算单元用于结合所述旋转因子对输入的计算点进行基4 FFT碟形计算或者基2 FFT碟形计算;
所述数据输出控制单元用于把经过所述混合基FFT计算单元处理的结果按其在RAM中的原地址输出。所述混合基FFT计算单元包括
数据缓存,用于缓存所述数据输入控制单元输送的数据或中间结果; 彼此连接的4个乘法器和8个加法器,用于结合旋转因子对所述数据缓存中的数据进行一级基4 FFT碟形计算或者基2 FFT碟形计算,并输出计算结果给输出控制单元。所述计算点处理控制单元包括
数据二维变换逻辑单元,用于对大于阈值的计算点进行二维的分组以产生对应的二维数组信息,包含地址,行号和列号;
混合基FFT计算控制逻辑单元,用于对于小于阈值的计算点和二维分组后的数据,若能进行纯基4 FFT碟形计算,则进行基4 FFT碟形计算的控制,否则进行基4或基2 FFT碟形计算的控制。所述数据输入控制单元包括
输入地址产生逻辑,用于根据需要计算的数据信息,生成操作数的反序地址。所述数据输出控制单元包括
输出地址产生逻辑,用于根据计算点的数据信息,生成输出数据的原始保存地址。所述I的值根据所述数据缓存的容量来确定,该数据缓存优选为64点。所述阈值可以预先设定或者由用户设定。相应地,本发明通用DSP处理器中FFT计算实现方法包括
将点数大于等于阈值的FFT计算点转换为二维数据IX J,其中I为4的幂且IX J等于该FFT计算点的点数;
对于二维FFT计算点,先对一维I点进行基4 FFT碟形计算,然后对于二维J点或点数小于阈值的FFT计算点,若其能进行纯基4 FFT碟形计算则对其进行基4 FFT碟形计算,否则对其先进行基4 FFT碟形计算再进行基2 FFT碟形计算。对于点数小于阈值的FFT计算点,若能进行纯基4 FFT蝶形计算,则对其进行基4 FFT蝶形计算,否则先进行基4 FFT蝶形计算再进行基2 FFT蝶形计算。所述I的值根据所述数据缓存的容量来确定。所述阈值可以预先设定或者由用户设定。与现有技术相比,本发明通用DSP处理器中FFT计算实现装置和方法的有益效果为
首先,由于本发明能够在通用DSP处理器中对FFT计算进行混合基处理,也就是说,既能进行基4 FFT计算也能够进行基2 FFT计算,且优先采用基4 FFT计算,因此提高了通用 DSP处理器中FFT计算的效率。其次,本发明实现了数据的二维计算,对于计算量大的数据,进行二维计算,有效的降低了计算的时间,编程比较简单,提高了计算速度。


参照附图根据仅作为例子给出的如下描述,将更清楚地理解本发明,在附图中 图1是本发明DSP处理器中FFT计算实现装置的示意图2是16点基4的FFT碟形计算示意图; 图3是8点基2的FFT碟形计算示意图4是依据本发明DSP处理器中FFT计算实现装置的计算点处理控制单元的示例示意
图5是依据本发明DSP处理器中FFT计算实现装置的混合基FFT计算单元的示例示意
图6是依据本发明DSP处理器中FFT计算实现装置的数据输入控制单元的示例示意
图7是依据本发明DSP处理器中FFT计算实现装置的数据输出控制单元的示例示意图。
具体实施例方式在介绍本发明通过DSP处理器中FFT计算实现装置和方法的具体实施例之前,先介绍一下基2 FFT碟形计算和基4 FFT碟形计算。对于变换长度为N的序列x(n)其傅立叶变换(DFT)可以表示如下长度为N的有限长序列Χ (η)的DFT为
权利要求
1.一种通用DSP处理器中FFT计算实现装置,用于对存储在RAM中的计算点进行FFT 计算变换,其特征在于,包括FFT计算点处理控制单元、数据输入控制单元、混合基FFT计算单元、数据输出控制单元和旋转因子计算单元,其中所述FFT计算点处理控制单元将点数大于等于阈值的计算点转换为二维数据IXJ, 其中I为4的幂且IXJ等于该FFT计算点的点数,对于小于阈值的计算点和二维数据转换后的数据,若不能进行纯基4计算则进行基4或基2的混合级计算的控制;所述数据输入控制单元用于根据所述FFT计算点处理控制单元处理的结果产生FFT计算点在RAM中的反序地址,使用DMA读取数据,输送给所述混合基FFT计算单元; 所述旋转因子计算单元用于计算旋转因子并输出给所述混合基FFT计算单元; 所述混合基FFT计算单元用于结合所述旋转因子对输入的计算点进行基4 FFT碟形计算或者基2 FFT碟形计算;所述数据输出控制单元用于把经过所述混合基FFT计算单元处理的结果按其在RAM中的原地址输出。
2.如权利要求1所述的通用DSP处理器中FFT计算实现装置,其特征在于,所述计算点处理控制单元包括数据二维变换逻辑单元,用于对大于阈值的计算点进行二维的分组以产生对应的二维数组信息,包含地址,行号和列号;混合基FFT计算控制逻辑单元,用于对于小于阈值的计算点和二维分组后的数据,若能进行纯基4 FFT碟形计算,则进行基4 FFT碟形计算的控制,否则进行基4或基2 FFT碟形计算的控制。
3.如权利要求2所述的通用DSP处理器中FFT计算实现装置,其特征在于,所述混合基FFT计算单元包括数据缓存,用于缓存所述数据输入控制单元输送的数据或中间结果; 彼此连接的4个乘法器和8个加法器,用于结合旋转因子对所述数据缓存中的数据进行一级基4 FFT碟形计算或者基2 FFT碟形计算,并输出计算结果给输出控制单元。
4.如权利要求3所述的通用DSP处理器中FFT计算实现装置,其特征在于,所述数据输入控制单元包括输入地址产生逻辑,用于根据需要计算的数据信息,生成操作数的反序地址。
5.如权利要求4所述的通用DSP处理器中FFT计算实现装置,其特征在于,所述数据输出控制单元包括输出地址产生逻辑,用于根据计算点的数据信息,生成输出数据的原始保存地址。
6.如权利要求3所述的通用DSP处理器中FFT计算实现装置,其特征在于,所述I的值根据所述数据缓存的容量来确定。
7.如权利要求1至6所述的通用DSP处理器中FFT计算实现装置,其特征在于,所述阈值可以预先设定或者由用户设定。
8.一种通用DSP处理器中FFT计算实现方法,其特征在于,所述方法包括将点数大于等于阈值的FFT计算点转换为二维数据IX J,其中I为4的幂且IX J等于该FFT计算点的点数;对于二维FFT计算点,先对一维I点进行基4 FFT碟形计算,然后对于二维J点,若其能进行纯基4 FFT碟形计算则对其进行基4 FFT碟形计算,否则对其先进行基4 FFT碟形计算再进行基2 FFT碟形计算;对于点数小于阈值的FFT计算点,若能进行纯基4 FFT蝶形计算,则对其进行基4 FFT 蝶形计算,否则先进行基4 FFT蝶形计算再进行基2 FFT蝶形计算。
9.如权利要求8所述的通用DSP处理器中FFT计算实现方法,其特征在于,所述I的值根据所述数据缓存的容量来确定。
10.如权利要求9所述的通用DSP处理器中FFT计算实现方法,其特征在于,所述阈值可以预先设定或者由用户设定。
全文摘要
本发明公开了一种通用DSP处理器中FFT计算实现装置和方法。本发明通用DSP处理器中FFT计算实现装置的技术方案包括FFT计算点处理控制单元、数据输入控制单元、混合基FFT计算单元、数据输出控制单元和旋转因子计算单元,其中所述混合基FFT计算单元既能进行基4FFT碟形计算也能够进行基2FFT碟形计算。本发明通用DSP处理器中FFT计算实现方法包括将点数大于等于阈值的FFT计算点转换为二维数据I×J;对于二维FFT计算点,先对一维I点进行基4FFT碟形计算,然后对于二维J点或者点数小于阈值的FFT计算点,若其能进行纯基4FFT碟形计算则对其进行基4FFT碟形计算,否则对其先进行基4FFT碟形计算再进行基2FFT碟形计算。采用本发明的技术方案计算效率高,速度快。
文档编号G06F17/14GK102567282SQ201010607219
公开日2012年7月11日 申请日期2010年12月27日 优先权日2010年12月27日
发明者樊广超 申请人:北京国睿中数科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1