【技术实现步骤摘要】
本专利技术涉及频率变换,尤其涉及快速傅里叶变换的的方法和电路。
技术介绍
大点数的DFT计算一般都采用FFT算法的蝶形架构。通常地,“蝶形”出现在Cooley-Tukey FFT算法中,其递归地将大小为n=rm的DFT分解为r个大小为m的较小的DFT变换,其中,r是变换的“基”(radix)。这些较小的DFT然后通过大小为r的蝶形架构组合在一起,在与单位根(也称为旋转因子)相乘之前,该蝶形架构本身是大小为r的DFT(在对应的子变换的输出上进行m次计算)。传统的排列方式中,数据本身的先后顺序并没有任何规律,必须经过一系列的重新排列,组合为正确的数据顺序后才能进行蝶形计算,且对于每次蝶形计算数据都要根据当前计算的次数调整排列顺序。在数字电路实现上,该调整排列顺序的操作是通过一系列的选择控制逻辑来完成的。这种结构消耗了大量的资源且处于数据关键路径上,对于电路的面积和速度都有负面影响,对线道资源紧张的结构的影响更大(如在FPGA上的设计)。
技术实现思路
一种快速傅里叶变换/快速傅里叶逆变换(FFT/IFFT)的方法,包括:将FFT/IFFT数据的一组反序或正序地址转换为一组以基数进制表示的地址;通过累加或者累减所述一组以基数进制表示的地址的各个数位,并对累加或者累减的结果取模,计算进行并行计算时用于缓存一组数据的多个存储器位置的序号,其中所述基数表示所述FFT/IFFT计算的所述并行计算的短DFT序列的长度;将所述FFT/IFFT数据分别同时存储在由计算的序号所指示的各自对应的存储器位置;进行所述FFT/IFFT计算,包
括:进行短DFT序列计算包 ...
【技术保护点】
一种快速傅里叶变换/快速傅里叶逆变换(FFT/IFFT)的方法,包括:将FFT/IFFT数据的一组反序或正序地址转换为一组以基数进制表示的地址;通过累加或者累减所述一组以基数进制表示的地址的各个数位,并对累加或者累减的结果取模,计算进行并行计算时用于缓存一组数据的多个存储器位置的序号,其中所述基数表示所述FFT/IFFT计算的所述并行计算的短DFT序列的长度;将所述FFT/IFFT数据分别同时存储在由计算的序号所指示的各自对应的存储器位置;进行所述FFT/IFFT计算,包括:进行短DFT序列计算包括:从所述存储器中取出相应数据,直接将所述相应数据送入短DFT序列计算器进行计算,经过修正旋转因子修正计算的数据,直接原址将修正后的数据送回存储器;重复所述短DFT序列计算,直至整个FFT/IFFT计算结束。
【技术特征摘要】
1.一种快速傅里叶变换/快速傅里叶逆变换(FFT/IFFT)的方法,包括:将FFT/IFFT数据的一组反序或正序地址转换为一组以基数进制表示的地址;通过累加或者累减所述一组以基数进制表示的地址的各个数位,并对累加或者累减的结果取模,计算进行并行计算时用于缓存一组数据的多个存储器位置的序号,其中所述基数表示所述FFT/IFFT计算的所述并行计算的短DFT序列的长度;将所述FFT/IFFT数据分别同时存储在由计算的序号所指示的各自对应的存储器位置;进行所述FFT/IFFT计算,包括:进行短DFT序列计算包括:从所述存储器中取出相应数据,直接将所述相应数据送入短DFT序列计算器进行计算,经过修正旋转因子修正计算的数据,直接原址将修正后的数据送回存储器;重复所述短DFT序列计算,直至整个FFT/IFFT计算结束。2.如权利要求1所述的方法,其中所述计算的存储器位置的序号是在一次短序列DFT计算中使用的数据序号的循环移位。3.如权利要求1所述的方法,其中每个经修正后的短DFT序列计算数据不需要重新排列,直接进入与用于FFT/IFFT计算的计算单元对应的输入端口。4.如权利要求2所述的方法,其中所述数据的地址的所述以基数进制表示的每个数位包括多个比特,在计算所述多个存储器位置的序号之前,所述方法还包括:通过对每个数位的所述多个比特中的两个比特进行异或操作,转换所述每个数位,其中计算的多个存储器位置的序号是所述在一次短序列DFT计算中使用的数据序号的部分的循环移位。5.如权利要求1所述的方法,其中,进行所述短DFT序列计算还包括:以第一修正因子调整待进行短DFT序列计算的数据,其中所述第一旋转因子表示为exp[(j×(B×n)r×2pi/r),n=0,1,2...r-1;以旋转因子exp[(-j×(Bi×(Bi-1 Bi-2.... B1 B0)×r^(s-i))×2pi/N)]处理修正后的序列;将所述经处理的序列送入所述短DFT序列计算器进行计算;以第二修正因子调整经过DFT计算后的数据,其中所述第二修正因子表示为exp[(j×(B×k)r×2pi/r)+(-j×(B×B)r×2pi/r)],其中,B=(∑Bs)r,(s≠i-1)i表示FFT/IFFT计算的级,所述数据具有地址为Bs-1Bs-2Bi....B1B0,Bi=0,1,2...r-1,r表示FFT计算的基数,Bs-1、Bs-2、B1、B0中的每一个是以基数为基的数位,N表示FFT/IFFT计算的点数。6.如权利要求1所述的方法,进行短DFT序列计算还包括:以所述修正旋转因子调整短DFT序列计算后的数据,其中所述修正旋转因子表示为exp[(-j×(Bi+1×(Bi Bi-1....B1B0)×r^(s-i))×2pi/N)+(j×(B×k)r×2pi/r)+(j×(C×n)r×2pi/r)+(-j×(B×B)r×2pi/r)],其中,B=(∑Bs)r,(s≠i-1),C=(∑Bs)r,(s≠i),i表示FFT/IFFT计算的级,所述数据具有地址为Bs-1Bs-2Bi....B1B0,Bi=0,1,2...r-1,r表示FFT计算的基数,Bs-1、Bs-2、B1、B0中的每一个是以基数为基的数位,N表示FFT/IFFT计算的点数。7.如权利要求1所述的方法,其中旋转因子的值与索引之间的列表预存在存储器中,所述方法还包括,通过对所述旋转因子的高R比特加入修正值,获取更新的索引,所述更新的索引对应所述修正旋转因子,所述方法还包括,利用所述修正旋转因子调整经过DFT计算后的数据,其中,R
\t表示log2(r),r表示FFT计算的基数。8.如权利要求1所述的方法,其中所述所述一组数据包括在FFT/IFFT计算的第一级被计算的数据,以及所述方法还包括:以公式exp(j×(C×n)r×2pi/r),n=B0,C=(∑Bs),(s≠0),对所述数据在输入时进行加权,其中,所述数据具有地址为Bs-1Bs-2....B1B0,Bi=0,1,2...r-1,r表示FFT计算的基数,Bs-1、Bs-2、B1、B0中的每一个是以基数为基的数位,N表示FFT/IFFT计算的点数。9.如权利要求1所述的方法,还包括对于每次运算,通过短DFT序列运算单元的端口,按照编号从对应编号的存储器中取出数据,不需要重新排列顺序后再送到所述短DFT序列运算单元端口;按照输出端口的序号将运算单元运算的结果送入对应编号的存储器中。10.如权利要求1所述的方法,其中所述FFT/IFFT计算的长度为2的整数次幂。11.如权利要求4所述的方法,还包括通过选择器,对来自所述相应的存储器位置的所述一组数据重新排序,其中所述选择器的可选通的通路小于FFT/IFFT计算的基数;其中进行所述FFT/IFFT计算包括在重新排序的所述一组数据上进行短DFT序列计算。12.如权利要求1所述的方法,其中所述FFT/IFFT计算包括进行FFT/IFFT蝶形计算。13.一种快速傅里叶变换/快速傅里叶逆变换(FFT/IFFT)的电路,包
\t括:地址计算单元,被配置为将FFT/IFFT数据的一组反序或正序地址转换为一组以基数进制表示的地址;所述地址计算单元还被配置为通过累加或者累减所述一组以基数进制表示的地址的各个数位,并对累加或者累减的结果取模,计算进行并行计算时用于缓存一组数据...
【专利技术属性】
技术研发人员:宋鹤鸣,王立华,
申请(专利权)人:澜起科技上海有限公司,
类型:发明
国别省市:上海;31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。