專(zhuān)利名稱(chēng)::一種實(shí)現(xiàn)快速傅立葉變換、反變換的硬件裝置及方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及無(wú)線移動(dòng)通信及信號(hào)處理系統(tǒng)領(lǐng)域,尤其涉及一種應(yīng)用于TD-SCDMA基帶處理系統(tǒng)的實(shí)現(xiàn)快速傅立葉變換(FastFourierTransform,簡(jiǎn)稱(chēng)FFT)及其反變換(InverseFastFourierTransform,IFFT)的硬件裝置及方法。
背景技術(shù):
:無(wú)線移動(dòng)通信及信號(hào)處理系統(tǒng)中,經(jīng)常需要對(duì)處理信號(hào)進(jìn)行時(shí)域、頻域間的數(shù)據(jù)形式的轉(zhuǎn)化與切換,以方便做下一步的數(shù)據(jù)處理和完成算法流程。FFT主要用于數(shù)據(jù)從時(shí)域向頻域的轉(zhuǎn)換,其反變換IFFT則用于實(shí)現(xiàn)數(shù)據(jù)從頻域向時(shí)域的切換和轉(zhuǎn)化。在TD-SCDMA移動(dòng)通信基帶處理系統(tǒng)中,普遍采用了聯(lián)合檢測(cè)的基帶處理算法,其中含有對(duì)信號(hào)傳輸通道的信道估計(jì)處理與計(jì)算過(guò)程。其算法流程描述及數(shù)據(jù)處理過(guò)程較為復(fù)雜,其中不可避免的用到了數(shù)據(jù)形式從時(shí)域向頻域(FFT)、從頻域向時(shí)域(IFFT)的切換和轉(zhuǎn)化運(yùn)算,如圖l所示,在信道估計(jì)運(yùn)算處理中,完成串行干擾消除、且在與上層配置下來(lái)的基本midamble碼頻域數(shù)據(jù)點(diǎn)除后,需要將頻域數(shù)據(jù)轉(zhuǎn)化為時(shí)域數(shù)據(jù),才能進(jìn)行基于能量大小的有效徑判決操作,這就需要進(jìn)行IFFT運(yùn)算;對(duì)低于噪聲徑的徑系數(shù)置零后、干擾系數(shù)重構(gòu)前,又需要將時(shí)域的數(shù)據(jù)轉(zhuǎn)化為頻域格式,才能和上層配置下來(lái)的基本midamble碼FFT變換結(jié)果進(jìn)行點(diǎn)乘運(yùn)算,這時(shí)就需要進(jìn)行FFT變換。在移動(dòng)通信基帶處理系統(tǒng)中,特別是用戶側(cè)的移動(dòng)終端處理系統(tǒng)中,對(duì)FFT的硬件實(shí)現(xiàn)要求頗為苛刻,有幾個(gè)方面一是面積資源問(wèn)題,不可能將用戶終端系統(tǒng)做的很龐大;二是時(shí)鐘資源的耗費(fèi)問(wèn)題,實(shí)時(shí)處理系統(tǒng)對(duì)時(shí)鐘資源的利用提出很高的要求;三是成本問(wèn)題,多點(diǎn)FFT的運(yùn)算過(guò)程分級(jí)、中間結(jié)果的合理存儲(chǔ)與利用、運(yùn)算本身的復(fù)數(shù)乘法、復(fù)數(shù)加減法等等,其設(shè)計(jì)過(guò)程均直接涉及到硬件資源的相應(yīng)耗費(fèi)。綜上,移動(dòng)通信終端基帶處理系統(tǒng),對(duì)FFT/IFFT的硬件實(shí)現(xiàn)的面積資源及時(shí)鐘資源的利用及提出了較高的要求。FFT/IFFT的硬件實(shí)現(xiàn)電路,需要考慮以下幾點(diǎn)設(shè)計(jì)要素(1)FFT/IFFT功能模塊的輸入及輸出數(shù)據(jù)流排列順序由FFT/IFFT數(shù)學(xué)運(yùn)算具體過(guò)程可知,可以選擇不同的拓補(bǔ)結(jié)構(gòu)(蝶形中的兩兩數(shù)據(jù)交叉配對(duì))完成多點(diǎn)FFT/IFFT的運(yùn)算,理論上講,輸入數(shù)據(jù)是自然順序或者倒序、對(duì)輸出結(jié)果要求是自然順序或者倒序均可以做到。但是,對(duì)非FFT/IFFT運(yùn)算來(lái)說(shuō),很少用到位反序的數(shù)據(jù)流輸入或輸出,而自然順序的數(shù)據(jù)排列相對(duì)常見(jiàn)。(2)蝶形運(yùn)算中使用的旋轉(zhuǎn)因子在蝶形運(yùn)算X(K)=&(K)±WNkX2(K)中,稱(chēng)WNk為旋轉(zhuǎn)因子。根據(jù)多點(diǎn)FFT/IFFT運(yùn)算的具體輸入數(shù)據(jù)點(diǎn)數(shù)(假設(shè)為2的n次冪),以及設(shè)計(jì)中的定點(diǎn)化精度,來(lái)決定運(yùn)算中所需要的旋轉(zhuǎn)因子數(shù)值取值。在目前的實(shí)際設(shè)計(jì)中,旋轉(zhuǎn)因子的取數(shù)和生成一般采用以下途徑實(shí)時(shí)生成當(dāng)前所需旋轉(zhuǎn)因子本身或者其倍數(shù)數(shù)值,通過(guò)與某一個(gè)基值相乘得到想要的旋轉(zhuǎn)因子數(shù)據(jù)。這種方法適合對(duì)實(shí)時(shí)性要求不是很強(qiáng)的場(chǎng)合。[OOW](3)蝶形運(yùn)算單元6由于蝶形運(yùn)算X(K)=XJK)±WNkX2(K)需要完成復(fù)數(shù)乘法、復(fù)數(shù)加減法的運(yùn)算,硬件設(shè)計(jì)中相對(duì)應(yīng)的也需要用復(fù)數(shù)乘法器(多個(gè)實(shí)數(shù)乘法器組成)等器件完成運(yùn)算。由于采用不同數(shù)量的乘法器資源及加法器資源對(duì)成本及面積上的影響較大,所以要考慮到蝶形運(yùn)算單元的實(shí)現(xiàn)策略。(4)中間結(jié)果的存儲(chǔ)與調(diào)用根據(jù)多點(diǎn)FFT/IFFT運(yùn)算的具體輸入數(shù)據(jù)點(diǎn)數(shù)(假設(shè)為2的n次冪),整個(gè)FFT/IFFT運(yùn)算分為n級(jí)來(lái)完成,即有n級(jí)的中間結(jié)果需要緩存及被接下來(lái)的一級(jí)運(yùn)算有序地調(diào)用??紤]每一級(jí)采用的不同拓補(bǔ)結(jié)構(gòu)的設(shè)計(jì),以及硬件存儲(chǔ)結(jié)構(gòu)的可實(shí)現(xiàn)性,合理安排逐級(jí)中間結(jié)果的緩存與取數(shù)調(diào)用,對(duì)快速高效完成FFT/IFFT運(yùn)算很關(guān)鍵。(5)每級(jí)中間計(jì)算結(jié)果數(shù)據(jù)的溢出判斷和溢出處理由于硬件設(shè)計(jì)中定點(diǎn)化的存在,必須考慮每級(jí)FFT/IFFT運(yùn)算的蝶形運(yùn)算精度控制及補(bǔ)償問(wèn)題,這就是運(yùn)算中的溢出判斷和溢出處理。這個(gè)和定點(diǎn)化方案中的數(shù)據(jù)鏈整體精度控制有關(guān)。以上就是FFT/IFFT的硬件電路實(shí)現(xiàn)需要考慮的五個(gè)重要要素。但是作為終端無(wú)線移動(dòng)通信系統(tǒng)處理系統(tǒng),不僅僅是要實(shí)現(xiàn)FFT/IFFT數(shù)學(xué)運(yùn)算,還要考慮無(wú)線終端設(shè)備的特殊性,如成本、便攜、高速數(shù)據(jù)處理的實(shí)時(shí)性及其與其他模塊的交互協(xié)作、整體設(shè)計(jì)等。中國(guó)專(zhuān)利CN200710103178.9_01_23,描述了一種FFT/IFFT成對(duì)處理系統(tǒng)及裝置,但是其所述第一傅立葉變換處理模塊及第二傅立葉變換模塊,均只能接收一種順序的數(shù)據(jù)流、輸出另一種順序的數(shù)據(jù)流,比如接收自然序數(shù)據(jù)流,輸出位反序數(shù)據(jù)流;或者接收位反序數(shù)據(jù)流,輸出自然序數(shù)據(jù)流。該專(zhuān)利的不足在于只有在類(lèi)似FFT/IFFT的特定運(yùn)算中,才可能對(duì)數(shù)據(jù)有位反序的排列要求,亦即位反序的數(shù)據(jù)流,對(duì)其他運(yùn)算來(lái)說(shuō),作為輸入或者強(qiáng)制的輸出格式均不方便,所以該專(zhuān)利裝置的通用性不強(qiáng)。中國(guó)專(zhuān)利CN02152484_01_11,描述了基4和混合基(4+2)FFT處理器地址映射方法和系統(tǒng),其使用了4個(gè)數(shù)據(jù)存儲(chǔ)體和3個(gè)旋轉(zhuǎn)因子存儲(chǔ)體。該專(zhuān)利的不足在于存儲(chǔ)單元塊數(shù)較多,且使用了過(guò)多存儲(chǔ)單元對(duì)中間操作數(shù)的存儲(chǔ),雖然可能做到了FFT本身數(shù)學(xué)運(yùn)算的較大并行度,但并不適合在終端基帶系統(tǒng)中應(yīng)用。
發(fā)明內(nèi)容本發(fā)明所要解決的技術(shù)問(wèn)題是克服現(xiàn)有的有關(guān)FFT(或IFFT)硬件設(shè)計(jì)中硬件資源及時(shí)鐘資源均耗費(fèi)巨大問(wèn)題和缺陷,提供一種設(shè)計(jì)思路清晰、實(shí)現(xiàn)簡(jiǎn)單且滿足實(shí)時(shí)系統(tǒng)對(duì)硬件資源及時(shí)間雙重苛刻要求的實(shí)現(xiàn)FFT/IFFT的硬件裝置,以及相應(yīng)的實(shí)現(xiàn)方法。為解決上述技術(shù)問(wèn)題,本發(fā)明是通過(guò)以下技術(shù)方案實(shí)現(xiàn)的—種實(shí)現(xiàn)快速傅立葉變換的硬件裝置,該裝置包括依次相連的逆序讀取單元、處理結(jié)果存儲(chǔ)單元、運(yùn)算單元;所述處理結(jié)果存儲(chǔ)單元,包括第一RAM存儲(chǔ)單元和第二RAM存儲(chǔ)單元;所述逆序讀取單元,用于產(chǎn)生逆序讀取過(guò)程的讀地址,按此讀地址逆序讀取自然順序的輸入數(shù)據(jù)并自上而下地寫(xiě)入處理結(jié)果存儲(chǔ)單元中,且每次僅讀取兩個(gè)輸入數(shù)據(jù)并將所讀取的兩數(shù)據(jù)分別寫(xiě)入第一RAM存儲(chǔ)單元和第二RAM存儲(chǔ)單元中;所述第一RAM存儲(chǔ)單元和第二RAM存儲(chǔ)單元,均用于存儲(chǔ)所述逆序讀取單元所讀取的輸入數(shù)據(jù)、運(yùn)算單元所執(zhí)行的各級(jí)蝶形運(yùn)算的運(yùn)算結(jié)果;還用于提供對(duì)外接口,用以輸出運(yùn)算結(jié)果;所述運(yùn)算單元,用于按照所述輸入數(shù)據(jù)的點(diǎn)數(shù)N進(jìn)行n級(jí)迭代的蝶形運(yùn)算,在每級(jí)的每次蝶形運(yùn)算過(guò)程中,從所述處理結(jié)果存儲(chǔ)單元讀取兩個(gè)數(shù)據(jù)作為當(dāng)前蝶形運(yùn)算的待處理數(shù)據(jù);并將每級(jí)的運(yùn)算結(jié)果分別寫(xiě)入第一RAM存儲(chǔ)單元和第二RAM存儲(chǔ)單元中,以作為下一級(jí)蝶形運(yùn)算的待處理數(shù)據(jù);所述N等于2的n次冪。其中,所述運(yùn)算單元包括依次相連的溢出處理單元、第一交換單元、蝶形運(yùn)算單元、第二交換單元、溢出判斷單元;還包括與第二交換單元相連的整體補(bǔ)償單元、與蝶形運(yùn)算單元相連的運(yùn)算信息預(yù)存rom單元、與第一交換單元相連的第一控制單元、與第二交換單元相連的第二控制單元;且所述溢出處理單元、溢出判斷單元、整體補(bǔ)償單元均分別與所述處理結(jié)果存儲(chǔ)單元相連;所述溢出處理單元,用于在進(jìn)行第2至n級(jí)蝶形運(yùn)算時(shí),根據(jù)相應(yīng)的溢出標(biāo)志位對(duì)當(dāng)前蝶形運(yùn)算的待處理數(shù)據(jù)進(jìn)行溢出處理操作;所述第一控制單元,用于預(yù)存各級(jí)運(yùn)算中所使用的第一交換標(biāo)識(shí)信息,據(jù)此控制第一交換單元對(duì)當(dāng)前的待處理數(shù)據(jù)進(jìn)行交換或者還原操作;所述第一交換單元,用于對(duì)當(dāng)前兩個(gè)待處理數(shù)據(jù)進(jìn)行交換或還原操作后分別作為XJK)和&(K)送至蝶形運(yùn)算單元,所述K表示本級(jí)運(yùn)算中當(dāng)前蝶形運(yùn)算的次數(shù);所述運(yùn)算信息預(yù)存rom單元,用于預(yù)存各級(jí)蝶形運(yùn)算中所使用的旋轉(zhuǎn)因子WNk;還用于存儲(chǔ)各級(jí)的運(yùn)算結(jié)果在處理結(jié)果存儲(chǔ)單元中對(duì)應(yīng)的存儲(chǔ)位置;所述蝶形運(yùn)算單元,用于獲取對(duì)應(yīng)的旋轉(zhuǎn)因子W/,按照X(K)=XJK)±WNkX2(K)進(jìn)行蝶形運(yùn)算,并輸出運(yùn)算結(jié)果&(K)+w;^(K)禾卩&(K)-w;^(K);所述第二控制單元,用于預(yù)存各級(jí)運(yùn)算中所使用的第二交換標(biāo)識(shí)信息和運(yùn)算結(jié)果的具體存儲(chǔ)地址信息,控制第二交換單元對(duì)當(dāng)前的運(yùn)算結(jié)果進(jìn)行交換或者還原操作,并告知第二交換單元當(dāng)前運(yùn)算結(jié)果在處理結(jié)果存儲(chǔ)單元中預(yù)設(shè)的具體存儲(chǔ)地址;所述第二交換單元,用于在第1至n-l級(jí)蝶形運(yùn)算過(guò)程中,對(duì)所述蝶形運(yùn)算單元當(dāng)前的兩個(gè)運(yùn)算結(jié)果進(jìn)行交換或者還原操作,之后將其送至溢出判斷單元或者整體補(bǔ)償單元;所述溢出判斷單元,用于在第1至n-l級(jí)蝶形運(yùn)算過(guò)程中,判斷蝶形運(yùn)算單元當(dāng)前的兩個(gè)運(yùn)算結(jié)果是否溢出,根據(jù)判斷結(jié)果設(shè)置相應(yīng)的溢出標(biāo)志位并存儲(chǔ),之后將運(yùn)算結(jié)果分別寫(xiě)入第一RAM存儲(chǔ)單元和第二RAM存儲(chǔ)單元中預(yù)設(shè)的具體存儲(chǔ)地址;所述整體補(bǔ)償單元,用于在第n級(jí)蝶形運(yùn)算過(guò)程中,根據(jù)之前各級(jí)的溢出處理操作時(shí)采用的縮小倍數(shù)對(duì)蝶形運(yùn)算單元當(dāng)前的運(yùn)算結(jié)果進(jìn)行數(shù)據(jù)放大補(bǔ)償,之后將運(yùn)算結(jié)果分別寫(xiě)入第一RAM存儲(chǔ)單元和第二RAM存儲(chǔ)單元中預(yù)設(shè)的具體存儲(chǔ)地址。—種實(shí)現(xiàn)快速傅立葉變換的方法,該方法包括以下步驟A、確定當(dāng)前進(jìn)行快速傅立葉變換運(yùn)算的輸入數(shù)據(jù)的點(diǎn)數(shù)N,所述N等于2的n次■^^^;B、產(chǎn)生逆序讀取過(guò)程的讀地址,按此讀地址逆序讀取自然順序的輸入數(shù)據(jù)并自上而下地寫(xiě)入處理結(jié)果存儲(chǔ)單元中,且每次僅讀取兩個(gè)輸入數(shù)據(jù)并將讀取的兩數(shù)據(jù)分別寫(xiě)入處理結(jié)果存儲(chǔ)單元的第一RAM存儲(chǔ)單元和第二RAM存儲(chǔ)單元;C、按照所述輸入數(shù)據(jù)的點(diǎn)數(shù)N進(jìn)行n級(jí)迭代蝶形運(yùn)算,在每級(jí)的每次蝶形運(yùn)算過(guò)程中,從所述第一RAM存儲(chǔ)單元和第二RAM存儲(chǔ)單元分別讀取一個(gè)數(shù)據(jù)作為當(dāng)前蝶形運(yùn)算的待處理數(shù)據(jù);并將每級(jí)的運(yùn)算結(jié)果分別寫(xiě)入第一RAM存儲(chǔ)單元和第二RAM存儲(chǔ)單元中預(yù)設(shè)的具體存儲(chǔ)地址,以作為下一級(jí)蝶形運(yùn)算的待處理數(shù)據(jù)。其中,所述步驟C包括Cl、從所述第一RAM存儲(chǔ)單元和第二RAM存儲(chǔ)單元分別讀取一個(gè)數(shù)據(jù)作為當(dāng)前蝶形運(yùn)算的待處理數(shù)據(jù);C2、對(duì)所讀取的兩個(gè)數(shù)據(jù)進(jìn)行溢出處理及數(shù)據(jù)交換操作后分別作為&(K)和X2(K)送至蝶形運(yùn)算單元,所述K表示本級(jí)運(yùn)算中當(dāng)前蝶形運(yùn)算的次數(shù);C3、從運(yùn)算信息預(yù)存rom單元中提取預(yù)存的本級(jí)運(yùn)算中所使用的旋轉(zhuǎn)因子WNk,按照X(K)=&(K)±WNkX2(K)進(jìn)行蝶形運(yùn)算,并輸出運(yùn)算結(jié)果&(K)+WNkX2(K)和XjK)-WNkX2(K);C4、對(duì)所述兩個(gè)運(yùn)算結(jié)果進(jìn)行數(shù)據(jù)交換及溢出判斷操作,根據(jù)判斷結(jié)果設(shè)置相應(yīng)的溢出標(biāo)志位;C4、將所述運(yùn)算結(jié)果分別存儲(chǔ)至第一RAM存儲(chǔ)單元和第二RAM存儲(chǔ)單元中預(yù)設(shè)的具體存儲(chǔ)地址,作為下一級(jí)蝶形運(yùn)算的待處理數(shù)據(jù);C5、重復(fù)步驟C1至C4,直至運(yùn)行到第n級(jí)蝶形運(yùn)算結(jié)束后,對(duì)本級(jí)的運(yùn)算結(jié)果進(jìn)行數(shù)據(jù)倍數(shù)的整體補(bǔ)償?!N實(shí)現(xiàn)快速傅立葉反變換的硬件裝置,該裝置包括依次相連的逆序讀取單元、共軛處理單元、處理結(jié)果存儲(chǔ)單元、運(yùn)算單元;所述處理結(jié)果存儲(chǔ)單元,包括第一RAM存儲(chǔ)單元和第二RAM存儲(chǔ)單元;所述逆序讀取單元,用于產(chǎn)生逆序讀取過(guò)程的讀地址,按此讀地址逆序讀取自然順序的輸入數(shù)據(jù)并將所讀取的數(shù)據(jù)經(jīng)共軛處理單元處理后自上而下地寫(xiě)入處理結(jié)果存儲(chǔ)單元中,且每次僅讀取兩個(gè)輸入數(shù)據(jù)并將所讀取的兩數(shù)據(jù)經(jīng)共軛處理單元處理后分別寫(xiě)入第一RAM存儲(chǔ)單元和第二RAM存儲(chǔ)單元中;所述共軛處理單元,用于對(duì)逆序讀取單元所讀取的輸入數(shù)據(jù)進(jìn)行共軛處理操作,還用于對(duì)第n級(jí)蝶形運(yùn)算的運(yùn)算結(jié)果進(jìn)行共軛處理操作后寫(xiě)入第一RAM存儲(chǔ)單元和第二RAM存儲(chǔ)單元;所述第一RAM存儲(chǔ)單元和第二RAM存儲(chǔ)單元,均用于存儲(chǔ)所述逆序讀取單元所讀取的經(jīng)共軛處理的輸入數(shù)據(jù)、運(yùn)算單元所執(zhí)行的各級(jí)蝶形運(yùn)算的運(yùn)算結(jié)果;還用于提供對(duì)外接口,用以輸出運(yùn)算結(jié)果;所述運(yùn)算單元,用于按照所述輸入數(shù)據(jù)的點(diǎn)數(shù)N進(jìn)行n級(jí)的蝶形運(yùn)算,在每級(jí)的每次蝶形運(yùn)算過(guò)程中,從所述處理結(jié)果存儲(chǔ)單元讀取兩個(gè)數(shù)據(jù)作為當(dāng)前蝶形運(yùn)算的待處理數(shù)據(jù);并將每級(jí)的運(yùn)算結(jié)果分別寫(xiě)入第一RAM存儲(chǔ)單元和第二RAM存儲(chǔ)單元中,以作為下一級(jí)蝶形運(yùn)算的待處理數(shù)據(jù);且在進(jìn)行第n級(jí)蝶形運(yùn)算時(shí),將本級(jí)的運(yùn)算結(jié)果經(jīng)共軛處理單元處理后再分別寫(xiě)入第一RAM存儲(chǔ)單元和第二RAM存儲(chǔ)單元中預(yù)設(shè)的具體存儲(chǔ)地址;所述N等于2的n次冪。其中,所述運(yùn)算單元包括依次相連的溢出處理單元、第一交換單元、蝶形運(yùn)算單元、第二交換單元、溢出判斷單元;還包括與第二交換單元相連的整體補(bǔ)償單元、與蝶形運(yùn)算單元相連的運(yùn)算信息預(yù)存rom單元、與第一交換單元相連的第一控制單元、與第二交換單元相連的第二控制單元;且所述溢出處理單元、溢出判斷單元均分別與所述處理結(jié)果存儲(chǔ)單元相連,所述整體補(bǔ)償單元還與共軛處理單元相連;所述溢出處理單元,用于在進(jìn)行第2至n級(jí)蝶形運(yùn)算時(shí),根據(jù)上一級(jí)蝶形運(yùn)算后設(shè)置的相應(yīng)的溢出標(biāo)志位對(duì)當(dāng)前蝶形運(yùn)算的待處理數(shù)據(jù)進(jìn)行溢出處理操作;所述第一控制單元,用于預(yù)存各級(jí)運(yùn)算中所使用的第一交換標(biāo)識(shí)信息,據(jù)此控制第一交換單元對(duì)當(dāng)前的待處理數(shù)據(jù)進(jìn)行交換或者還原操作;所述第一交換單元,用于對(duì)當(dāng)前兩個(gè)待處理數(shù)據(jù)進(jìn)行交換或還原操作后分別作為XJK)和X2(K)送至蝶形運(yùn)算單元,所述K表示本級(jí)運(yùn)算中當(dāng)前蝶形運(yùn)算的次數(shù);所述運(yùn)算信息預(yù)存rom單元,用于預(yù)存各級(jí)蝶形運(yùn)算中所使用的旋轉(zhuǎn)因子WNk;還用于存儲(chǔ)每級(jí)的運(yùn)算結(jié)果在處理結(jié)果存儲(chǔ)單元中對(duì)應(yīng)的存儲(chǔ)位置;所述蝶形運(yùn)算單元,用于按照X(K)二&(K)士W;^(K)進(jìn)行蝶形運(yùn)算,并輸出運(yùn)算結(jié)果X!(K)+WNkX2(K)和X!(K)-WNkX2(K);所述第二控制單元,用于預(yù)存各級(jí)運(yùn)算中所使用的第二交換標(biāo)識(shí)信息和運(yùn)算結(jié)果的具體存儲(chǔ)地址信息,控制第二交換單元對(duì)當(dāng)前的運(yùn)算結(jié)果進(jìn)行交換或者還原操作,并告知第二交換單元當(dāng)前運(yùn)算結(jié)果在處理結(jié)果存儲(chǔ)單元中預(yù)設(shè)的具體存儲(chǔ)地址;所述第二交換單元,用于在第1至n-l級(jí)蝶形運(yùn)算過(guò)程中,對(duì)所述蝶形運(yùn)算單元當(dāng)前的兩個(gè)運(yùn)算結(jié)果進(jìn)行交換操作,之后將其送至溢出判斷單元或者整體補(bǔ)償單元;所述溢出判斷單元,用于在第1至n-l級(jí)蝶形運(yùn)算過(guò)程中,判斷蝶形運(yùn)算單元當(dāng)前的兩個(gè)運(yùn)算結(jié)果是否溢出,根據(jù)判斷結(jié)果設(shè)置相應(yīng)的溢出標(biāo)志位并存儲(chǔ),之后將運(yùn)算結(jié)果分別寫(xiě)入第一RAM存儲(chǔ)單元和第二RAM存儲(chǔ)單元中預(yù)設(shè)的具體存儲(chǔ)地址;所述整體補(bǔ)償單元,用于在第n級(jí)蝶形運(yùn)算過(guò)程中,根據(jù)之前各級(jí)的溢出處理操作時(shí)采用的縮小倍數(shù)對(duì)蝶形運(yùn)算單元當(dāng)前的運(yùn)算結(jié)果進(jìn)行數(shù)據(jù)放大補(bǔ)償,之后將運(yùn)算結(jié)果送至所述共軛處理單元?!N實(shí)現(xiàn)快速傅立葉反變換的方法,該方法包括以下步驟a、確定當(dāng)前進(jìn)行快速傅立葉反變換運(yùn)算的輸入數(shù)據(jù)的點(diǎn)數(shù)N,所述N等于2的n次■^^^;b、產(chǎn)生逆序讀取過(guò)程的讀地址,按此讀地址逆序讀取自然順序的輸入數(shù)據(jù),對(duì)所讀取的輸入數(shù)據(jù)進(jìn)行共軛處理后自上而下地寫(xiě)入處理結(jié)果存儲(chǔ)單元中,且每次僅讀取兩個(gè)輸入數(shù)據(jù)并將其分別寫(xiě)入處理結(jié)果存儲(chǔ)單元的第一RAM存儲(chǔ)單元和第二RAM存儲(chǔ)單元;c、按照所述輸入數(shù)據(jù)的點(diǎn)數(shù)N進(jìn)行n級(jí)迭代蝶形運(yùn)算,在每級(jí)的每次蝶形運(yùn)算過(guò)程中,從所述第一RAM存儲(chǔ)單元和第二RAM存儲(chǔ)單元分別讀取一個(gè)數(shù)據(jù)作為當(dāng)前蝶形運(yùn)算的待處理數(shù)據(jù);并將每級(jí)的運(yùn)算結(jié)果分別寫(xiě)入第一RAM存儲(chǔ)單元和第二RAM存儲(chǔ)單元中,以作為下一級(jí)蝶形運(yùn)算的待處理數(shù)據(jù);且在進(jìn)行第n級(jí)蝶形運(yùn)算時(shí),對(duì)本級(jí)的運(yùn)算結(jié)果進(jìn)行共軛處理后再分別寫(xiě)入第一RAM存儲(chǔ)單元和第二RAM存儲(chǔ)單元。其中,所述步驟c包括cl、從所述第一RAM存儲(chǔ)單元和第二RAM存儲(chǔ)單元分別讀取一個(gè)數(shù)據(jù)作為當(dāng)前蝶形運(yùn)算的待處理數(shù)據(jù);c2、對(duì)所讀取的兩個(gè)數(shù)據(jù)進(jìn)行溢出處理及數(shù)據(jù)交換操作后分別作為&(K)和X2(K)10送至蝶形運(yùn)算單元,所述K表示本級(jí)運(yùn)算中當(dāng)前蝶形運(yùn)算的次數(shù);c3、從運(yùn)算信息預(yù)存rom單元中提取預(yù)存的本級(jí)運(yùn)算中所使用的旋轉(zhuǎn)因子WNk,按照X(K)=&(K)±WNkX2(K)進(jìn)行蝶形運(yùn)算,并輸出運(yùn)算結(jié)果&(K)+WNkX2(K)和XjK)-WNkX2(K);c4、對(duì)所述兩個(gè)運(yùn)算結(jié)果進(jìn)行數(shù)據(jù)交換及溢出判斷操作,根據(jù)判斷結(jié)果設(shè)置相應(yīng)的溢出標(biāo)志位;c4、將所述運(yùn)算結(jié)果分別存儲(chǔ)至第一RAM存儲(chǔ)單元和第二RAM存儲(chǔ)單元中預(yù)設(shè)的具體存儲(chǔ)地址,作為下一級(jí)蝶形運(yùn)算的待處理數(shù)據(jù);c5、重復(fù)步驟cl至c4,直至運(yùn)行至第n級(jí)蝶形運(yùn)算結(jié)束時(shí),對(duì)本級(jí)的運(yùn)算結(jié)果進(jìn)行數(shù)據(jù)倍數(shù)的整體補(bǔ)償,并進(jìn)行共軛處理。本發(fā)明具有以下有益效果1)本發(fā)明所提供的實(shí)現(xiàn)FFT/IFFT的硬件裝置對(duì)輸入數(shù)據(jù)流沒(méi)有苛刻的順序要求(如逆序輸入數(shù)據(jù)的需求,是通過(guò)本硬件裝置自身的內(nèi)部功能設(shè)計(jì)來(lái)滿足的),輸入、輸出數(shù)據(jù)流均為自然順序,便于讀取數(shù)據(jù)和輸出數(shù)據(jù);且以ram的形式作為輸出數(shù)據(jù)接口,適合作時(shí)鐘域的切換。2)由于本發(fā)明通過(guò)將計(jì)算中的先驗(yàn)信息(包括旋轉(zhuǎn)因子及對(duì)中間結(jié)運(yùn)算結(jié)果數(shù)據(jù)的存儲(chǔ)寫(xiě)控制信息)通過(guò)rom存儲(chǔ)起來(lái),不用實(shí)時(shí)生成該部分信息;而且,由于整個(gè)裝置的數(shù)據(jù)計(jì)算采用完全流水的設(shè)計(jì)結(jié)構(gòu),n級(jí)N個(gè)數(shù)據(jù)的緩存和計(jì)算過(guò)程同時(shí)進(jìn)行,時(shí)序整體協(xié)調(diào),處理時(shí)間大為優(yōu)化和縮短,因此,本發(fā)明非常適合于實(shí)時(shí)計(jì)算的應(yīng)用場(chǎng)合。3)本發(fā)明采用了對(duì)FFT/IFFT中間運(yùn)算結(jié)果優(yōu)化存儲(chǔ)的策略通過(guò)設(shè)計(jì)rom—wraddr使得n級(jí)中間運(yùn)算結(jié)果的存儲(chǔ)共用深度為N(與輸入數(shù)據(jù)個(gè)數(shù)相同)存儲(chǔ)單元即可,大大節(jié)省了存儲(chǔ)單元的開(kāi)銷(xiāo)。4)本發(fā)明可以根據(jù)實(shí)際系統(tǒng)中硬件資源及時(shí)鐘資源的寬裕度,來(lái)選擇使用合適個(gè)數(shù)的蝶形運(yùn)算單元同時(shí)進(jìn)行運(yùn)算;蝶形單元越多,運(yùn)算的并行度越高,相應(yīng)的中間結(jié)果的存儲(chǔ)策略復(fù)雜度增加,但整個(gè)模塊的計(jì)算耗費(fèi)時(shí)間越少,因此本發(fā)明的硬件裝置設(shè)計(jì)比較靈活。5)本發(fā)明的硬件裝置通用性很強(qiáng),便于實(shí)現(xiàn),具有很強(qiáng)的實(shí)用性。圖1是TD-SCDMA系統(tǒng)信道估計(jì)計(jì)算處理中FFT/IFFT模塊的應(yīng)用示意圖;圖2是本發(fā)明FFT/IFFT硬件裝置的結(jié)構(gòu)示意圖;圖3是本發(fā)明的FFT/IFFT變換方法示意圖;圖4是并行度為1的FFT/IFFT裝置中的時(shí)鐘資源裕度示意圖;圖5是FFT/IFFT硬件裝置的詳細(xì)硬件設(shè)計(jì)示意圖。具體實(shí)施例方式下面結(jié)合附圖及具體實(shí)施例對(duì)本發(fā)明作進(jìn)一步詳細(xì)的描述請(qǐng)參閱圖2,該圖所示為本發(fā)明FFT/IFFT硬件裝置的結(jié)構(gòu)示意圖。假設(shè)當(dāng)前需要處理的是N點(diǎn)(等于2的n次冪)輸入數(shù)據(jù)的FFT/IFFT運(yùn)算,則11逆序讀取單元用于產(chǎn)生逆序讀取過(guò)程的讀地址,按此讀地址逆序讀取自然順序的輸入數(shù)據(jù)并自上而下地寫(xiě)入處理結(jié)果存儲(chǔ)單元(ram—data)中,且每次僅讀取兩個(gè)輸入數(shù)據(jù)并將所讀取的兩數(shù)據(jù)分別寫(xiě)入第一RAM存儲(chǔ)單元(ram_datal)和第二RAM存儲(chǔ)單元(r咖—data2)中;處理結(jié)果存儲(chǔ)單元ram_data:內(nèi)部的存儲(chǔ)空間細(xì)分為2個(gè)大小一致的ram_datal單元和ram_data2單元,均用于存儲(chǔ)逆序讀取單元所讀取的輸入數(shù)據(jù)、中間運(yùn)算結(jié)果或最終的運(yùn)算結(jié)果;還用于提供對(duì)外接口,用以輸出最后一級(jí)運(yùn)算的運(yùn)算結(jié)果;共軛處理單元對(duì)IFFT來(lái)說(shuō),第一級(jí)的輸入數(shù)據(jù)及第n級(jí)的輸出數(shù)據(jù),均需要進(jìn)行共軛運(yùn)算,所以在進(jìn)行IFFT運(yùn)算時(shí),對(duì)第一級(jí)的輸入數(shù)據(jù)和第n級(jí)的輸出數(shù)據(jù)進(jìn)行共軛運(yùn)算,在進(jìn)行FFT運(yùn)算時(shí),共軛處理單元不作處理;交換單元主要處理逐級(jí)運(yùn)算中,考慮硬件實(shí)現(xiàn)中只能同時(shí)向一塊ram寫(xiě)入一個(gè)數(shù)據(jù)、只能同時(shí)從一塊ram讀出一個(gè)數(shù)據(jù),所以就存在逐級(jí)中間結(jié)果緩存策略的問(wèn)題??驁D中的交換單元2用于對(duì)計(jì)算結(jié)果的存儲(chǔ)交換,交換網(wǎng)絡(luò)l用于對(duì)下一級(jí)蝶形運(yùn)算輸入數(shù)據(jù)的交換或還原;控制單元框圖中的交換單元1用于預(yù)存各級(jí)運(yùn)算中所使用的第一交換標(biāo)識(shí)信息(Data—modify),據(jù)此控制交換單元1對(duì)當(dāng)前的待處理數(shù)據(jù)進(jìn)行交換或者還原操作;控制單元2,用于預(yù)存各級(jí)運(yùn)算中所使用的第二交換標(biāo)識(shí)信息(Ex_en)和運(yùn)算結(jié)果的具體存儲(chǔ)地址信息(Data—wraddr),控制交換單元2對(duì)當(dāng)前的運(yùn)算結(jié)果進(jìn)行交換或者還原操作,并告知交換單元2當(dāng)前運(yùn)算結(jié)果在處理結(jié)果存儲(chǔ)單元中預(yù)設(shè)的具體存儲(chǔ)地址;蝶形運(yùn)算單元就是完成對(duì)X(K)=XJK)±WNkX2(K)的計(jì)算,包括復(fù)數(shù)乘法和復(fù)數(shù)加減。為了節(jié)省面積資源,采用(A+Bj)*(C+Dj)=[(A+B)*C-(C+D)*B]+j[(A+B)*C-(C-D)*A]—一3乘5加的復(fù)數(shù)乘法實(shí)現(xiàn)策略;運(yùn)算信息預(yù)存rom單元主要用于存儲(chǔ)2部分信息,一是將逐級(jí)運(yùn)算中用到的旋轉(zhuǎn)因子存儲(chǔ)在rom_w中,使用時(shí)候按照存儲(chǔ)地址區(qū)分W的數(shù)據(jù);二是將1n級(jí)的每一級(jí)中間運(yùn)算結(jié)果在ram_data存儲(chǔ)中的對(duì)應(yīng)位置分布詳細(xì)信息存儲(chǔ)在rom_Wrdata中,以指示每一級(jí)、每一個(gè)數(shù)據(jù)應(yīng)該寫(xiě)向ram_data的某一個(gè)具體存儲(chǔ)單元;溢出判斷和處理單元溢出判斷主要是對(duì)每一級(jí)蝶形運(yùn)算后的結(jié)果實(shí)虛部數(shù)值進(jìn)行判斷,可以知道當(dāng)前該級(jí)FFT/IFFT運(yùn)算溢出了多少倍(以2的m次方為單位,比如溢出2倍、4倍,等等),并用專(zhuān)門(mén)寄存器記錄下來(lái);在緊接的下一級(jí)的計(jì)算開(kāi)始位置,取數(shù)完畢、進(jìn)行蝶形運(yùn)算之前,進(jìn)行相反地?cái)?shù)據(jù)大小縮放,即將當(dāng)前該級(jí)的所有數(shù)據(jù)均縮小相應(yīng)倍數(shù)(也是2的m次方,比如縮小為1/2、1/4,等等),以保證完整的n級(jí)FFT/IFFT運(yùn)算,數(shù)據(jù)不會(huì)大幅度溢出失真,這就是溢出處理的子過(guò)程。當(dāng)然,由于在每一級(jí)都可能有溢出情況,而在緊接的下一級(jí)做了數(shù)據(jù)的縮小操作,所以整個(gè)n級(jí)運(yùn)算結(jié)束后,要將專(zhuān)門(mén)寄存器中保存的各級(jí)(1n級(jí))倍數(shù)數(shù)值進(jìn)行累加,進(jìn)行這n級(jí)運(yùn)算的數(shù)據(jù)放大補(bǔ)償,這是溢出處理的完整過(guò)程。另外由于IFFT運(yùn)算中,除了2次共軛處理外,還有基于1/N這個(gè)系數(shù)倍數(shù)的數(shù)據(jù)縮放操作,這個(gè)也一并考慮到溢出處理操作中,通過(guò)右移n位即可實(shí)現(xiàn)。請(qǐng)參閱圖3,該圖所示為上述FFT/IFFT硬件裝置的數(shù)據(jù)處理過(guò)程301、逆序讀取確定當(dāng)前FFT/IFFT多點(diǎn)運(yùn)算的點(diǎn)數(shù),比如N(2的n次冪大小)點(diǎn)FFT/IFFT。由逆序讀取單元產(chǎn)生逆序讀取地址,從自然順序的輸入數(shù)據(jù)流一次兩兩讀取數(shù)據(jù),進(jìn)入之后的共軛處理單元;302、共軛處理。如果當(dāng)前進(jìn)行的是IFFT運(yùn)算,則對(duì)讀進(jìn)來(lái)的數(shù)據(jù)進(jìn)行共軛運(yùn)算;否則,數(shù)據(jù)透明通過(guò);303、存儲(chǔ)待處理數(shù)據(jù)。由于已經(jīng)是通過(guò)逆序讀取進(jìn)來(lái)的數(shù)據(jù),符合FFT/IFFT運(yùn)算的需要,故該部分?jǐn)?shù)據(jù)存儲(chǔ)按照自上而下的順序存儲(chǔ)即可;304、溢出處理及數(shù)據(jù)交換。檢查上一級(jí)(對(duì)第一級(jí)來(lái)說(shuō),沒(méi)有上一級(jí),自然也沒(méi)有溢出處理)運(yùn)算中的溢出標(biāo)志位(overflow),如果不為O,則需要進(jìn)行右移操作(即縮小輸入數(shù)據(jù)為原來(lái)大小的1/2、1/4等);數(shù)據(jù)交換,則是根據(jù)交換標(biāo)識(shí)(Data—modify)對(duì)當(dāng)前ram_data中讀取過(guò)來(lái)的2個(gè)數(shù)據(jù)做交換操作,即X(K)=&(K)±WNkX2(K)中的&有可能來(lái)自存儲(chǔ)前N/2個(gè)結(jié)果的存儲(chǔ)單元,也可能來(lái)自存儲(chǔ)后N/2個(gè)結(jié)果的存儲(chǔ)單元,同理對(duì)X2也是這樣,這個(gè)取決于拓補(bǔ)結(jié)構(gòu)的選取和硬件存儲(chǔ)的策略。305、蝶形運(yùn)算。經(jīng)過(guò)前3步驟的處理后,當(dāng)前輸入數(shù)據(jù)即為該級(jí)蝶形運(yùn)算的合適數(shù)據(jù),根據(jù)數(shù)學(xué)表達(dá)式進(jìn)行相應(yīng)的復(fù)數(shù)乘法、加減即可;306、數(shù)據(jù)交換及溢出判斷。首先判斷當(dāng)前運(yùn)算級(jí)別(class—cnt),如果不是第n級(jí)運(yùn)算,即不是FFT/IFFT運(yùn)算的最后一級(jí),則需要讓當(dāng)前運(yùn)算的中間結(jié)果經(jīng)過(guò)交換單元2,根據(jù)交換標(biāo)識(shí)Ex—en進(jìn)行交換處理。這個(gè)主要是考慮到硬件設(shè)計(jì)中單口存儲(chǔ)單元存儲(chǔ)規(guī)則_不能同時(shí)往一個(gè)存儲(chǔ)單元寫(xiě)入兩個(gè)數(shù)據(jù)、不能同時(shí)從一個(gè)存儲(chǔ)單元中讀取兩個(gè)數(shù)據(jù)。溢出判斷的同時(shí),對(duì)指定專(zhuān)門(mén)寄存器進(jìn)行賦值,以指示當(dāng)前級(jí)FFT/IFFT運(yùn)算數(shù)據(jù)有無(wú)溢出、溢出了多少倍數(shù)。307、在運(yùn)行到第n級(jí)(即最后一級(jí))之前,數(shù)據(jù)處理在303306這四個(gè)步驟中反復(fù)循環(huán);直到運(yùn)行到最后一級(jí)FFT/IFFT,進(jìn)行數(shù)據(jù)倍數(shù)的整體補(bǔ)償;并通過(guò)判斷當(dāng)前是否進(jìn)行IFFT運(yùn)算是則進(jìn)行共軛處理,否則將輸出數(shù)據(jù)至ram—data中,作為最終對(duì)外接口ram,提供FFT/IFFT運(yùn)算的結(jié)果數(shù)據(jù)。以上就是本發(fā)明的FFT/IFFT硬件裝置對(duì)數(shù)據(jù)處理的詳細(xì)過(guò)程。經(jīng)過(guò)該FFT/IFFT硬件裝置的計(jì)算處理,可以由自然順序的數(shù)據(jù)流輸入,得到最終還是自然順序的數(shù)據(jù)流輸出。在TD-SCDMA移動(dòng)通信基帶處理系統(tǒng)的下行數(shù)據(jù)接收與碼片級(jí)數(shù)據(jù)解調(diào)過(guò)程中,首先需要根據(jù)接收到天線數(shù)據(jù)中midamble碼部分的偏移,初步對(duì)傳輸信道的信道系數(shù)做出估計(jì)計(jì)算,即基于小區(qū)的信道系數(shù)估計(jì)過(guò)程。在信道估計(jì)運(yùn)算里,首先就是對(duì)當(dāng)前接收midamble碼的FFT變換,將接收到的時(shí)域數(shù)據(jù)轉(zhuǎn)換為頻域形式,以方便后續(xù)算法規(guī)定的數(shù)據(jù)處理流程;稍后的數(shù)據(jù)處理中,又需要將中間階段結(jié)果由頻域轉(zhuǎn)化為時(shí)域(IFFT),以完成基于噪聲功率門(mén)限的小區(qū)有效徑判決過(guò)程,這里就需要用到FFT/IFFT的運(yùn)算處理。另外,由于TD-SCDMA移動(dòng)通信基帶處理系統(tǒng)是基于時(shí)隙單位對(duì)數(shù)據(jù)進(jìn)行處理的,所以作為下行數(shù)據(jù)處理的一部分,在以上的應(yīng)用中,F(xiàn)FT/IFFT模塊的數(shù)據(jù)處理時(shí)間必須嚴(yán)格控制在一定的范圍之內(nèi),以保證在下一個(gè)時(shí)隙天線數(shù)據(jù)到來(lái)之前,完整完成當(dāng)前時(shí)隙的所有數(shù)據(jù)處理?;谝陨系膶?shí)際設(shè)計(jì)要求,下面對(duì)FFT/IFFT裝置的硬件設(shè)計(jì)進(jìn)行實(shí)際分析。第一、確定N點(diǎn)FFT/IFFT計(jì)算的N值,并確定蝶形運(yùn)算單元的并行度模塊處理均基于接收天線數(shù)據(jù)midamble碼部分?jǐn)?shù)據(jù),即N=128,需要做7級(jí)FFT/IFFT的運(yùn)算。TD-SCDMA協(xié)議中規(guī)定,必須在下一個(gè)時(shí)隙midamb1e碼到來(lái)之前完成當(dāng)前時(shí)隙的小區(qū)信道估計(jì)過(guò)程,如圖4所示天線數(shù)據(jù)中數(shù)據(jù)域datal為352chips,中間碼midamble的區(qū)域?yàn)?44chips,data2也是352chips,另外還有16chips的保護(hù)間隔GP。根據(jù)此原則,一個(gè)時(shí)隙內(nèi)留給信道估計(jì)模塊的最多時(shí)鐘資源總數(shù)為352+16+352=720chips,,如藍(lán)線區(qū)域所示。假設(shè)采用32倍的時(shí)鐘頻率,則最多共有720x32=23040clks時(shí)鐘資源來(lái)完成所有四個(gè)小區(qū)的信道估計(jì)處理過(guò)程。通過(guò)分析算法描述可知,共需要做33次FFT/IFFT,而單個(gè)蝶形單元帶來(lái)的硬件設(shè)計(jì)耗費(fèi)時(shí)鐘資源大概是(128/2)*7=448clks,448x33=14784<<23040,為了節(jié)省硬件資源,本發(fā)明考慮使用單蝶形單元的硬件設(shè)計(jì)。2、逆序讀取單元硬件實(shí)現(xiàn)上,就是實(shí)現(xiàn)一個(gè)對(duì)工作時(shí)鐘上升沿(或下降沿)進(jìn)行計(jì)數(shù)的7位計(jì)數(shù)器MA_Rd_cnt[5:0],并在每次讀取midamb1e數(shù)據(jù)時(shí)把MA_Rd_cnt[5:0]按位倒序作為midamble數(shù)據(jù)的讀地址的bit部分,即CHE_MAB_RdAddr[6:0]={1'b0(或1'bl),MA_Rd_cnt[,MA_Rd_cnt[[1],MA_Rd_cnt[[2],MA_Rd_cnt[[3],MA_Rd_cnt[[4],MA_Rd_cnt[[5]},這樣第一次讀出第0(7'b000_0000)和64(7'bl00_0000)個(gè)碼片數(shù)據(jù),第二次讀出第32(7'b010J)000)和96(7'bllOJ)000)個(gè)碼片數(shù)據(jù),第三次讀出第16(7'b001_0000)和80(7,bl01_0000)個(gè)碼片數(shù)據(jù)......,等等,即把數(shù)據(jù)0-127(7,b000_0000—7,dlll_llll)的倒序,如7,b000_0000->7,b000_0000,7,b000_0001->7,blOOJ)OOO,即為0_>0,1_>64,第1次讀出的數(shù)據(jù);7,b000_0010->7,b010_000,7,b000_0011->7,bll0_0000,即為2_>32,3->96,第2次讀出的數(shù)據(jù);7,b000_0100->7,b001_0000,7,b000_0101->7,bl01_0000,即為4->16,5->80,第3次讀出的數(shù)據(jù)......,等等,一直到7'blll_1110->7'b011_llll,7'blll_llll->7,bllljlll,即為126->63,127->127,第64次讀出的數(shù)據(jù),從而完成了全部128個(gè)midamble數(shù)據(jù)的讀取過(guò)程。3、旋轉(zhuǎn)因子和對(duì)中間結(jié)果存儲(chǔ)寫(xiě)控制信息FFT/IFFT中蝶型運(yùn)算X(K)=X!(K)±WNkX2(K),共完成7級(jí)(128點(diǎn))FFT的運(yùn)算過(guò)程。對(duì)128點(diǎn)時(shí)域數(shù)據(jù)的FFT變換蝶形運(yùn)算分析后,可得出在每一級(jí)的蝶形運(yùn)算中,WNk的值其變化規(guī)律如下、共64個(gè);一倍數(shù)為W^°、W12832,如此反復(fù),共64個(gè);一倍數(shù)為W12832〕、W12816、W12832、W12848,如此反復(fù),共64個(gè);—倍數(shù)為W128160、W19S8、W,—"共64個(gè)"128W2"128Wi"128的值分別為-w12的值分別為-w12的值分別為-w12:的值分別為-w12倍數(shù)為W,8第五級(jí)w/的值分別為-w工第一級(jí)W,第二級(jí)W,第三級(jí)W,第四級(jí)W,第六級(jí)w/的值分別為-w工第七級(jí)w/的值分別為-w^W』4、W徴32、WJUU,如此反復(fù),.W1284、W1288……W1286°,如此反復(fù),共64個(gè);一倍數(shù)為W1282,W1284……W12862,如此反復(fù),共64個(gè)「倍數(shù)為W,1,W1282……WC如此反復(fù),共64個(gè)。一倍數(shù)為基于硬件資源的總體考慮,以及相關(guān)參與運(yùn)算信號(hào)產(chǎn)生的實(shí)時(shí)性要求,在硬件設(shè)14計(jì)上,采取把上述共7級(jí)蝶型運(yùn)算用到的旋轉(zhuǎn)因子WNk的值,用運(yùn)算信息預(yù)存rom單元(深度64*7=448)存儲(chǔ)起來(lái),然后再在相應(yīng)的運(yùn)算周期按順序讀取并參與運(yùn)算即可。中間結(jié)果存儲(chǔ)寫(xiě)控制信息包括3個(gè)方面Datajiiodify,用于圖2框圖中交換單元l,告知每一次下一級(jí)蝶型運(yùn)算的輸入數(shù)據(jù)是否需要進(jìn)行相互調(diào)換位置;Ex—en,用于圖2框圖中交換單元2,告知每一次蝶型運(yùn)算的輸出中間結(jié)果數(shù)據(jù)是否需要進(jìn)行相互調(diào)換位置送至ram_data單元存儲(chǔ);Data_wraddr用于指示逐級(jí)運(yùn)算的中間結(jié)果應(yīng)該寫(xiě)向ram_data的哪一個(gè)具體存儲(chǔ)單元。對(duì)完整128點(diǎn)碼片數(shù)據(jù)的七級(jí)(Class_cnt[2:0]=0—6)、每級(jí)64(time_cnt)個(gè)蝶形運(yùn)算過(guò)程,可用如下控制狀態(tài)表來(lái)確定Datajiiodify、Ex—en以及Data—wraddr的取值,如下表1:<table>tableseeoriginaldocumentpage15</column></row><table><table>tableseeoriginaldocumentpage16</column></row><table><table>tableseeoriginaldocumentpage17</column></row><table>表l上表為第一級(jí)FFT/IFFT變換所設(shè)計(jì)的中間結(jié)果存儲(chǔ)寫(xiě)控制信息舉例,其他級(jí)數(shù)的FFT變換,其使用到的上述信息按照算法要求的運(yùn)算過(guò)程給出即可,同上表類(lèi)似。4、溢出判斷及處理單元首先說(shuō)明數(shù)據(jù)溢出的判斷。在完成蝶形運(yùn)算后,OverflowO-3分別對(duì)輸出的兩個(gè)復(fù)數(shù)結(jié)果數(shù)據(jù)的實(shí)部、虛部均進(jìn)行是否溢出的判斷,如下(1)如當(dāng)前被判斷的數(shù)據(jù)(實(shí)部或者虛部的數(shù)值)為正數(shù)一-即最高位符號(hào)位為0時(shí),則對(duì)最高位的下一位進(jìn)行判斷如為l,則表示溢出1位;如為O,則表示沒(méi)有溢出;(2)如當(dāng)前被判斷的數(shù)據(jù)(實(shí)部或者虛部的數(shù)值)為負(fù)數(shù)-一即最高位符號(hào)位為1時(shí),則對(duì)最高位的下一位進(jìn)行判斷如為O,則表示溢出1位;如為l,則表示沒(méi)有溢出。然后對(duì)OverflowO-3各自輸出的2bits的數(shù)據(jù)進(jìn)行或運(yùn)算,即每個(gè)蝶形計(jì)算輸出的2個(gè)復(fù)數(shù)數(shù)據(jù),只要有其中的任何一個(gè)實(shí)部或者虛部發(fā)生了溢出,則通過(guò)輸出本組數(shù)據(jù)對(duì)應(yīng)的溢出操作控制信號(hào)Bitjiiodify,在下一次對(duì)該組數(shù)據(jù)讀出后、操作前,進(jìn)行相應(yīng)的移位處理。數(shù)據(jù)溢出的補(bǔ)償處理。在FFT/IFFT運(yùn)算的第一級(jí),數(shù)據(jù)初始輸入,沒(méi)有溢出處理,數(shù)據(jù)透明通過(guò)溢出處理單元。然后從第二級(jí)到最后一級(jí),在每級(jí)數(shù)據(jù)輸入后、蝶型運(yùn)算前,判斷上一級(jí)對(duì)運(yùn)算的溢出操作控制信號(hào)Bit—modify進(jìn)行判斷,如果為l,說(shuō)明數(shù)據(jù)溢出1位,則對(duì)該級(jí)數(shù)據(jù)進(jìn)行右移lbit;否則Bit—modify為0,說(shuō)明上一級(jí)運(yùn)算沒(méi)有溢出,輸入數(shù)據(jù)直接進(jìn)入蝶型運(yùn)算單元。以上即為FFT/IFFT內(nèi)部的四個(gè)特定功能單元的設(shè)計(jì)和實(shí)現(xiàn),其對(duì)數(shù)據(jù)處理的詳細(xì)硬件設(shè)計(jì)電路如圖5所示倒序讀入的兩個(gè)數(shù)據(jù)FFT_data_inl和FFT_data_in2,進(jìn)入選擇單元,根據(jù)rom中固化的控制信息data_modify,來(lái)判斷FFT_data_inl和FFT_data_in2是否需要調(diào)換進(jìn)入蝶型運(yùn)算單元的數(shù)據(jù)位置;調(diào)整完畢后,進(jìn)入溢出處理單元,根據(jù)上一級(jí)溢出操作控制信號(hào)Bitjiiodify,進(jìn)行數(shù)據(jù)倍數(shù)大小的縮減控制;然后進(jìn)入蝶型運(yùn)算單元,與旋轉(zhuǎn)因子配合,進(jìn)行復(fù)數(shù)乘法、加減的運(yùn)算;然后順據(jù)進(jìn)入溢出判斷單元,并對(duì)應(yīng)置17位Bit_modify控制位,完成后就把該級(jí)計(jì)算結(jié)果回存到ram—data中,循環(huán)進(jìn)行下一級(jí)的FFT/IFFT運(yùn)算......如此反復(fù)經(jīng)過(guò)硬件電路,完整完成第17級(jí)的FFT/IFFT計(jì)算過(guò)程。整個(gè)模塊運(yùn)算耗費(fèi)時(shí)鐘數(shù)為485clks,最后總的模塊耗用時(shí)鐘資源19332clks(小于23040clks),滿足設(shè)計(jì)需要;硬件電路規(guī)模為12.57k門(mén),最高時(shí)鐘頻率99.372MHz,綜合報(bào)告如下表2:<table>tableseeoriginaldocumentpage18</column></row><table>表2本發(fā)明提供的技術(shù)方案克服了現(xiàn)有技術(shù)對(duì)硬件裝置要求過(guò)高且算法及處理復(fù)雜等缺陷,基本上只需按照上述思路,就可做出符合較高實(shí)時(shí)性要求的FFT/IFFT硬件電路,且節(jié)省了硬件資源及提高了系統(tǒng)的可靠性。以上實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案而非限制,僅僅參照較佳實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)說(shuō)明。本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解,可以對(duì)本發(fā)明的技術(shù)方案進(jìn)行修改或者等同替換,而不脫離本發(fā)明技術(shù)方案的精神和范圍,均應(yīng)涵蓋在本發(fā)明的權(quán)利要求范圍當(dāng)中。權(quán)利要求一種實(shí)現(xiàn)快速傅立葉變換的硬件裝置,其特征在于,該裝置包括依次相連的逆序讀取單元、處理結(jié)果存儲(chǔ)單元、運(yùn)算單元;所述處理結(jié)果存儲(chǔ)單元,包括第一RAM存儲(chǔ)單元和第二RAM存儲(chǔ)單元;所述逆序讀取單元,用于產(chǎn)生逆序讀取過(guò)程的讀地址,按此讀地址逆序讀取自然順序的輸入數(shù)據(jù)并自上而下地寫(xiě)入處理結(jié)果存儲(chǔ)單元中,且每次僅讀取兩個(gè)輸入數(shù)據(jù)并將所讀取的兩數(shù)據(jù)分別寫(xiě)入第一RAM存儲(chǔ)單元和第二RAM存儲(chǔ)單元中;所述第一RAM存儲(chǔ)單元和第二RAM存儲(chǔ)單元,均用于存儲(chǔ)所述逆序讀取單元所讀取的輸入數(shù)據(jù)、運(yùn)算單元所執(zhí)行的各級(jí)蝶形運(yùn)算的運(yùn)算結(jié)果;還用于提供對(duì)外接口,用以輸出運(yùn)算結(jié)果;所述運(yùn)算單元,用于按照所述輸入數(shù)據(jù)的點(diǎn)數(shù)N進(jìn)行n級(jí)迭代的蝶形運(yùn)算,在每級(jí)的每次蝶形運(yùn)算過(guò)程中,從所述處理結(jié)果存儲(chǔ)單元讀取兩個(gè)數(shù)據(jù)作為當(dāng)前蝶形運(yùn)算的待處理數(shù)據(jù);并將每級(jí)的運(yùn)算結(jié)果分別寫(xiě)入第一RAM存儲(chǔ)單元和第二RAM存儲(chǔ)單元中,以作為下一級(jí)蝶形運(yùn)算的待處理數(shù)據(jù);所述N等于2的n次冪。2.如權(quán)利要求1所述的實(shí)現(xiàn)快速傅立葉變換的硬件裝置,其特征在于,所述運(yùn)算單元包括依次相連的溢出處理單元、第一交換單元、蝶形運(yùn)算單元、第二交換單元、溢出判斷單元;還包括與第二交換單元相連的整體補(bǔ)償單元、與蝶形運(yùn)算單元相連的運(yùn)算信息預(yù)存rom單元、與第一交換單元相連的第一控制單元、與第二交換單元相連的第二控制單元;且所述溢出處理單元、溢出判斷單元、整體補(bǔ)償單元均分別與所述處理結(jié)果存儲(chǔ)單元相連;所述溢出處理單元,用于在進(jìn)行第2至n級(jí)蝶形運(yùn)算時(shí),根據(jù)相應(yīng)的溢出標(biāo)志位對(duì)當(dāng)前蝶形運(yùn)算的待處理數(shù)據(jù)進(jìn)行溢出處理操作;所述第一控制單元,用于預(yù)存各級(jí)運(yùn)算中所使用的第一交換標(biāo)識(shí)信息,據(jù)此控制第一交換單元對(duì)當(dāng)前的待處理數(shù)據(jù)進(jìn)行交換或者還原操作;所述第一交換單元,用于對(duì)當(dāng)前兩個(gè)待處理數(shù)據(jù)進(jìn)行交換或還原操作后分別作為XJK)和&(K)送至蝶形運(yùn)算單元,所述K表示本級(jí)運(yùn)算中當(dāng)前蝶形運(yùn)算的次數(shù);所述運(yùn)算信息預(yù)存rom單元,用于預(yù)存各級(jí)蝶形運(yùn)算中所使用的旋轉(zhuǎn)因子WNk;還用于存儲(chǔ)各級(jí)的運(yùn)算結(jié)果在處理結(jié)果存儲(chǔ)單元中對(duì)應(yīng)的存儲(chǔ)位置;所述蝶形運(yùn)算單元,用于獲取對(duì)應(yīng)的旋轉(zhuǎn)因子W/,按照X(K)二^(K)士W/^(K)進(jìn)行蝶形運(yùn)算,并輸出運(yùn)算結(jié)果<formula>formulaseeoriginaldocumentpage2</formula>所述第二控制單元,用于預(yù)存各級(jí)運(yùn)算中所使用的第二交換標(biāo)識(shí)信息和運(yùn)算結(jié)果的具體存儲(chǔ)地址信息,控制第二交換單元對(duì)當(dāng)前的運(yùn)算結(jié)果進(jìn)行交換或者還原操作,并告知第二交換單元當(dāng)前運(yùn)算結(jié)果在處理結(jié)果存儲(chǔ)單元中預(yù)設(shè)的具體存儲(chǔ)地址;所述第二交換單元,用于在第1至n-l級(jí)蝶形運(yùn)算過(guò)程中,對(duì)所述蝶形運(yùn)算單元當(dāng)前的兩個(gè)運(yùn)算結(jié)果進(jìn)行交換或者還原操作,之后將其送至溢出判斷單元或者整體補(bǔ)償單元;所述溢出判斷單元,用于在第1至n-l級(jí)蝶形運(yùn)算過(guò)程中,判斷蝶形運(yùn)算單元當(dāng)前的兩個(gè)運(yùn)算結(jié)果是否溢出,根據(jù)判斷結(jié)果設(shè)置相應(yīng)的溢出標(biāo)志位并存儲(chǔ),之后將運(yùn)算結(jié)果分別寫(xiě)入第一RAM存儲(chǔ)單元和第二RAM存儲(chǔ)單元中預(yù)設(shè)的具體存儲(chǔ)地址;所述整體補(bǔ)償單元,用于在第n級(jí)蝶形運(yùn)算過(guò)程中,根據(jù)之前各級(jí)的溢出處理操作時(shí)采用的縮小倍數(shù)對(duì)蝶形運(yùn)算單元當(dāng)前的運(yùn)算結(jié)果進(jìn)行數(shù)據(jù)放大補(bǔ)償,之后將運(yùn)算結(jié)果分別寫(xiě)入第一RAM存儲(chǔ)單元和第二RAM存儲(chǔ)單元中預(yù)設(shè)的具體存儲(chǔ)地址。3.—種實(shí)現(xiàn)快速傅立葉變換的方法,其特征在于,該方法包括以下步驟A、確定當(dāng)前進(jìn)行快速傅立葉變換運(yùn)算的輸入數(shù)據(jù)的點(diǎn)數(shù)N,所述N等于2的n次冪;B、產(chǎn)生逆序讀取過(guò)程的讀地址,按此讀地址逆序讀取自然順序的輸入數(shù)據(jù)并自上而下地寫(xiě)入處理結(jié)果存儲(chǔ)單元中,且每次僅讀取兩個(gè)輸入數(shù)據(jù)并將讀取的兩數(shù)據(jù)分別寫(xiě)入處理結(jié)果存儲(chǔ)單元的第一RAM存儲(chǔ)單元和第二RAM存儲(chǔ)單元;C、按照所述輸入數(shù)據(jù)的點(diǎn)數(shù)N進(jìn)行n級(jí)迭代蝶形運(yùn)算,在每級(jí)的每次蝶形運(yùn)算過(guò)程中,從所述第一RAM存儲(chǔ)單元和第二RAM存儲(chǔ)單元分別讀取一個(gè)數(shù)據(jù)作為當(dāng)前蝶形運(yùn)算的待處理數(shù)據(jù);并將每級(jí)的運(yùn)算結(jié)果分別寫(xiě)入第一RAM存儲(chǔ)單元和第二RAM存儲(chǔ)單元中預(yù)設(shè)的具體存儲(chǔ)地址,以作為下一級(jí)蝶形運(yùn)算的待處理數(shù)據(jù)。4.如權(quán)利要求3所述的實(shí)現(xiàn)快速傅立葉變換的方法,其特征在于,所述步驟C包括Cl、從所述第一RAM存儲(chǔ)單元和第二RAM存儲(chǔ)單元分別讀取一個(gè)數(shù)據(jù)作為當(dāng)前蝶形運(yùn)算的待處理數(shù)據(jù);C2、對(duì)所讀取的兩個(gè)數(shù)據(jù)進(jìn)行溢出處理及數(shù)據(jù)交換操作后分別作為&(K)和X2(K)送至蝶形運(yùn)算單元,所述K表示本級(jí)運(yùn)算中當(dāng)前蝶形運(yùn)算的次數(shù);C3、從運(yùn)算信息預(yù)存rom單元中提取預(yù)存的本級(jí)運(yùn)算中所使用的旋轉(zhuǎn)因子W/,按照X(K)±WNkX2(K)進(jìn)行蝶形運(yùn)算,并輸出運(yùn)算結(jié)果&(K)+W/X2(K)禾P&(K)_WNkX2(K);C4、對(duì)所述兩個(gè)運(yùn)算結(jié)果進(jìn)行數(shù)據(jù)交換及溢出判斷操作,根據(jù)判斷結(jié)果設(shè)置相應(yīng)的溢出標(biāo)志位;C4、將所述運(yùn)算結(jié)果分別存儲(chǔ)至第一RAM存儲(chǔ)單元和第二RAM存儲(chǔ)單元中預(yù)設(shè)的具體存儲(chǔ)地址,作為下一級(jí)蝶形運(yùn)算的待處理數(shù)據(jù);C5、重復(fù)步驟CI至C4,直至運(yùn)行到第n級(jí)蝶形運(yùn)算結(jié)束后,對(duì)本級(jí)的運(yùn)算結(jié)果進(jìn)行數(shù)據(jù)倍數(shù)的整體補(bǔ)償。5.—種實(shí)現(xiàn)快速傅立葉反變換的硬件裝置,其特征在于,該裝置包括依次相連的逆序讀取單元、共軛處理單元、處理結(jié)果存儲(chǔ)單元、運(yùn)算單元;所述處理結(jié)果存儲(chǔ)單元,包括第一RAM存儲(chǔ)單元和第二RAM存儲(chǔ)單元;所述逆序讀取單元,用于產(chǎn)生逆序讀取過(guò)程的讀地址,按此讀地址逆序讀取自然順序的輸入數(shù)據(jù)并將所讀取的數(shù)據(jù)經(jīng)共軛處理單元處理后自上而下地寫(xiě)入處理結(jié)果存儲(chǔ)單元中,且每次僅讀取兩個(gè)輸入數(shù)據(jù)并將所讀取的兩數(shù)據(jù)經(jīng)共軛處理單元處理后分別寫(xiě)入第一RAM存儲(chǔ)單元和第二RAM存儲(chǔ)單元中;所述共軛處理單元,用于對(duì)逆序讀取單元所讀取的輸入數(shù)據(jù)進(jìn)行共軛處理操作,還用于對(duì)第n級(jí)蝶形運(yùn)算的運(yùn)算結(jié)果進(jìn)行共軛處理操作后寫(xiě)入第一RAM存儲(chǔ)單元和第二RAM存儲(chǔ)單元;所述第一RAM存儲(chǔ)單元和第二RAM存儲(chǔ)單元,均用于存儲(chǔ)所述逆序讀取單元所讀取的經(jīng)共軛處理的輸入數(shù)據(jù)、運(yùn)算單元所執(zhí)行的各級(jí)蝶形運(yùn)算的運(yùn)算結(jié)果;還用于提供對(duì)外接口,用以輸出運(yùn)算結(jié)果;所述運(yùn)算單元,用于按照所述輸入數(shù)據(jù)的點(diǎn)數(shù)N進(jìn)行n級(jí)的蝶形運(yùn)算,在每級(jí)的每次蝶形運(yùn)算過(guò)程中,從所述處理結(jié)果存儲(chǔ)單元讀取兩個(gè)數(shù)據(jù)作為當(dāng)前蝶形運(yùn)算的待處理數(shù)據(jù);并將每級(jí)的運(yùn)算結(jié)果分別寫(xiě)入第一RAM存儲(chǔ)單元和第二RAM存儲(chǔ)單元中,以作為下一級(jí)蝶形運(yùn)算的待處理數(shù)據(jù);且在進(jìn)行第n級(jí)蝶形運(yùn)算時(shí),將本級(jí)的運(yùn)算結(jié)果經(jīng)共軛處理單元處理后再分別寫(xiě)入第一RAM存儲(chǔ)單元和第二RAM存儲(chǔ)單元中預(yù)設(shè)的具體存儲(chǔ)地址;所述N等于2的n次冪。6.如權(quán)利要求5所述的實(shí)現(xiàn)快速傅立葉變換的硬件裝置,其特征在于,所述運(yùn)算單元包括依次相連的溢出處理單元、第一交換單元、蝶形運(yùn)算單元、第二交換單元、溢出判斷單元;還包括與第二交換單元相連的整體補(bǔ)償單元、與蝶形運(yùn)算單元相連的運(yùn)算信息預(yù)存rom單元、與第一交換單元相連的第一控制單元、與第二交換單元相連的第二控制單元;且所述溢出處理單元、溢出判斷單元均分別與所述處理結(jié)果存儲(chǔ)單元相連,所述整體補(bǔ)償單元還與共軛處理單元相連;所述溢出處理單元,用于在進(jìn)行第2至n級(jí)蝶形運(yùn)算時(shí),根據(jù)上一級(jí)蝶形運(yùn)算后設(shè)置的相應(yīng)的溢出標(biāo)志位對(duì)當(dāng)前蝶形運(yùn)算的待處理數(shù)據(jù)進(jìn)行溢出處理操作;所述第一控制單元,用于預(yù)存各級(jí)運(yùn)算中所使用的第一交換標(biāo)識(shí)信息,據(jù)此控制第一交換單元對(duì)當(dāng)前的待處理數(shù)據(jù)進(jìn)行交換或者還原操作;所述第一交換單元,用于對(duì)當(dāng)前兩個(gè)待處理數(shù)據(jù)進(jìn)行交換或還原操作后分別作為XJK)和X2(K)送至蝶形運(yùn)算單元,所述K表示本級(jí)運(yùn)算中當(dāng)前蝶形運(yùn)算的次數(shù);所述運(yùn)算信息預(yù)存rom單元,用于預(yù)存各級(jí)蝶形運(yùn)算中所使用的旋轉(zhuǎn)因子WNk;還用于存儲(chǔ)每級(jí)的運(yùn)算結(jié)果在處理結(jié)果存儲(chǔ)單元中對(duì)應(yīng)的存儲(chǔ)位置;所述蝶形運(yùn)算單元,用于按照X(K)二&(K)士W;^(K)進(jìn)行蝶形運(yùn)算,并輸出運(yùn)算結(jié)果X丄(K)+WNkX2(K)和X丄(K)-WNkX2(K);所述第二控制單元,用于預(yù)存各級(jí)運(yùn)算中所使用的第二交換標(biāo)識(shí)信息和運(yùn)算結(jié)果的具體存儲(chǔ)地址信息,控制第二交換單元對(duì)當(dāng)前的運(yùn)算結(jié)果進(jìn)行交換或者還原操作,并告知第二交換單元當(dāng)前運(yùn)算結(jié)果在處理結(jié)果存儲(chǔ)單元中預(yù)設(shè)的具體存儲(chǔ)地址;所述第二交換單元,用于在第1至n-l級(jí)蝶形運(yùn)算過(guò)程中,對(duì)所述蝶形運(yùn)算單元當(dāng)前的兩個(gè)運(yùn)算結(jié)果進(jìn)行交換操作,之后將其送至溢出判斷單元或者整體補(bǔ)償單元;所述溢出判斷單元,用于在第1至n-l級(jí)蝶形運(yùn)算過(guò)程中,判斷蝶形運(yùn)算單元當(dāng)前的兩個(gè)運(yùn)算結(jié)果是否溢出,根據(jù)判斷結(jié)果設(shè)置相應(yīng)的溢出標(biāo)志位并存儲(chǔ),之后將運(yùn)算結(jié)果分別寫(xiě)入第一RAM存儲(chǔ)單元和第二RAM存儲(chǔ)單元中預(yù)設(shè)的具體存儲(chǔ)地址;所述整體補(bǔ)償單元,用于在第n級(jí)蝶形運(yùn)算過(guò)程中,根據(jù)之前各級(jí)的溢出處理操作時(shí)采用的縮小倍數(shù)對(duì)蝶形運(yùn)算單元當(dāng)前的運(yùn)算結(jié)果進(jìn)行數(shù)據(jù)放大補(bǔ)償,之后將運(yùn)算結(jié)果送至所述共軛處理單元。7.—種實(shí)現(xiàn)快速傅立葉反變換的方法,其特征在于,該方法包括以下步驟a、確定當(dāng)前進(jìn)行快速傅立葉反變換運(yùn)算的輸入數(shù)據(jù)的點(diǎn)數(shù)N,所述N等于2的n次冪;b、產(chǎn)生逆序讀取過(guò)程的讀地址,按此讀地址逆序讀取自然順序的輸入數(shù)據(jù),對(duì)所讀取的輸入數(shù)據(jù)進(jìn)行共軛處理后自上而下地寫(xiě)入處理結(jié)果存儲(chǔ)單元中,且每次僅讀取兩個(gè)輸入數(shù)據(jù)并將其分別寫(xiě)入處理結(jié)果存儲(chǔ)單元的第一RAM存儲(chǔ)單元和第二RAM存儲(chǔ)單元;c、按照所述輸入數(shù)據(jù)的點(diǎn)數(shù)N進(jìn)行n級(jí)迭代蝶形運(yùn)算,在每級(jí)的每次蝶形運(yùn)算過(guò)程中,從所述第一RAM存儲(chǔ)單元和第二RAM存儲(chǔ)單元分別讀取一個(gè)數(shù)據(jù)作為當(dāng)前蝶形運(yùn)算的待處理數(shù)據(jù);并將每級(jí)的運(yùn)算結(jié)果分別寫(xiě)入第一RAM存儲(chǔ)單元和第二RAM存儲(chǔ)單元中,以作為下一級(jí)蝶形運(yùn)算的待處理數(shù)據(jù);且在進(jìn)行第n級(jí)蝶形運(yùn)算時(shí),對(duì)本級(jí)的運(yùn)算結(jié)果進(jìn)行共軛處理后再分別寫(xiě)入第一RAM存儲(chǔ)單元和第二RAM存儲(chǔ)單元。8.如權(quán)利要求7所述的實(shí)現(xiàn)快速傅立葉反變換的方法,其特征在于,所述步驟c包括cl、從所述第一RAM存儲(chǔ)單元和第二RAM存儲(chǔ)單元分別讀取一個(gè)數(shù)據(jù)作為當(dāng)前蝶形運(yùn)算的待處理數(shù)據(jù);c2、對(duì)所讀取的兩個(gè)數(shù)據(jù)進(jìn)行溢出處理及數(shù)據(jù)交換操作后分別作為&(K)和X2(K)送至蝶形運(yùn)算單元,所述K表示本級(jí)運(yùn)算中當(dāng)前蝶形運(yùn)算的次數(shù);c3、從運(yùn)算信息預(yù)存rom單元中提取預(yù)存的本級(jí)運(yùn)算中所使用的旋轉(zhuǎn)因子WNk,按照X(K)±WNkX2(K)進(jìn)行蝶形運(yùn)算,并輸出運(yùn)算結(jié)果&(K)+W/X2(K)禾P&(K)_WNkX2(K);c4、對(duì)所述兩個(gè)運(yùn)算結(jié)果進(jìn)行數(shù)據(jù)交換及溢出判斷操作,根據(jù)判斷結(jié)果設(shè)置相應(yīng)的溢出標(biāo)志位;c4、將所述運(yùn)算結(jié)果分別存儲(chǔ)至第一RAM存儲(chǔ)單元和第二RAM存儲(chǔ)單元中預(yù)設(shè)的具體存儲(chǔ)地址,作為下一級(jí)蝶形運(yùn)算的待處理數(shù)據(jù);c5、重復(fù)步驟cl至c4,直至運(yùn)行至第n級(jí)蝶形運(yùn)算結(jié)束時(shí),對(duì)本級(jí)的運(yùn)算結(jié)果進(jìn)行數(shù)據(jù)倍數(shù)的整體補(bǔ)償,并進(jìn)行共軛處理。全文摘要本發(fā)明公開(kāi)了一種實(shí)現(xiàn)快速傅立葉變換、反變換的硬件裝置及方法,具體方法為A、確定當(dāng)前進(jìn)行FFT運(yùn)算的輸入數(shù)據(jù)的點(diǎn)數(shù)N(N=2n);B、逆序讀取單元產(chǎn)生逆序讀取過(guò)程的讀地址,逆序讀取輸入數(shù)據(jù)并自上而下地寫(xiě)入處理結(jié)果存儲(chǔ)單元中,且每次僅讀兩個(gè)輸入數(shù)據(jù)并將兩數(shù)據(jù)分別寫(xiě)入RAM存儲(chǔ)單元1和2;C、運(yùn)算單元進(jìn)行n級(jí)迭代蝶形運(yùn)算,在每級(jí)的每次蝶形運(yùn)算過(guò)程中,從RAM存儲(chǔ)單元1和2分別讀取一數(shù)據(jù)作為當(dāng)前的待處理數(shù)據(jù);并將每級(jí)的運(yùn)算結(jié)果分別寫(xiě)入RAM存儲(chǔ)單元1和2預(yù)設(shè)的具體存儲(chǔ)地址,作為下一級(jí)運(yùn)算的待處理數(shù)據(jù)。本發(fā)明對(duì)輸入數(shù)據(jù)流沒(méi)有苛刻的順序要求,適合于實(shí)時(shí)計(jì)算的應(yīng)用場(chǎng)合,且節(jié)省了存儲(chǔ)單元的開(kāi)銷(xiāo),具有很強(qiáng)的實(shí)用性。文檔編號(hào)H04L25/03GK101729463SQ20081021707公開(kāi)日2010年6月9日申請(qǐng)日期2008年10月24日優(yōu)先權(quán)日2008年10月24日發(fā)明者古艷濤,孫映先申請(qǐng)人:中興通訊股份有限公司