基于3072点快速傅里叶变换的数据处理方法及处理器的制造方法

文档序号:9326852阅读:687来源:国知局
基于3072点快速傅里叶变换的数据处理方法及处理器的制造方法
【技术领域】
[0001] 本发明涉及电力线载波通信领域,尤其涉及一种基于3072点快速傅里叶变换的 数据处理方法及处理器。
【背景技术】
[0002] 电力线载波(PLC,Power Line Communication)通信是利用高压电力线(在电力 线载波领域通常指35kV及以上电压等级)、中压电力线(指IOkV电压等级)或低压配电电 线(380/220V用户线)作为信息传输媒介进行语音或数据传输的一种特殊通信方式。其最 大特点是不需要重新架设网络,只要有电线,就可以进行数据传递。
[0003] 家庭插电联盟(Hom印lug)是电力线载波技术标准化组织主推的一种适用于电 力线通信的协议,其物理(PHY)层定义的调制解调器(Modem)中使用了 3072点快速傅里 叶变换(FFT,Fast Fourier Transformation)来实现正交频分复用(OFDM,Orthogonal Frequency Division Multiplexing)的调制功能,是其核心技术之一。
[0004] 目前业内实现FFT的主要方法有基-2、基-4算法,其从软件仿真到硬件实现已经 有很多种成熟的方法。在工程上都有很多种对应的处理器和可编程门阵列(FPGA,Field Programmable Gate Array) IP核。但此算法只能处理2的幂次或者4的幂次点数的傅立 叶变换,对于非2的幂次或者4的幂次点数的数据,可以采用内插的方式,将原数据内插成 2的幂次或者4的幂次点数的数据之后在进行基-2或者基-4快速傅立叶变换处理。但是 这样会带来两个主要问题:一、由于采用了内插,必然会带来误差;二、由于采样速率发生 变化,在OFDM系统中还将增加同步的复杂度。对于上述中不满足2的幂次或者4的幂次点 数的数据的快速傅立叶变换,如果数据点数是复合数,目前业内普遍采用混合基FFT算法, 主要采用蝶形算法(Cooley-Tukey)、维诺格拉德-傅里叶变换算法(WFTA)等算法,但是往 往这类算法硬件实现较为复杂,需要开辟更多的存储空间来存储中间运算结果以及进行数 据位置转换,增加了随机存取存储器(RAM,Random Access Memory)的资源以及并且是芯片 中走线拥塞问题更加严重。在提高快速傅里叶处理性能方面,目前采用的手段主要是提高 运算的并行性,以及采用局部异步结构即提高局部处理主频。其中提高运算并行性是比较 常用的方法,而局部异步对于电路设计以及低功耗都会带来不小的挑战,所以对成本以及 功耗很敏感的芯片一般不采用这类方法。而增加算法的并行度又会增加对运算中间结果存 储的复杂度,为了避免由于运算过程中由于存取数据造成冲突而造成运算中间出现气泡导 致性能损失,提出了一种采用乒乓存储的方式来实现数据的运算和中间结果的存取,虽然 该方法降低了中间结果存取的复杂度,但是也带来了 RAM使用较多的后果,在大点数的快 速傅里叶变换运算时会显著增加芯片的面积和功耗。

【发明内容】

[0005] 为解决上述技术问题,本发明实施例提供了一种基于3072点快速傅里叶变换的 数据处理方法,所述方法包括:
[0006] 将3072点数据按照预定的映射关系,存储至数据存储模块中;
[0007] 从所述存储模块中并行读取16个数据,进行3点离散傅里叶变换(DFT,Discrete Fourier Transform)运算,运算完成后将结果按原位存储至数据存储模块中;
[0008] 从所述数据存储模块中并行读取32个数据,进行1024点DFT运算,直至完成3072 点数据的快速傅里叶变换。
[0009] 本发明实施例中,所述将3072点数据按照预定的映射关系,存储至数据存储模块 中,包括:
[0010] 按照Good-Thomas算法对3072点数据进行排序,依据排序结果将3072点数据依 次存储至数据存储模块中;所述数据存储模块由32个96X36(深度行数X位宽bit)RAM 组成。
[0011] 本发明实施例中,所述从所述存储模块中并行读取16个数据,进行3点DFT运算, 包括:
[0012] 从所述存储模块中并行读取16个数据,采用Goertzel算法进行3点DFT运算。
[0013] 本发明实施例中,所述从所述数据存储模块中并行读取32个数据,进行1024点 DFT运算,包括:
[0014] 从所述数据存储模块中并行读取32个数据,进行10级FFT运算。
[0015] 本发明实施例中,所对从所述数据存储模块中并行读取32个数据,进行1024点 DFT运算,直至完成3072点数据的快速傅里叶变换,包括:
[0016] 从所述数据存储模块中并行读取32个数据,采用Cooley-Tukey算法进行1024点 DFT运算,直至完成3072点数据的快速傅里叶变换。
[0017] 本发明实施例提供的基于3072点快速傅里叶变换的处理器包括:
[0018] 映射单元,用于将3072点数据按照预定的映射关系,存储至数据存储模块中;
[0019] 3点DFT运算单元,用于从所述存储模块中并行读取16个数据,进行3点DFT运 算,运算完成后将结果按原位存储至数据存储模块中;
[0020] 1024点DFT运算单元,用于从所述数据存储模块中并行读取32个数据,进行1024 点DFT运算,直至完成3072点数据的快速傅里叶变换。
[0021] 本发明实施例中,所述映射单元,还用于按照Good-Thomas算法对3072点数据进 行排序,依据排序结果将3072点数据依次存储至数据存储模块中;所述数据存储模块由32 个96 X 36 (深度行数X位宽bit)的RAM组成。
[0022] 本发明实施例中,所述3点DFT运算单元,还用于从所述存储模块中并行读取16 个数据,采用Goertzel算法进行3点DFT运算。
[0023] 本发明实施例中,所述1024点DFT运算单元,还用于从所述数据存储模块中并行 读取32个数据,进行10级FFT运算。
[0024] 本发明实施例中,所述1024点DFT运算单元,还用于从所述数据存储模块中并行 读取32个数据,采用Cooley-Tukey算法进行1024点DFT运算,直至完成3072点数据的快 速傅里叶变换。
[0025] 本发明实施例的技术方案中,3072点数据首先依次输入到数据存取控制模块,数 据存取控制模块根据Good-Thomas算法将3072点数据按一定位序关系分散存储到数据存 储模块中,待3072点数据全部存储完成之后再由数据存取控制模块发出读使能从数据存 储模块取出数据送入到3点DFT运算单元,运算结果再由数据存取控制模块写回到数据存 储模块,完成全部的3点DFT运算之后,数据又全部重新写回到数据存储模块,这时数据存 取控制模块再次发出读使能从数据存储模块读取数据送入到1024点DFT运算单元中进行 运算,运算结果再由数据存取控制模块写回到数据存储模块,待1024点DFT运算完成之后 再由数据存取控制模块按照一定的顺序将存储在数据存储模块读取输出完成一次完整的 3072点快速傅里叶变换运算。本发明实施例的技术方案克服了现有技术中存在的快速傅里 叶变换过程中为了对输入输出以及运算中间结果进行缓存以及重新排序而需要较多的存 储容量的问题和缺陷,通过选用多重算法,并结合各种算法的不同特性,从整体上进行统筹 考虑,即减少了运算量,又对于目前混合算法中常常出现需要大量缓存来存储运算中间结 果的情况进行优化,做到了资源、性能的平衡。并且,硬件实现简单,数据缓存消耗小、乘法 器单元少,运算并行度高,运算精度灵活。
【附图说明】
[0026] 图1为本发明实施例的基于3072点快速傅里叶变换的数据处理方法的流程示意 图;
[0027] 图2为本发明实施例的基于3072点快速傅里叶变换的处理器结构示意图一;
[0028] 图3为本发明实施例的Good-Thomas算法示意图;
[0029] 图4为本发明实施例的输入数据与RAM地址关系示意图;
[0030] 图5为本发明实施例的Goertzel算法运算单元的示意图;
[0031] 图6为本发明实施例的3点DFT运算单元的示意图;
[0032] 图7为本发明实施例的蝶形运算示意图;
[0033] 图8为本发明实施例的基-21024点FFT算法流图;
[0034] 图9为本发明实施例的1024点DFT运算数据与地址关示意图;
[0
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1