一種基于融合乘加指令加速fft計(jì)算的方法
【專利摘要】一種基于融合乘加指令加速FFT計(jì)算的方法,設(shè)計(jì)算的FFT點(diǎn)數(shù)為N=2n,其中n為大于1的整數(shù),其特征在于,步驟為:步驟1:判斷n是否為偶數(shù);步驟2:若n是偶數(shù),可表達(dá)為n=2m,其中m為大于0的整數(shù),則N=2n=22m=4m,這時(shí),F(xiàn)FT的計(jì)算轉(zhuǎn)化為m級基于融合乘加指令的時(shí)域抽取基4FFT的計(jì)算;若n不是偶數(shù),n為奇數(shù),可表達(dá)為n=2m+1,其中m為大于0的整數(shù),則N=2n=22m+1=4m*2,這時(shí),F(xiàn)FT的計(jì)算轉(zhuǎn)化為先進(jìn)行m級基于融合乘加指令的時(shí)域抽取基4FFT計(jì)算,最后進(jìn)行一級基于融合乘加指令的時(shí)域抽取基2FFT計(jì)算;步驟3:FFT的計(jì)算完成。本發(fā)明具有原理簡單、操作方便、能充分利用處理器的融合乘加指令、提高運(yùn)算速度及計(jì)算效率等優(yōu)點(diǎn)。
【專利說明】一種基于融合乘加指令加速FFT計(jì)算的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明主要涉及到數(shù)字信號處理領(lǐng)域,特指一種基于融合乘加指令加速FFT計(jì)算的方法。
【背景技術(shù)】
[0002]現(xiàn)有的許多處理器體系結(jié)構(gòu)提供融合乘加指令,如Intel的Itanium、IBM的Power處理器等。給定3個(gè)輸入操作數(shù)a,b,c,融合乘加指令可以實(shí)現(xiàn)下列其中的任何一個(gè)操作:
[0003]
【權(quán)利要求】
1.一種基于融合乘加指令加速FFT計(jì)算的方法,設(shè)計(jì)算的FFT點(diǎn)數(shù)為N=2n,其中η為大于I的整數(shù),其特征在于,步驟為: 步驟1:判斷η是否為偶數(shù); 步驟2:若η是偶數(shù),可表達(dá)為n=2m,其中m為大于O的整數(shù),則N=2n=22m=4m,這時(shí),F(xiàn)FT的計(jì)算轉(zhuǎn)化為m級基于融合乘加指令的時(shí)域抽取基4FFT的計(jì)算;若η不是偶數(shù),η為奇數(shù),可表達(dá)為n=2m+l,其中m為大于O的整數(shù),則N=2n=22m+1=4m*2,這時(shí),F(xiàn)FT的計(jì)算轉(zhuǎn)化為先進(jìn)行m級基于融合乘加指令的時(shí)域抽取基4FFT計(jì)算,最后進(jìn)行一級基于融合乘加指令的時(shí)域抽取基2FFT計(jì)算; 其中,計(jì)算m級基于融合乘加指令的時(shí)域抽取基4FFT,時(shí)域抽取基4FFT的每個(gè)蝶形單元計(jì)算由24條融合乘加指令完成;計(jì)算一級基于融合乘加指令的時(shí)域抽取基2FFT,時(shí)域抽取基2FFT的每個(gè)蝶形單元計(jì)算由6條融合乘加指令完成; 步驟3 =FFT的計(jì)算完成。
2.根據(jù)權(quán)利要求1所述的基于融合乘加指令加速FFT計(jì)算的方法,其特征在于,進(jìn)行一個(gè)時(shí)域抽取基4FFT的蝶形單元的計(jì)算方法包括以下步驟: 步驟2.1.1:預(yù)先計(jì)算出時(shí)域抽取基4FFT算法所需的旋轉(zhuǎn)因子W1, W2,并且分別把兩個(gè)旋轉(zhuǎn)因子W1, W2按實(shí)部I為Wy虛部I/實(shí)部I為WliZiWy實(shí)部2為W&、虛部2/實(shí)部2為W2i/W2r的方式存放;
步驟2.1.2:給定4個(gè)輸入數(shù)據(jù)A,B, C,D ;其中,A的實(shí)部和虛部分別表示為Ui ;B的實(shí)部和虛部分別表示為B" Bi ;C的實(shí)部和虛部分別表示為C;,Ci ;D的實(shí)部和虛部分別表示為D,,Di ;計(jì)算蝶形單元的4個(gè)輸出結(jié)果Y1, Y2, Y3, Y4 ;其中,Y1的實(shí)部和虛部分別表示為Ylr, Yli ;Y2的實(shí)部和虛部分別表示為Y&,Y2i ;Υ3的實(shí)部和虛部分別表示為Y3" Y31-J4的實(shí)部和虛部分別表示為Yto Y4i ; 步驟2.1.3:依據(jù)下式(I),通過12條融合乘加指令完成對4個(gè)中間結(jié)果Α, B, C、D的實(shí)部和虛部的計(jì)算;其中,分別為第一個(gè)中間結(jié)果:1的實(shí)部和虛部;YrJi分別為第二個(gè)中間結(jié)果萬的實(shí)部和虛部;乙G分別為第三個(gè)中間結(jié)果C的實(shí)部和虛部;萬;,瓦分別為第四個(gè)中間結(jié)果萬的實(shí)部和虛部;
=Ar+IV2r x(Cr-W2iI1IV2r XCi)
Ai = Ai + W2r x(C,.X IV2i/IV2r + C1) Br=Ar-W2X(Cr-W2ilIW2XCi)
W2rx(C ,.XW2i/W2r+Ci)⑴
Cr = Br + IV2r X (Dr - Wli jwir χ D1)
C: = Bi+IV2r x{Dr XlV2i/IV2r + Di)
D_r =Br-WliX(Dr-WJW2iXDl)
D; = B: -- W2r x (Dr x W2i jWlr + Di) 步驟2.1.2:依據(jù)下式(2),通過12條融合乘加指令完成4個(gè)輸出結(jié)果Y1, Y2, Y3, Y4的實(shí)部和虛部的計(jì)算;其中,Y1的實(shí)部和虛部分別表示為Y1" Yli ;Y2的實(shí)部和虛部分別表示為Y2r, Y2i ; 3的實(shí)部和虛部分別表示為Y3" Y31-J4的實(shí)部和虛部分別表示為Yto Y4i ;
3.根據(jù)權(quán)利要求1或2所述的基于融合乘加指令加速FFT計(jì)算的方法,其特征在于,進(jìn)行一個(gè)時(shí)域抽取基2FFT的蝶形單元的計(jì)算方法包括以下步驟: 步驟2.2.1:預(yù)先計(jì)算出時(shí)域抽取基2FFT算法所需的旋轉(zhuǎn)因子W,并且按實(shí)部為1、虛部/實(shí)部為Wi/ 的方式存放; 步驟2.2.2:給定2個(gè)輸入數(shù)據(jù)A,B ;其中,A的實(shí)部和虛部分別表示為k” Ai ;B的實(shí)部和虛部分別表示為B" Bi ;計(jì)算蝶形單元的2個(gè)輸出結(jié)果Y1, Y2 ;其中,Y1的實(shí)部和虛部分別表示為Yb Yl1-J2的實(shí)部和虛部分別表示為Y&,Y2i ; 步驟2.2.3:依據(jù)下式(3),通過2條融合乘加指令完成2個(gè)中間結(jié)果2、萬的實(shí)部和虛部的計(jì)算;其中,I,?分別為第一個(gè)中間結(jié)果:1的實(shí)部和虛部 分別為第二個(gè)中間結(jié)果互的實(shí)部和虛部;
【文檔編號】G06F17/14GK103440228SQ201310364339
【公開日】2013年12月11日 申請日期:2013年8月20日 優(yōu)先權(quán)日:2013年8月20日
【發(fā)明者】劉仲, 竇強(qiáng), 郭陽, 鄧讓鈺, 向宏衛(wèi), 龔國輝, 唐遇星, 王永文, 陳海燕, 彭元喜, 陳躍躍, 吳家鑄 申請人:中國人民解放軍國防科學(xué)技術(shù)大學(xué)