無(wú)線(xiàn)通訊OFDM調制技術(shù)介紹和設計實(shí)現
OFDM是現代寬帶無(wú)線(xiàn)通信系統應用的技術(shù)。為了減少高數據率OFDM系統中各信道間影響帶來(lái)的失真,引入循環(huán)前綴(CP)來(lái)消除碼間干擾(ISI)。它將一個(gè)IFFT包的最后部分復制到OFDM符號序列的前端。注意,CP的長(cháng)度必須長(cháng)于色散信道的長(cháng)度以徹底消除ISI。在發(fā)射器中,OFDM調制包括快速傅立葉逆變換(IFFT)運算和CP的插入。而在OFDM接收器中,CP在數據包送往FFT解調前被移除。新一代的無(wú)線(xiàn)系統以高動(dòng)態(tài)配置為標志,其中CP的長(cháng)度隨著(zhù)傳輸模式,幀結構(見(jiàn)圖1、2)以及更高級的協(xié)議而改變。例如,3GPP LTE中的CP配置每一個(gè)時(shí)隙都不同。CP的長(cháng)度基于具有2048時(shí)間間隔的OFDM符號。WiMAX系統中可以有幾種相似而不同的CP結構。
本文引用地址:http://dyxdggzs.com/article/261137.htmOFDM調制的實(shí)現
下面將討論如何實(shí)現OFDM調制及解調中循環(huán)前綴的插入與消除。
FFT與FFT反變換:在OFDM調制中最關(guān)鍵的運算就是IFFT,相類(lèi)似,OFDM解調的核心為FFT。寬帶系統中的高FFT吞吐率是至關(guān)重要的,尤其是在FFT被多路數據通道共享時(shí)。
在WiMAX以及3GPP LTE這類(lèi)現代可擴展無(wú)線(xiàn)系統中,在運行中可重新配置的能力同樣成為系統要求的一個(gè)重要指標??勺兞髂J较碌腇FT MegaCore函數瞄準的是可重新配置的無(wú)線(xiàn)通訊,是設計OFDM系統時(shí)的一個(gè)很好選擇。
FFT的MegaCore函數被設定為可變流模式,它允許FFT的大小和方向逐包改變。它還采用了存儲效率模式——這是FFT核的唯一模式,直接從FFT的蝶形引擎中輸出位反轉符號??梢栽贔FT核之外結合帶有循環(huán)前綴插入的位反轉。這樣,整個(gè)OFDM調制可以節省出一個(gè)單緩沖器。
FFT模塊復用:為了減少邏輯門(mén)數,FFT模塊通常采用比其他基帶模塊更快的時(shí)鐘頻率并復用。FFT模塊可以被不同的源共享,譬如,多路天線(xiàn)、時(shí)分雙工(TDD)復用中的發(fā)射與接收,以及頻分雙工(FDD)系統。FFT模塊也可以與其他功能模塊共享,如振幅因數減小或信道估計模塊。不過(guò),這些復用取決于用戶(hù)特定的算法,而非通用設計。這篇文章將集中討論最常見(jiàn)的無(wú)線(xiàn)通訊系統應用:如MIMO技術(shù)、TDD和FDD通信。
TDD操作:在TDD基站中,發(fā)送和接收發(fā)生在不重疊的時(shí)隙中。FFT模塊可以很容易地在采用合適的信號多路復用技術(shù)的發(fā)射機和接收機之間共享。圖3顯示一個(gè)典型的單一天線(xiàn)TDD OFDM調制器。
在發(fā)射數據通道中,基帶數據被直接送入IFFT模塊。為在IFFT運算后插入CP并進(jìn)行位反轉操作,可以采用很多種不同的結構。圖4為一個(gè)使用Altera Avalon Streaming接口(Avalon-ST)的高效實(shí)現方案。IFFT輸出的位反轉信號按次序被寫(xiě)入一個(gè)單緩沖器,在那里,來(lái)自上一個(gè)OFDM符號的自然順序的樣本通過(guò)雙端口RAM同時(shí)被讀出。產(chǎn)生循環(huán)前綴時(shí),通過(guò)Avalon-ST背壓流量控制使FFT核停轉。附加了循環(huán)前綴的連續OFDM符號再被送到數字上變頻器(DUC)來(lái)傳輸。
而在接收通道中,經(jīng)過(guò)數字下變頻器(DDC)后,循環(huán)前綴從OFDM符號中被移除。如圖3示,循環(huán)移除模塊找到OFDM符號序列的正確起始位置然后把數據送向FFT解調。FFT模塊后的單緩沖器只能作為接收通道中的位反轉緩沖器而沒(méi)有背壓流量控制。為了重復利用控制單元,圖3中CP的插入和移除模塊能夠區分數據包是否用來(lái)發(fā)射還是接收,并采取相應操作。在這種存儲器高效率執行中,FFT核工作頻率為符號速率。一個(gè)單緩沖器足以完成循環(huán)前綴的插入和位反轉。
FDD操作:在FDD中,發(fā)送和接收是同時(shí)進(jìn)行的。FFT核的共享要求其工作頻率不低于基帶符號傳輸速率的兩倍。發(fā)射和接收數據通道各需要一個(gè)專(zhuān)用數據緩存。
圖5描述的是FDD系統下FFT復用的一種可能配置。數據發(fā)送和接收通道的操作類(lèi)似于TDD系統,其區別在于這些操作是同時(shí)進(jìn)行的。因此,pre-FFT數據必須被緩存且把頻率提高到快時(shí)鐘頻率。用一個(gè)單緩沖器就足以改變速率,因為緩沖器的寫(xiě)時(shí)鐘頻率總是低于或等于讀時(shí)鐘頻率。
在當前的數據包以低時(shí)鐘速率被寫(xiě)入緩沖器的時(shí)候,上一個(gè)包中的數據以高時(shí)鐘率被讀出。當讀寫(xiě)操作在同一存儲位置時(shí),需要配置雙端口RAM來(lái)輸出舊存儲內容。FFT處理后,高速率數據經(jīng)過(guò)雙端RAM后被還原到OFDM的發(fā)送速率。這個(gè)post-FFT存儲緩沖器也作為一個(gè)位反轉緩沖器。由于速率從高到低的改變,如果需要連續碼流輸出,就需要一個(gè)雙緩沖器,即當一個(gè)FFT包被寫(xiě)入緩沖器時(shí),上一個(gè)包中的數據從另一個(gè)緩沖器被讀出。
MIMO結構設置
多天線(xiàn)結構是現代無(wú)線(xiàn)系統中的強制性需求,這些系統包括WLAN,WiMAX和3GPP LTE系統。在多輸入輸出(MIMO)系統中進(jìn)行OFDM調制的一個(gè)很直接的操作就是復制數據通道,包括用于每一根天線(xiàn)的FFT核。
一種資源更友好的解決方案是共享每條天線(xiàn)的FFT核。為實(shí)現MIMO中的FFT復用,FFT核的頻率至少要比基帶數據傳輸速率快n倍,這里的n為天線(xiàn)的根數。當結合MIMO、TDD和FDD時(shí),同一個(gè)FFT核能在兩維上被共享,代價(jià)是需要pre-FFT數據緩沖。
圖6描述的是TDD模式下一種雙天線(xiàn)MIMO發(fā)射器的基本配置。FFT核被兩條天線(xiàn)以及發(fā)送和接收器復用。循環(huán)前綴的插入和移除控制單元必須能夠用于發(fā)射和接收。由于時(shí)鐘頻率的差異,每根天線(xiàn)的post-FFT數據處理需要一個(gè)雙緩沖器。
OFDM調制實(shí)例
下面的OFDM調制和解調在A(yíng)ltera Stratix III FPGA上進(jìn)行,FFT和存儲緩沖器使用MegaCore函數。這個(gè)例子打算用于采用FFT復用的系統,為了實(shí)現共享,這里,FFT核的時(shí)鐘率要比基帶信號快很多。該設計旨在實(shí)現可重配置結構的OFDM系統,它的FFT size和循環(huán)前綴的大小在執行中可變。Pre-FFT數據通過(guò)一個(gè)單緩沖器改變速率,Pre-FFT位反轉數據通過(guò)一對緩沖器改變速率和次序。所有的控制模塊支持TDD操作并被發(fā)射器和接收器共享。該應用實(shí)例可以很容易擴展到MIMO、TDD或者兩者結合的系統中,例如圖6中的系統以及圖5介紹的FDD系統。
功能描述:這個(gè)設計實(shí)例包含兩部分:OFDM調制和OFDM解調。前者包含IFFT和循環(huán)前綴的位反轉插入,后者包含循環(huán)前綴的移除模塊和改變數據速率的緩沖器。圖7為這兩者的高級集成。你可以把它看作是圖3中的單天線(xiàn)TDD系統的一種擴展。附加的pre-FFT緩沖器使設計更容易地擴展到具有FFT復用的MIMO或FDD系統。
Post-FFT處理:OFDM調制過(guò)程中的CP插入包含4個(gè)功能子模塊:
1. 使用雙時(shí)鐘雙端口RAM的雙緩沖器
2. 位反轉的存儲寫(xiě)模塊
3. 循環(huán)前綴插入的內存讀取模塊
4. 時(shí)鐘同步模塊
在發(fā)射數據通道中,位反轉的IFFT輸出數據在循環(huán)前綴插入模塊被讀入。一個(gè)控制單元分析數據地址并把它寫(xiě)入相應的存儲單元。在一個(gè)完整的IFFT數據包被寫(xiě)入后,與循環(huán)前綴相應的最后幾個(gè)樣本以自然順序讀出。與此同時(shí),如果有容量,來(lái)自下一個(gè)IFFT包的數據會(huì )被寫(xiě)入另一個(gè)緩沖器。如果兩個(gè)緩沖器都有數據需要讀取,會(huì )有一個(gè)延遲信號經(jīng)過(guò)Avalon Streaming接口背壓送到IFFT核。經(jīng)過(guò)OFDM調制后的數據通常是連續的。而其后的模塊,如IF調制解調器和天線(xiàn),不應該施加背壓。
在接收數據通道中,post-FFT處理限制了位反轉和速率改變。位反轉的FFT輸出數據會(huì )被寫(xiě)入到正確的內存地址,就像之前所做的一樣。一旦一個(gè)完整的數據包被寫(xiě)入了緩沖器,它將會(huì )按正常順序依次讀出。要特別注意避免過(guò)度的背壓。由于讀時(shí)鐘頻率通常慢于寫(xiě)時(shí)鐘,故需要一個(gè)雙緩沖器。圖8講述了post-FFT的數據處理??刂菩盘栔该鲀蓚€(gè)時(shí)鐘域的緩存器狀態(tài),并通過(guò)同步邏輯進(jìn)行同步。
Pre-FFT處理:Pre-FFT處理包括4個(gè)模塊:
1. 循環(huán)前綴的移除或存儲器寫(xiě)
2. 存儲讀取或速率改變
3. 雙時(shí)鐘雙端口RAM
4. Avalon碼流準備好延遲轉換器
如前面所討論,如果FFT為了資源共享采用不同速率的時(shí)鐘,則需要pre-FFT數據緩沖器。在接收通道上,每當輸入數據開(kāi)始寫(xiě)入單緩沖器時(shí),循環(huán)前綴移除模塊開(kāi)始記數。當整個(gè)數據包都被寫(xiě)入這個(gè)單緩沖器時(shí),記數值開(kāi)始從0地址被讀出。
對于固定的FFT size,由于讀時(shí)鐘頻率并不比寫(xiě)時(shí)鐘慢,用一個(gè)單緩沖器就夠了。但如果FFT size是變化的,一個(gè)單緩沖器恐怕就不夠了。舉個(gè)特殊的例子,假設兩個(gè)時(shí)鐘工作在同一頻率。在這種情況下,當新的數據被寫(xiě)入內存,上一個(gè)數據包中的數據會(huì )從同一個(gè)存儲地址被讀出。如果上一個(gè)數據包的FFT/IFFT size更大,那么當前包的寫(xiě)操作會(huì )早在上一個(gè)數據包讀操作完成前結束。這樣的話(huà),為了阻止寫(xiě)入過(guò)多的數據,就必須延遲上行數據流模塊的運行直到上一個(gè)大數據包的讀操作完成。
所幸的是,這種背壓只會(huì )在FFT size由大變小時(shí)才會(huì )被施加。在實(shí)際的系統中,FFT size不太可能頻繁的改變。如果它只在幀邊界改變,由于幀符號之間是靜止區,就永遠不會(huì )施加背壓。此外,為了避免使用背壓,讀信號和FFT核可以采用更高速率的時(shí)鐘,這樣讀操作會(huì )在寫(xiě)操作之前完成。所需的時(shí)鐘頻率取決于最壞情況下FFT size的變化比。舉個(gè)極端的例子,如果FFT size從2048減到128,那么讀時(shí)鐘的頻率至少需要比寫(xiě)時(shí)鐘快16倍。
在發(fā)射數據通道上,CP移除子??熘皇菍⑤斎霐祿创涡驅?xiě)入單緩沖器。同樣的數據以不同的速率被讀出。圖9講述了pre-FFT的數據操作。在接收通道上,數據通過(guò)天線(xiàn)進(jìn)入OFDM解調器,其后通常還接有IF調制解調器。這樣,接收模式下的pre-FFT模塊不會(huì )再對上行數據流模塊施加背壓。對于TDD操作,在pre-FFT數據緩沖時(shí),可以復用post-FFT雙端口RAM實(shí)現位反轉,因為這些操作在時(shí)間上是錯開(kāi)的。
時(shí)鐘方案:該設計中采用兩個(gè)時(shí)鐘域,clk_f和clk_s。FFT核運行在快時(shí)鐘clk_f上。當時(shí)鐘clk_f比clk_s快時(shí),兩個(gè)時(shí)鐘域將會(huì )存在異步。握手信號將會(huì )被?入來(lái)同步域間的控制信號。盡管在實(shí)際系統中時(shí)鐘clk_f的頻率通常為clk_s頻率的幾個(gè)整數倍,但在這個(gè)設計中,兩者頻率也可以相同。這里,兩個(gè)時(shí)鐘必須同步。由于單緩沖器存儲深度的限制,如果兩個(gè)時(shí)鐘同步而只是速率不同,就必須去掉解調器中的時(shí)鐘同步模塊。不過(guò)在實(shí)際系統中不需要考慮這一點(diǎn),因為如果FFT核沒(méi)有被復用就沒(méi)必要使用pre-FFT緩沖器了。
接口和I/O端口:該設計實(shí)例使用了數據傳輸控制的Avalon Streaming協(xié)議。為了支持大小可變的FFT size、循環(huán)前綴,以及FFT方向運行時(shí)間(run time)的變化,必須對這些run time信號進(jìn)行緩沖并把它們與輸出數據數據包開(kāi)始(SOP)信號對齊。Therefore, in every control module of OFDM modulation and demodulation, some logic is dedicated to signal alignment.因此,在OFDM調制解調中的每個(gè)控制模塊中都有一些邏輯信號專(zhuān)用于信號對齊。
該實(shí)例中也通過(guò)Avalon Stream信號sink_ready(輸入準備好信號)和source_ready(輸出準備好信號)來(lái)支持背壓。循環(huán)前綴插入模塊中輸入準備好延遲選0和輸出準備好延遲選44。循環(huán)前綴移除模塊的輸入準備好延遲選0。不過(guò),因為輸出數據取自存儲器,后面的緩沖器讀取子模塊的輸出準備好延遲選2。由于FFT核為延遲0,為了實(shí)現與FFT核的連接,需要在在緩沖讀模塊與FFT核之間插入一個(gè)延遲適配器。延遲適配器用延遲2接收輸入數據,然后用延遲0輸出數據。適配器也支持背壓并把可重配置的循環(huán)前綴的大小和FFT的方向信號與輸出數據包對齊。
調制解調的輸入輸出信號是有符號的定點(diǎn)格式但位寬度是可配置的。在可變流模式中,IFFT核的輸出數據具有基于最大IFFT size的滿(mǎn)分辨率。如果必要,可以在循環(huán)前綴插入模塊中切斷數據序列,也可以設置位寬參數。圖10所示為OFDM調制解調模塊的I/O端口。
本文小結
這篇文章提供了一個(gè)可重配置無(wú)線(xiàn)系統中的OFDM調制解調的實(shí)現例子。設計架構的核心為FFT模塊的復用。
這個(gè)設計實(shí)例實(shí)現了3GPP LTE系統的OFDM調制解調,支持FFT size與循環(huán)前綴大小的可重配置。該設計實(shí)例也可用于WiMAX、WLAN以及其他基于OFDM的現代通訊系統。
評論