<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > LTE上行DFT/IDFT的一種設計實(shí)現

LTE上行DFT/IDFT的一種設計實(shí)現

作者: 時(shí)間:2017-06-05 來(lái)源:網(wǎng)絡(luò ) 收藏

為了降低手機終端的功率損耗[1],LTE上行鏈路采用基于DFT擴頻OFDM(DFTS_OFDM)的單載波傳輸,又稱(chēng)為單載波FDMA(SC_FDMA)。DFTS_OFDM方案的基本結構如圖1所示。規定[2]上行PUSCH信道產(chǎn)生SC_FDMA符號要求DFT點(diǎn)數滿(mǎn)足式(1)。

由幾個(gè)參數的變化可以得到最小12點(diǎn)、最大1 296點(diǎn)共35種模式的DFT[3]?,F在已有的研究方法(如質(zhì)因子分解結合WFTA算法)解決非2n點(diǎn)DFT,但此法不夠靈活,不適合長(cháng)度可變的DFT。在數字電視DTMB系統中,3 780點(diǎn)FFT的處理采用分裂基與質(zhì)因子分解結合WFTA算法實(shí)現,但對于LTE上行可配置長(cháng)度DFT的實(shí)現還沒(méi)有一個(gè)成熟有效的方法。


根據LTE實(shí)時(shí)系統需求采用pipeline實(shí)現高速可配置的DFT設計,同時(shí)在結構和資源利用上進(jìn)行優(yōu)化,最后給出仿真圖形以及綜合結果,為上行LTE設計提供一種參考。

本文引用地址:http://dyxdggzs.com/article/201706/349168.htm

2 總體結構及技術(shù)實(shí)現

2.1 整體結構框圖

LTE DFT的模塊化總體結構如圖3所示,根據算法分析可以知道LTE DFT的分而治之需要幾個(gè)階段才能完成,每個(gè)階段需要做多次小因子點(diǎn)的DFT,所以圖示是一個(gè)循環(huán)的形式。由狀態(tài)機控制這些階段的完成,直到最后一個(gè)循環(huán)結束輸出數據。

其中前處理進(jìn)入WFTA模塊的包括對4個(gè)雙端口RAM的讀取控制以及對旋轉因子ROM的讀取,還有旋轉因子地址的計算。飽和操作根據系統的最大bit數限定,對經(jīng)過(guò)WFTA計算后的數據進(jìn)行飽和處理,超過(guò)的bit數直接截取掉。

2.2 技術(shù)實(shí)現

2.2.1 4個(gè)雙端口RAM的數據存儲

為保證pipeline地處理每次循環(huán)的數據,這里采用4個(gè)雙端口RAM對數據進(jìn)行存取。對4、2、5、3四種小因子的WFTA計算來(lái)說(shuō),選4個(gè)RAM最方便,如果需要進(jìn)行4點(diǎn)的WFTA計算,則從每個(gè)RAM中讀出一個(gè)數據,這僅需要一個(gè)時(shí)鐘就可讀出4個(gè)數據。對2點(diǎn)的WFTA計算,則可以一個(gè)時(shí)鐘讀出兩組的2點(diǎn)WFTA進(jìn)行計算。對3點(diǎn)的用一個(gè)時(shí)鐘,對于5點(diǎn)的用兩個(gè)時(shí)鐘讀取。

在基于原位計算的基礎上進(jìn)行改進(jìn),加入旋轉數據模塊,是為了將本來(lái)是在一個(gè)RAM中的數據在填入RAM前進(jìn)行旋轉,使其在不同的RAM中便于下一階段pipeline讀取。圖4展示了一個(gè)最簡(jiǎn)單的12點(diǎn)的填寫(xiě)RAM實(shí)例,在開(kāi)始第一階段前先將12點(diǎn)的輸入數通過(guò)載入buffer模塊用12個(gè)clk按圖3順序載入4個(gè)RAM中,也就是將數據倒位序放入4個(gè)RAM中。將倒位序之后的數據重新標號,即1對應載入buffer的3,2對應6等。這樣做的目的是為了方便計算地址。例如,在第一階段讀的過(guò)程中,0、1、2、3通過(guò)右移2 bit,即除以4可以算出地址為0,它們分別對應4個(gè)RAM的第0地址;同理4、5、6、7除以4可以得到1,即對應1地址,依此類(lèi)推。

根據公式4的推導可知在第一階段DFT的處理中不需要乘以旋轉因子,所以旋轉因子為0,在第一階段和第二階段中需要先乘以旋轉因子,旋轉因子按照公式推導處理列出在表中。在第一階段先處理0、1、2、3四點(diǎn)的WFTA,然后按原位順序填入4個(gè)RAM,接著(zhù)處理4、5、6、7四點(diǎn)的WFTA,本來(lái)應該也按原位填入RAM中,但是注意到在第二階段需要處理0、4、8三點(diǎn)的WFTA,如果還按照原位填入,則0、4、8三個(gè)數據在同一個(gè)RAM中,要讀取這3個(gè)數需要3個(gè)clk,顯然不適應pipeline的處理。所以在做完4、5、6、7四點(diǎn)的WFTA之后將數據旋轉再寫(xiě)入4個(gè)RAM中,同樣將8、9、10、11四點(diǎn)的結果也旋轉,如圖4所示。這樣的讀寫(xiě)RAM操作可以保證pipeline的處理。

2.2.2 旋轉因子的存取

根據式(4)的推導,每一級之間需要先乘以旋轉因子,對于旋轉因子的地址計算依據式(4)的推導。由于要實(shí)現35種可配置模式的DFT設計,所以在實(shí)現時(shí)要盡可能地考慮旋轉因子的共享存儲,從而盡可能地減少存儲這些旋轉因子的ROM大小。

一般做法是將N點(diǎn)的旋轉因子全部存儲,然后根據算出來(lái)的nk乘積來(lái)查找對應的旋轉因子,這樣35中模式需要很多的ROM地址來(lái)存儲。這里將具有2的冪次方關(guān)系的旋轉因子共用,如12、24、48…768點(diǎn)DFT的旋轉因子共用,12點(diǎn)的旋轉因子是24點(diǎn)的一部分,24點(diǎn)的是48點(diǎn)的一部分等,這樣就只需要存儲具有兩的冪次方關(guān)系的DFT點(diǎn)數的最大那個(gè)點(diǎn)768點(diǎn),又由于旋轉因子自身的對稱(chēng)性,只存儲最大點(diǎn)數的1/8就可以了,其他部分通過(guò)對稱(chēng)性來(lái)查找。

具體實(shí)現步驟如下:

(1)根據2的冪次方關(guān)系特性,將35種模式的DFT旋轉因子分成10組,并存儲這10組中最大的點(diǎn)的八分之一構成一個(gè)ROM。對于N點(diǎn)(對應組中最大的點(diǎn)),只存儲[N/8]個(gè)地址數據;
(2)對于計算出的旋轉因子地址K,根據它所處的DFT模式,選擇它所屬的組,10組分別用{R0,R1,R2,…,R9}表示;
(3)如果K在R5,則R0+R1+R2+R3+R4為它的偏移地址offset;
(4)12點(diǎn)的DFT需要用此組中最大的768點(diǎn)ROM表來(lái)找數,則地址K有可能是[0,…,11]×768/12中的一個(gè)作為有效地址eff_dft_addr;
(5)對于算出的eff_dft_addr,根據對[N×1/8],…,[N×7/8]的比較找出它處于768點(diǎn)中的哪個(gè)位置(此處N為768),即哪個(gè)1/8象限;
(6)找出所處的象限后,再找出其在第一個(gè)1/8對稱(chēng)的位置值dft_8_addr,計算出dft_addr=offset+dft_8_addr,然后在ROM表中找出對應的值,再根據對稱(chēng)性還原其原來(lái)的所屬象限的值。如圖5所示,展示一個(gè)點(diǎn)的查找方式。通過(guò)查找A″的值來(lái)得到A的值。


2.2.3 WFTA的運算單元

WFTA算法對2、3、4、5、7、8、9、16等小N點(diǎn)有較快速處理能力,它將小N點(diǎn)DFT轉換為循環(huán)卷積,利用多項式理論使卷積計算盡可能減少乘法。


2.2.4 塊浮點(diǎn)的數據處理

定點(diǎn)運算的特點(diǎn)是速度快但動(dòng)態(tài)范圍小。浮點(diǎn)運算的特點(diǎn)則是動(dòng)態(tài)范圍大但占用資源大。塊浮點(diǎn)具有兩種運算的優(yōu)點(diǎn),是兩種運算的折中,讓一組數具有共同的階碼,這個(gè)階碼是同組數中最大的那個(gè)數的階碼,簡(jiǎn)化系統資源提高運算的精度[6]。

如表1所示,因為每次WFTA運算后都有數據位寬的擴展,本結構具有3 bit的擴展。為保持輸入wfta_top的模塊數據始終為18 bit,這里用塊浮點(diǎn)動(dòng)態(tài)截取的方法對每一級的WFTA結果進(jìn)行處理,動(dòng)態(tài)截取的位寬決定下一級的數據寬度,同時(shí)循環(huán)累加每個(gè)階段的階碼,在數據輸出時(shí)進(jìn)行還原操作。


3 仿真綜合

圖7所示為12點(diǎn)DFT的仿真圖形,dft模式是第一種,首先data_in_vld為高時(shí)開(kāi)始數據輸入,然后用12個(gè)clk將數據讀入4個(gè)RAM,之后計算第一級RAM讀取地址將數據讀出,處理3次4點(diǎn)的DFT,處理后將數據寫(xiě)入RAM,需要3個(gè)clk;再后讀出數據做4次3點(diǎn)的DFT,處理后將數據寫(xiě)入RAM,需4個(gè)clk;最后將數據讀出做壓縮還原處理,data_out_vld為高后pipeline出數,需要12個(gè)clk。理論上需要31個(gè)clk,但是在處理中需要處理與其他模式的共享,還要有打拍延時(shí)等操作,實(shí)際用掉98個(gè)clk。120點(diǎn)的DFT實(shí)際用502個(gè)clk,理論上是120×2+30+30+24+40=364個(gè)clk,說(shuō)明處理的點(diǎn)數越多冗余clk比例越小。

使用Stratix III EP3SL340F1517I3芯片,運用Quartus II綜合后的結果為:7 824個(gè)組合ALUT,0個(gè)內存ALUT,8 699個(gè)邏輯寄存器,可達到時(shí)鐘124.64 MHz,滿(mǎn)足LTE系統時(shí)鐘122.88 MHz的要求。

文章在介紹LTE上行SC_FDMA的基礎上,對35種模式的DFT預編碼進(jìn)行算法分析,提出并用實(shí)現了一種高速可配置的方案。文中對數據存儲、WFTA運算單元和塊浮點(diǎn)處理進(jìn)行簡(jiǎn)單表述,根據旋轉因子特性,詳細介紹了旋轉因子的優(yōu)化,大大降低了35種模式旋轉因子的存儲大小。最后給出的仿真綜合結果表明該方案具有較好的性能。



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>