專利名稱:快速傅立葉轉(zhuǎn)換方法
技術(shù)領(lǐng)域:
本發(fā)明提供一種快速傅立葉轉(zhuǎn)換方法,特別指一種用以計算段L(Llength)數(shù)據(jù)的快速傅立葉轉(zhuǎn)換方法。
背景技術(shù):
蝴蝶結(jié)構(gòu)(butterfly structure)是一種普遍用來實現(xiàn)快速傅立葉轉(zhuǎn)換的演算法。這種方法是將輸入的數(shù)據(jù)點利用多層交叉運算的方式,得到最后快速傅立葉轉(zhuǎn)換的結(jié)果。請參考圖1。圖1為常規(guī)快速傅立葉轉(zhuǎn)換的蝴蝶結(jié)構(gòu)。在此例子中,共有八個固定的輸入數(shù)據(jù)x(0),x(1),x(2)至x(7)用來進行快速傅立葉轉(zhuǎn)換,并得到最后的輸出結(jié)果X(0),X(1),X(2)至X(7)。首先,八點輸入數(shù)據(jù)必須先經(jīng)過編號的位反轉(zhuǎn)(bit reversal)運算來決定此八點輸入數(shù)據(jù)的順序。所謂地編號的位反轉(zhuǎn)運算是指反轉(zhuǎn)原本編號位中各個位從最不重要位(Least Significant Bit)至最重要位(Most Significant Bit)的順序。舉例來說,標號為4的位表示為”100”,其位反轉(zhuǎn)后的結(jié)果為”001”,也就是標號變?yōu)?,標號為6的位表示為”110”,其位反轉(zhuǎn)后的結(jié)果為”011”,也就是標號變?yōu)?,而標號為0的位表示經(jīng)反轉(zhuǎn)后標號一樣為0,依此類推。原本編號為x(0),x(1),x(2)至x(7)的八個數(shù)據(jù)點經(jīng)編號的位反轉(zhuǎn)再排序之后,變成了如圖1所示的x(0),x(4),x(2),x(6),x(1),x(5),x(3),x(7),做為快速傅立葉轉(zhuǎn)換蝴蝶結(jié)構(gòu)的輸入。
接著,依照輸入數(shù)據(jù)的順序兩兩進行交叉運算,如圖所示x(0)與x(4)交叉運算,x(2)與x(6)交叉運算,x(1)與x(5)交叉運算,x(3)與x(7)交叉運算,在交叉運算的過程中,x(4),x(6),x(5),x(7)會乘上一個稱做twiddlefactor(旋轉(zhuǎn)因子)的加權(quán)參數(shù)W[z],運算結(jié)果得到x’(0),x’(1),x’(2)至x’(7)。從x得到x’是第一層的蝴蝶結(jié)構(gòu)運算。然后,x’(0)與x’(2)交叉運算,x’(1)與x’(3)交叉運算,x’(4)與x’(6)交叉運算,x’(5)與x’(7)交叉運算,并且,在交叉運算的過程中,x’(2),x’(3),x’(6),x’(7)會乘上加權(quán)參數(shù)W[z],得到x”(0),x”(1),x”(2)至x”(7)。從x’得到x”是第二層的蝴蝶結(jié)構(gòu)運算。最后,x”(0)與x”(4),x”(1)與x”(5),x”(2)與x”(6),x”(3)與x”(7)進行交叉運算,運算過程中x”(4),x’(5),x”(6),x”(7)乘上加權(quán)參數(shù)W[z],運算過后得到最后快速傅立葉轉(zhuǎn)換結(jié)果X(0),X(1),X(2)至X(7)。從x”得到X是第三層的蝴蝶結(jié)構(gòu)運算。
以上八點輸入數(shù)據(jù)共需要三層的蝴蝶結(jié)構(gòu)運算,事實上,愈多點的輸入數(shù)據(jù)需愈多層的蝴蝶結(jié)構(gòu)運算,這與輸入數(shù)據(jù)點數(shù)的乘冪有關(guān)。假設有M點輸入數(shù)據(jù),而M的乘冪為N,所以這M點輸入數(shù)據(jù)需要N層運算。與例來說,八的乘冪為3,所以需三層運算,16點的乘冪為4,所以需4層運算。
在常規(guī)的方法中,處理輸入數(shù)據(jù)的快速傅立葉轉(zhuǎn)換時,只能針對固定長度的數(shù)據(jù)點進行運算,而且,這輸入數(shù)據(jù)的長度一定要事先設定成2的次方,才能順利進行接下來的運算。此種固定數(shù)據(jù)點的輸入方式造成使用上的不便,也讓快速傅立葉轉(zhuǎn)換運算較無彈性。另外,對于乘冪為N的M點輸入數(shù)據(jù),在快速傅立葉轉(zhuǎn)換運算的過程中需經(jīng)過N層的蝴蝶結(jié)構(gòu),才能得到運算結(jié)果,換句話說,以程序的執(zhí)行上需要N層循環(huán)才能完成運算。這樣程序執(zhí)行較為復雜冗長。
發(fā)明內(nèi)容
因此本發(fā)明的主要目的在于提供一種用以一處理單元載入并計算段L數(shù)據(jù)的快速傅立葉轉(zhuǎn)換方法,以解決上述常規(guī)的問題。
本發(fā)明公開一種快速傅立葉轉(zhuǎn)換方法用以一處理單元載入并計算段L數(shù)據(jù)的快速傅立葉轉(zhuǎn)換,該方法包含令該段L輸入數(shù)據(jù)對應一序列數(shù)據(jù),該序列數(shù)據(jù)長度為M;計算一乘冪N,使該N值對應該M值;針對該序列數(shù)據(jù)進行位反轉(zhuǎn),得到一反轉(zhuǎn)序列數(shù)據(jù);依據(jù)該N值以及該序列數(shù)據(jù)長度M計算多組加權(quán)參數(shù)W[z];以及依據(jù)多組循環(huán)參數(shù)及該多組加權(quán)參數(shù)W[z]對該反轉(zhuǎn)序列數(shù)據(jù)進行循環(huán)運算后輸出該段L數(shù)據(jù)的快速傅立葉轉(zhuǎn)換值。
本發(fā)明更公開一種快速傅立葉轉(zhuǎn)換轉(zhuǎn)換裝置,其用于執(zhí)行段L數(shù)據(jù)的快速傅立葉轉(zhuǎn)換,其包含一補零模塊,接收該段L輸入數(shù)據(jù),使其對應一序列數(shù)據(jù),該序列數(shù)據(jù)長度為M;一乘冪計算模塊,用來計算一乘冪N,使該N值對應該M值;一位反轉(zhuǎn)模塊,接收該序列數(shù)據(jù)且依據(jù)該N值將該序列數(shù)據(jù)進行反轉(zhuǎn),并產(chǎn)生一反轉(zhuǎn)序列數(shù)據(jù);一參數(shù)計算模塊,依據(jù)該N值以及該段L數(shù)據(jù)長度計算多組加權(quán)參數(shù)W[z];一循環(huán)控制模塊,依據(jù)該N值及至少一計數(shù)器提供多組循環(huán)參數(shù);以及一傅立葉轉(zhuǎn)換模塊,依據(jù)該多組循環(huán)參數(shù)及多組加權(quán)參數(shù)W[z]對該反轉(zhuǎn)序列數(shù)據(jù)進行循環(huán)運算后輸出該段L數(shù)據(jù)的快速傅立葉轉(zhuǎn)換值。
圖1為常規(guī)快速傅立葉轉(zhuǎn)換的蝴蝶結(jié)構(gòu)。
圖2為本發(fā)明用以計算段L數(shù)據(jù)的快速傅立葉轉(zhuǎn)換方法的流程圖。
圖3為本發(fā)明一種用于執(zhí)行段L數(shù)據(jù)的快速傅立葉轉(zhuǎn)換的快速傅立葉轉(zhuǎn)換轉(zhuǎn)換裝置。
主要元件符號說明
10 快速傅立葉轉(zhuǎn)換轉(zhuǎn)換裝置12 補零模塊
14 乘冪計算模塊 16 位反轉(zhuǎn)模塊
18 參數(shù)計算模塊 22 循環(huán)控制模塊
24 傅立葉轉(zhuǎn)換模塊
具體實施例方式
請參考圖2。圖2為本發(fā)明用以計算段L數(shù)據(jù)的快速傅立葉轉(zhuǎn)換方法的流程圖,本流程可以一程序代碼撰寫,并以一處理單元處理后出,可用于行動單元的頻譜分析或是頻譜分析儀上直接分析信號。步驟100,令該段L輸入數(shù)據(jù)對應一序列數(shù)據(jù),該序列數(shù)據(jù)長度為M。步驟110,計算一乘冪N,使該N值對應該M值。本發(fā)明的精神在于使用者可以輸入任意長度L的數(shù)據(jù),L值不一定要為2的次方,但是為了讓快速傅立葉轉(zhuǎn)換的運算順利進行,必須讓這段L輸入數(shù)據(jù)對應至一長度為M的序列數(shù)據(jù),M的值即為2的N次方(2N=M)。如果L值恰好為2的次方,則L值與M值相等,2的N次方等于L。如果L值不等于2的次方,則M值為2的次方中大于L的最小值。這段M(lengthM)序列數(shù)據(jù)是由該段L輸入數(shù)據(jù)補上(M-L)個零所組成。
步驟120中,針對該序列數(shù)據(jù)進行位反轉(zhuǎn),得到一反轉(zhuǎn)序列數(shù)據(jù)。位反轉(zhuǎn)指的是反轉(zhuǎn)該序列數(shù)據(jù)中的各個位從最不重要位至最重要位的順序。步驟130,依據(jù)該N值以及該序列數(shù)據(jù)長度M計算多組加權(quán)參數(shù)W[z](Twiddlefactor)。加權(quán)參數(shù)W[z]是在進行快速傅立葉轉(zhuǎn)換過程中必要的函數(shù),其與輸入數(shù)據(jù)長度和輸入數(shù)據(jù)長度的乘冪有關(guān)。此加權(quán)參數(shù)W[z]是本領(lǐng)域技術(shù)人員所熟知,在此不加以詳述。步驟140,依據(jù)多組循環(huán)參數(shù)及該多組加權(quán)參數(shù)W[z]對該反轉(zhuǎn)序列數(shù)據(jù)進行循環(huán)運算后輸出該段L數(shù)據(jù)的快速傅立葉轉(zhuǎn)換值。在循環(huán)運算過程中,共進行三層循環(huán)運算。該多組循環(huán)參數(shù)包括一用來控制最外層循環(huán)的主循環(huán)控制信號i,用來控制第二層循環(huán)的一次循環(huán)控制信號j,用來控制第三層循環(huán)的一內(nèi)循環(huán)控制信號k,以及一倍數(shù)控制信號FFA_radix。i值為0、1、、、(N-1);j值為0、1、、、(M/2)-1;該反轉(zhuǎn)序列數(shù)據(jù)為x
、x[1]、、、x[M-1];該倍數(shù)控制信號FFA-radix為一2的次方的變數(shù),于第一次執(zhí)行主循環(huán)時該FFA_radix的值為2,而第二次執(zhí)行主循環(huán)開始該FFA_radix每次以2的倍數(shù)增加,每一次的主循環(huán)對應一FFA_radix值;該k值為于其中一次主循環(huán)之下,以間隔1依序從0遞增至對應該次主循環(huán)的FFA_radix值。該循環(huán)運算中最內(nèi)層循環(huán)運算包含于其中一次主循環(huán)之下,如果k值小于對應該次主循環(huán)的FFA_radix值的二分之一,則計算x[FFA_radix*j+k]=x[FFA_radix*j+k]+x[FFA_radix*j+k+FFA_radix/2]*W[z]。如果k值不小于對應該次主循環(huán)的FFA_radix值的二分之一,則計算x[FFA_radix*j+k]=x[FFA_radix*j+k]*W[z]+x[FFA_radix*j+k-FFA_radix/2]。
為了更清楚說明本發(fā)明步驟140的循環(huán)運算,其程序如下
FFA_pts=M; FFA_radix=1; For(i=0;i<N;i++) { FFA-pts/=2; FFA-radix*=2; For(j=0;j<FFA_pts;j++) { for(k=0;k<FFA_radix;k++) { if(k<FFA_radix/2) x[FFA_radix*j+k]= x[FFA_radix*j+k]+x[FFA_radix*j+k+FFA_radix/2]*W[k*FFA_pts];<!-- SIPO <DP n="4"> --><dp n="d4"/> else x[FFA_radix*j+k]= x[FFA_radix*j+k] *W[k*FFA_pts]+x[FFA_radix*j+k-FFA_radix/2]; } } for(k=0;k<FFT_pts;k++)x[k]=X[k]; }
程序說明如下
如同的前所述,最外層的循環(huán)受到主循環(huán)控制信號i的控制,從0開始每次加1一直變化到N-1為止。一開始,參數(shù)FFA_pts設定成數(shù)據(jù)的長度M,而倍數(shù)控制信號FFA_radix設定為1。在每執(zhí)行一次主循環(huán)時,參數(shù)FFA_pts會變成一半,倍數(shù)控制信號FFA_radix會加倍,因此,在對應不同的主循環(huán)的i值之下,參數(shù)FFA_pts和倍數(shù)控制信號FFA_radix的值都不相同。第二層循環(huán)由一次循環(huán)控制信號j來控制,在某一主循環(huán)i所對應的參數(shù)FFA_pts之下,j的值以間隔為1由0變化到FFA_pts-1。第三層循環(huán)由內(nèi)循環(huán)控制信號k控制,在某一主循環(huán)i所對應的倍數(shù)控制信號FFA_radix之下,k的值以間隔為1由0變化到FFA_radix-1。在最內(nèi)層的循環(huán)中,如果k值小于對應該次主循環(huán)的FFA_radix值的二分之一,則x[FFA_radix*j+k]=x[FFA_radix*j+k]+x[FFA_radix*j+k+FFA_radix/2]*W[z]。如果k值不小于對應該次主循環(huán)的FFA_radix值的二分之一,則x[FFA_radix*j+k]=x[FFA_radix*j+k]*W[z]+x[FFA_radix*j+k-FFA_radix/2]。最后程序算得的結(jié)果X[z]即是段L輸入數(shù)據(jù)的快速傅立葉轉(zhuǎn)換結(jié)果。
請參考圖3。圖3為本發(fā)明一種用于執(zhí)行段L數(shù)據(jù)的快速傅立葉轉(zhuǎn)換的快速傅立葉轉(zhuǎn)換轉(zhuǎn)換裝置10,此快速傅立葉轉(zhuǎn)換轉(zhuǎn)換裝置10為一種處理裝置??焖俑盗⑷~轉(zhuǎn)換轉(zhuǎn)換裝置10包含一補零模塊12,一乘冪計算模塊14,一位反轉(zhuǎn)模塊16,一參數(shù)計算模塊18,一循環(huán)控制模塊22以及一傅立葉轉(zhuǎn)換模塊24。補零模塊12用來接收該段L輸入數(shù)據(jù),使其對應一序列數(shù)據(jù),該序列數(shù)據(jù)長度為M。乘冪計算模塊14用來計算一乘冪N,使該N值對應該M值。M的值即為2的N次方(2N=M)。如果L值恰好為2的次方,則L值與M值相等,2的N次方等于L。如果L值不等于2的次方,則M值為2的次方中大于L的最小值。這段M序列數(shù)據(jù)是由該段L輸入數(shù)據(jù)補上(M-L)個零所組成。位反轉(zhuǎn)模塊16接收該序列數(shù)據(jù)并依據(jù)該N值將該序列數(shù)據(jù)進行位反轉(zhuǎn),并產(chǎn)生一反轉(zhuǎn)序列數(shù)據(jù)。位反轉(zhuǎn)指的是反轉(zhuǎn)該序列數(shù)據(jù)中的各個位從最不重要位至最重要位的順序。參數(shù)計算模塊18依據(jù)該N值以及該段L數(shù)據(jù)長度計算多組加權(quán)參數(shù)W[z](Twiddle factor)。循環(huán)控制模塊22控制本發(fā)明快速傅立葉轉(zhuǎn)換法三個循環(huán)的循環(huán)參數(shù),依據(jù)該N值及至少一計數(shù)器提供一用來控制最外層循環(huán)的主循環(huán)控制信號i,用來控制第二層循環(huán)的一次循環(huán)控制信號j,用來控制第三層循環(huán)的一內(nèi)循環(huán)控制信號k,以及一倍數(shù)控制信號FFA_radix。i值為0、1、、、(N-1);j值為0、1、、、(M/2)-1;該反轉(zhuǎn)序列數(shù)據(jù)為x
、x[1]、、、x[M-1];該倍數(shù)控制信號FFA_radix為一2的次方的變數(shù),于第一次執(zhí)行主循環(huán)時該FFA_radix的值為2,而第二次執(zhí)行主循環(huán)開始該FFA_radix每次以2的倍數(shù)增加,每一次的主循環(huán)對應一FFA_radix值;該k值為于其中一次主循環(huán)之下,以間隔1依序從0遞增至對應該次主循環(huán)的FFA_radix值。傅立葉轉(zhuǎn)換模塊24依據(jù)該多組循環(huán)參數(shù)及多組加權(quán)參數(shù)W[z]對該反轉(zhuǎn)序列數(shù)據(jù)進行循環(huán)運算后輸出該段L數(shù)據(jù)的快速傅立葉轉(zhuǎn)換值。該循環(huán)運算包含執(zhí)行圖2中步驟140的循環(huán)運算程序。
在常規(guī)的方法中,處理輸入數(shù)據(jù)的快速傅立葉轉(zhuǎn)換時,只能針對固定長度的數(shù)據(jù)點進行運算,而且,這輸入數(shù)據(jù)的長度一定要事先設定成2的次方,才能順利進行接下來的運算。此種固定數(shù)據(jù)點的輸入方式造成使用上的不便,也讓快速傅立葉轉(zhuǎn)換運算較無彈性。另外,對于乘冪為N的M點輸入數(shù)據(jù),在快速傅立葉轉(zhuǎn)換運算的過程中需經(jīng)過N層的蝴蝶結(jié)構(gòu),才能得到運算結(jié)果,換句話說,以程序的執(zhí)行上需要N層循環(huán)才能完成運算。這樣程序執(zhí)行較為復雜冗長。相較于常規(guī)技術(shù),本發(fā)明的快速傅立葉轉(zhuǎn)換方法中,將任意段L輸入數(shù)據(jù)對應一序列數(shù)據(jù),使其變成二的次方長度的數(shù)據(jù),因此,本發(fā)明的快速傅立葉轉(zhuǎn)換方法可以處理不固定長度的輸入數(shù)據(jù)的快速傅立葉轉(zhuǎn)換。另外,不論輸入數(shù)據(jù)長度的乘冪值N為何,本發(fā)明循環(huán)運算皆只需要三層循環(huán)即可完成快速傅立葉轉(zhuǎn)換的運算,因此具有運算簡單,運算效率高,所需硬體較少的優(yōu)點。
以上所述僅為本發(fā)明的較佳實施例,凡依本發(fā)明權(quán)利要求所進行的等效變化與修改,皆應屬本發(fā)明的涵蓋范圍。
權(quán)利要求
1.一種快速傅立葉轉(zhuǎn)換方法,被一處理單元載入并執(zhí)行,用以計算段L數(shù)據(jù)的快速傅立葉轉(zhuǎn)換,該方法包含
令該段L輸入數(shù)據(jù)對應一序列數(shù)據(jù),該序列數(shù)據(jù)長度為M;
計算一乘冪N,使該N值對應該M值;
針對該序列數(shù)據(jù)進行位反轉(zhuǎn),得到一反轉(zhuǎn)序列數(shù)據(jù);
依據(jù)該N值以及該序列數(shù)據(jù)長度M計算多組加權(quán)參數(shù)W[z];以及
依據(jù)多組循環(huán)參數(shù)及該多組加權(quán)參數(shù)W[z]對該反轉(zhuǎn)序列數(shù)據(jù)進行循環(huán)運算后輸出該段L數(shù)據(jù)的快速傅立葉轉(zhuǎn)換值。
2.如權(quán)利要求1所述的快速傅立葉轉(zhuǎn)換方法,其另包含如果輸入數(shù)據(jù)長度L小于M,則將段L數(shù)據(jù)再補上(M-L)個零以構(gòu)成該序列數(shù)據(jù)。
3.如權(quán)利要求1所述快速傅立葉轉(zhuǎn)換方法,其中該2的N次方等于M。
4.如權(quán)利要求1所述的快速傅立葉轉(zhuǎn)換方法,其中該循環(huán)運算共包含三個循環(huán),該多組循環(huán)參數(shù)包括一用來控制最外層循環(huán)的主循環(huán)控制信號i,用來控制第二層循環(huán)的一次循環(huán)控制信號j,用來控制第三層循環(huán)的一內(nèi)循環(huán)控制信號k,以及一倍數(shù)控制信號FFA_radix。
5.如權(quán)利要求4所述的快速傅立葉轉(zhuǎn)換方法,該i值為0、1、、、(N-1);該j值為0、1、、、(M/2)-1;該反轉(zhuǎn)序列數(shù)據(jù)為x
、x[1]、、、x[M-1];該倍數(shù)控制信號FFA_radix為一2的次方的變數(shù),于第一次執(zhí)行主循環(huán)時該FFA_radix的值為2,而第二次執(zhí)行主循環(huán)開始該FFA_radix每次以2的倍數(shù)增加,每一次的主循環(huán)對應一FFA_radix值;該k值為于其中一次主循環(huán)之下,以間隔1依序從0遞增至對應該次主循環(huán)的FFA_radix值。
6.如權(quán)利要求5所述的快速傅立葉轉(zhuǎn)換方法,其中該循環(huán)運算另包含于其中一次主循環(huán)之下,如果k值小于對應該次主循環(huán)的FFA_radix值的二分之一,則計算
x[FFA_radix*j+k]=x[FFA_radix*j+k]+x[FFA_radix*j+k+FFA_radix/2]*W[z]。
7.如權(quán)利要求5所述的快速傅立葉轉(zhuǎn)換方法,其中該循環(huán)運算另包含于其中一次主循環(huán)之下,如果k值不小于對應該次主循環(huán)的FFA_radix值的二分之一,則計算
x[FFA_radix*j+k]=x[FFA_radix*j+k]*W[z]+x[FFA_radix*j+k-FFA_radix/2]。
8.如權(quán)利要求1所述的快速傅立葉轉(zhuǎn)換方法,其中針對該序列數(shù)據(jù)進行位反轉(zhuǎn)系反轉(zhuǎn)該序列數(shù)據(jù)中各個位從最不重要位至最重要位的順序,以得到一反轉(zhuǎn)序列數(shù)據(jù)。
9.一種快速傅立葉轉(zhuǎn)換轉(zhuǎn)換裝置,其用于執(zhí)行段L數(shù)據(jù)的快速傅立葉轉(zhuǎn)換,其包含
一補零模塊,接收該段L輸入數(shù)據(jù),使其對應一序列數(shù)據(jù),該序列數(shù)據(jù)長度為M;
一乘冪計算模塊,用來計算一乘冪N,使該N值對應該M值;
一位反轉(zhuǎn)模塊,接收該序列數(shù)據(jù)且依據(jù)該N值將該序列數(shù)據(jù)進行反轉(zhuǎn),并產(chǎn)生一反轉(zhuǎn)序列數(shù)據(jù);
一參數(shù)計算模塊,依據(jù)該N值以及該段L數(shù)據(jù)長度計算多組加權(quán)參數(shù)W[z];
一循環(huán)控制模塊,依據(jù)該N值及至少一計數(shù)器提供多組循環(huán)參數(shù);以及
一傅立葉轉(zhuǎn)換模塊,依據(jù)該多組循環(huán)參數(shù)及多組加權(quán)參數(shù)W[z]對該反轉(zhuǎn)序列數(shù)據(jù)進行循環(huán)運算后輸出該段L數(shù)據(jù)的快速傅立葉轉(zhuǎn)換值。
10.如權(quán)利要求9所述的轉(zhuǎn)換裝置,其中該2的N次方等于M。
11.如權(quán)利要求9所述的轉(zhuǎn)換裝置,其中該L等于M。
12.如權(quán)利要求9所述的轉(zhuǎn)換裝置,其中當該M大于L時,長度為M的該序列數(shù)據(jù)為該補零模塊將該段L輸入數(shù)據(jù)補上(M-L)組零所構(gòu)成。
13.如權(quán)利要求9所述的轉(zhuǎn)換裝置,其中該傅立葉轉(zhuǎn)換模塊所執(zhí)行的循環(huán)運算共包含三個循環(huán),該多組循環(huán)參數(shù)包括一用來控制最外層循環(huán)的主循環(huán)控制信號i,用來控制第二層循環(huán)的一次循環(huán)控制信號j,用來控制第三層循環(huán)的一內(nèi)循環(huán)控制信號k,以及一倍數(shù)控制信號FFA_radix。
14.如權(quán)利要求9所述的快速傅立葉轉(zhuǎn)換方法,該i值為0、1、、、(N-1);該j值為0、1、、、(M/2)-1;該反轉(zhuǎn)序列數(shù)據(jù)為x
、x[1]、、、x[M-1];該倍數(shù)控制信號FFA_radix為一2的次方的變數(shù),于第一次執(zhí)行主循環(huán)時該FFA_radix的值為2,而第二次執(zhí)行主循環(huán)開始該FFA_radix每次以2的倍數(shù)增加,每一次的主循環(huán)對應一FFA_radix值;該k值為于其中一次主循環(huán)之下,以間隔1依序從0遞增至對應該次主循環(huán)的FFA_radix值。
15.如權(quán)利要求14所述的快速傅立葉轉(zhuǎn)換方法,其中該循環(huán)運算另包含于其中一次主循環(huán)之下,如果k值小于對應該次主循環(huán)的FFA_radix值的二分之一,則計算
x[FFA_radix*j+k]=x[FFA_radix*j+k]+x[FFA_radix*j+k+FFA_radix/2]*W[z]。
16.如權(quán)利要求14所述的快速傅立葉轉(zhuǎn)換方法,其中該循環(huán)運算另包含于其中一次主循環(huán)之下,如果k值不小于對應該次主循環(huán)的FFA_radix值的二分之一,則計算
x[FFA_radix*j+k]=x[FFA_radix*j+k]*W[z]+x[FFA_radix*j+k-FFA_radix/2]。
17.如權(quán)利要求9所述的快速傅立葉轉(zhuǎn)換方法,其中針對該序列數(shù)據(jù)進行位反轉(zhuǎn)系反轉(zhuǎn)該序列數(shù)據(jù)中各個位從最不重要位至最重要位的順序,以得到一反轉(zhuǎn)序列數(shù)據(jù)。
全文摘要
一種快速傅立葉轉(zhuǎn)換方法,被一處理單元載入并執(zhí)行,用以計算段L數(shù)據(jù)的快速傅立葉轉(zhuǎn)換,該方法包含令該段L輸入數(shù)據(jù)對應一長度為M的序列數(shù)據(jù);計算一乘冪N,使該N值對應該M值;針對該序列數(shù)據(jù)進行位反轉(zhuǎn),得到一反轉(zhuǎn)序列數(shù)據(jù);依據(jù)該N值以及該序列數(shù)據(jù)長度M計算多組加權(quán)參數(shù)W[z];以及依據(jù)多組循環(huán)參數(shù)及該多組加權(quán)參數(shù)W[z]對該反轉(zhuǎn)序列數(shù)據(jù)進行循環(huán)運算后輸出該段L數(shù)據(jù)的快速傅立葉轉(zhuǎn)換值。
文檔編號G06F17/14GK1746882SQ200410077069
公開日2006年3月15日 申請日期2004年9月10日 優(yōu)先權(quán)日2004年9月10日
發(fā)明者廖偉舜 申請人:明基電通股份有限公司