LTE系統(tǒng)中轉(zhuǎn)換預(yù)編碼的設(shè)計(jì)及實(shí)現(xiàn)
Lte所選擇的上行傳輸方案是一個(gè)新變量:SC-FDMA(單載波-頻分多址)相比于傳統(tǒng)OFDMA其優(yōu)點(diǎn)是既有單載波的低峰均功率比(PAPR),又有多載波的可靠性。在上行鏈路這點(diǎn)特別重要,較低的PAPR可在傳輸功效方面極大提高移動(dòng)終端的性能,因此可延長(zhǎng)電池使用壽命。代表LTE物理上行共享信道(PUSCH)的基帶信號(hào)產(chǎn)生過(guò)程如圖1所示[1]。
本文引用地址:http://butianyuan.cn/article/148763.htm圖1中的轉(zhuǎn)換預(yù)編碼是由一種對(duì)稱(chēng)形式DFT完成,其種類(lèi)及變換長(zhǎng)度L=2k1×3k2×5k3(L≤1 200)見(jiàn)表1。
轉(zhuǎn)換預(yù)編碼是根據(jù)不同的輸入長(zhǎng)度L動(dòng)態(tài)地執(zhí)行表1中的一種DFT。其主要特點(diǎn)是包含的DFT種類(lèi)多、規(guī)模龐大,這給硬件設(shè)計(jì)帶來(lái)挑戰(zhàn)。以前的文獻(xiàn)大都以基2或單個(gè)混合基FFT[6]為重點(diǎn)進(jìn)行闡述,而以多種混合基FFT為核心的文章還很難發(fā)現(xiàn)。本文提出一種基于FPGA的轉(zhuǎn)換預(yù)編碼解決方案。
1 算法選擇
Cooley-Tukey算法和Good-Thomas算法是當(dāng)前流行的FFT算法,文獻(xiàn)[2]中已對(duì)其原理進(jìn)行過(guò)深入討論,這里不再贅述。
(1)Cooley-Tukey算法具有良好的模塊性,并且可以實(shí)現(xiàn)原位計(jì)算,對(duì)輸入數(shù)據(jù)以及旋轉(zhuǎn)因子的抽取具有規(guī)律性。文獻(xiàn)[3]提出的一種基3 FFT算法是Cooley-Tukey算法應(yīng)用在基3 FFT中的另一種表述。這一算法區(qū)別于其他FFT算法的一個(gè)重要事實(shí)就是因子可以任意選取,通用性強(qiáng),且所有的運(yùn)算單元均相同,易于實(shí)現(xiàn)。
(2)Good-Thomas算法只適合因子互質(zhì)的情況,由于避免了中間級(jí)乘旋轉(zhuǎn)因子的運(yùn)算,因此比Cooley-Tukey算法的運(yùn)算次數(shù)少得多。FFT點(diǎn)數(shù)越大,越能體現(xiàn)其在節(jié)省資源方面的優(yōu)點(diǎn)。
文獻(xiàn)[4]提出一種基于Cooley-Tukey算法的傳輸預(yù)編碼解決方案。此方案的優(yōu)點(diǎn)是操作簡(jiǎn)單、模塊規(guī)則、利于編程實(shí)現(xiàn);缺點(diǎn)是需要做的級(jí)間旋轉(zhuǎn)因子乘法較多(最多達(dá)幾百),乘法器和存儲(chǔ)器等硬件資源開(kāi)銷(xiāo)較大,同時(shí)將大大增加系數(shù)初始化的工作量。對(duì)幾種不同長(zhǎng)度FFT運(yùn)算量進(jìn)行比較見(jiàn)表2。
表2中的混合算法指Good-Thomas算法與Cooley-Tukey算法相結(jié)合。可以看出,Good-Thomas算法與Cooley-Tukey算法相結(jié)合與文獻(xiàn)[4]相比,減少了級(jí)間旋轉(zhuǎn)因子乘法數(shù),可以有效降低運(yùn)算量,這些運(yùn)算量的降低對(duì)整個(gè)系統(tǒng)的實(shí)現(xiàn)起著至關(guān)重要的作用,而其付出的代價(jià)只是復(fù)雜度的略微提升。
綜上所述,在實(shí)現(xiàn)混合FFT時(shí),選擇Good-Thomas算法與Cooley-Tukey算法相結(jié)合,且優(yōu)先選擇Good-Thomas算法,其次為Cooley-Tukey算法,系統(tǒng)設(shè)計(jì)將從Good-Thomas算法出發(fā)。
2 總體結(jié)構(gòu)設(shè)計(jì)
從表1中看出,LTE上行轉(zhuǎn)換預(yù)編碼要進(jìn)行的FFT變換種類(lèi)多,但每一種變換的架構(gòu)是相似的,都是由基2及非基2點(diǎn)FFT的公共模塊組成?;?有點(diǎn)數(shù)為4,8,16,32,64,128,256的模塊,非基2的有點(diǎn)數(shù)為3,9,15,27,45,75,81,135,225和243的模塊,只要抽出這些公共模塊并精心設(shè)計(jì),再合理地調(diào)用,就會(huì)順利完成這個(gè)看似繁瑣的工作。
圖2所示總體結(jié)構(gòu)框圖中,模塊A和C分別為數(shù)據(jù)輸入和輸出模塊;模塊B為數(shù)據(jù)處理模塊,其主要思想是動(dòng)態(tài)配置和公共模塊的復(fù)用,內(nèi)部FFT模塊事先單獨(dú)生成,MUX1,MUX2是選擇器,在不同輸入點(diǎn)數(shù)的情況下動(dòng)態(tài)配置不同的內(nèi)部FFT模塊來(lái)組合成外層FFT,這樣內(nèi)部FFT模塊就可以達(dá)到復(fù)用的目的,可以大大減少總體資源耗用,而處理速度也與單獨(dú)執(zhí)行各FFT相當(dāng)。
3 硬件實(shí)現(xiàn)
在實(shí)際應(yīng)用中,一般由FPGA完成需要快速和較為固定的運(yùn)算,由DSP完成靈活多變和運(yùn)算量較大的任務(wù)[7]。Xilinx Virtex-5 SXT平臺(tái)針對(duì)具有低功耗串行連接功能的DSP和存儲(chǔ)器密集型應(yīng)用進(jìn)行了優(yōu)化,具有硬件結(jié)構(gòu)可重構(gòu)的特點(diǎn),適合算法結(jié)構(gòu)固定、運(yùn)算量大的前端數(shù)字信號(hào)處理,可以大量卸載這些功能,釋放DSP帶寬以處理其他功能,所有這一切都使得FPGA在數(shù)字信號(hào)處理領(lǐng)域顯示出自己特有的優(yōu)勢(shì)。
3.1 地址映射
以1 080點(diǎn)FFT在圖2所示系統(tǒng)中的實(shí)現(xiàn)過(guò)程分析系統(tǒng)工作原理。因?yàn)? 080=8×135,且8和135互質(zhì),故外層采用Good-Thomas算法。
輸入地址映射:
FPGA內(nèi)嵌Block RAM的使用可以大大節(jié)省FPGA的可配置邏輯功能塊(CLB)資源。Good-Thomas算法需要對(duì)輸入輸出數(shù)據(jù)進(jìn)行排序,輸入輸出端處理方法相同,這里只介紹輸入端處理。在輸入端,鑒于Block RAM的特征,設(shè)置一個(gè)ROM和RAM,如圖2模塊A所示。對(duì)于不同長(zhǎng)度的FFT,ROM不同,但RAM可以共用。在ROM里預(yù)先存放輸入數(shù)據(jù)在RAM1中的位置序號(hào),此位置序號(hào)由(1)式得到,在時(shí)鐘沿到來(lái)時(shí),先順序讀出存儲(chǔ)在ROM中的位置序號(hào),將此數(shù)作為RAM1的地址輸入,就能將輸入數(shù)據(jù)存放到RAM1中的不同位置。這樣在輸入數(shù)據(jù)的同時(shí)完成了數(shù)據(jù)的排序,一舉兩得。1 080點(diǎn)FFT的輸入和輸出端地址索引如圖2所示,其邏輯時(shí)序圖見(jiàn)圖3。圖3中,RAM_in由測(cè)試數(shù)據(jù)xn_i和xn_r進(jìn)行位拼接后輸入。
3.2 內(nèi)部FFT處理單元
當(dāng)進(jìn)行圖2模塊B中的操作時(shí),內(nèi)部FFT模塊先單獨(dú)生成。Xilinx提供的FFT IP核適用于基2點(diǎn)的FFT變換,其所采用的算法為Cooley-Tukey算法,變換長(zhǎng)度為N=pow2(m),m=3~16,數(shù)據(jù)采樣精度和旋轉(zhuǎn)因子精度都為8~24,故模塊B的8、16、32、64、128及256點(diǎn)FFT都可用IP核生成。選擇“Pipelined,streaming I/O”生成基2點(diǎn)FFT模塊,可以減少整體處理時(shí)間。15、45、75、135、225點(diǎn)FFT模塊的外層算法是Good-Thomas算法,其余采用Cooley-Tukey算法實(shí)現(xiàn)。
評(píng)論