Global Sources
電子工程專輯
 
電子工程專輯 > 處理器/DSP
 
 
處理器/DSP  

無線通訊OFDM調變的實現

上網時間: 2008年08月22日  打印版  Bookmark and Share  字型大小:  

關鍵字:OFDM  LTE  FFT 

OFDM是現代寬頻無線通訊系統應用的技術。為了減少高數據率OFDM系統中各訊息通道間影響帶來的失真,導入循環前綴(CP)來消除符號間干擾(ISI)。它將一個IFFT封包的最後部份複製到OFDM符號序列的前端。注意,CP的長度必須長於色散訊息通道的長度以徹底消除ISI。在發射器中,OFDM調變封包括快速傅立葉逆變換(IFFT)運算和CP的插入。而在OFDM接收器中,CP在數據封包送往FFT解調前被移除。新一代的無線系統以高動態配置為標誌,其中CP的長度隨著傳輸模式,訊框結構(見圖1、2)以及更高階的協議而改變。例如,3GPP LTE中的CP配置每一個時隙都不同。CP的長度基於具有2,048時間間隔的OFDM符號。WiMAX系統中可以有幾種相似而不同的CP結構。

圖1:3GPP LTE下的訊框結構1,適用於TDD、FDD系統。
圖1:3GPP LTE下的訊框結構1,適用於TDD、FDD系統。

圖2:3GPP LTE下的訊框結構2,適用於TDD系統。
圖2:3GPP LTE下的訊框結構2,適用於TDD系統。

OFDM調變的實現

以下將討論如何實現OFDM調變及解調中循環前綴的插入與消除。

FFT與FFT反變換:在OFDM調變中最關鍵的運算就是IFFT,類似地,OFDM解調的核心為FFT。寬頻系統中的高FFT吞吐率是至關重要的,尤其是在FFT被多工數據通道共享時。

在WiMAX以及3GPP LTE這類現代可擴展無線系統中,在執行中可重新配置的能力同樣成為系統要求的一個重要指標。可變串流模式下的FFT MegaCore函數瞄準的是可重新配置的無線通訊,是設計OFDM系統時的一個很好選擇。

FFT的MegaCore函數被設定為可變串流模式,它允許FFT的大小和方向逐封包改變。它還採用了儲存效率模式──這是FFT核心的唯一模式,直接從FFT的蝶形引擎中輸出位元反轉符號。可以在FFT核心之外結合具有循環前綴插入的位元反轉。這樣,整個OFDM調變可以節省一個單緩衝器。

FFT模組再使用:為了減少邏輯閘數,FFT模組通常採用比其他基頻模組更快的時脈頻率,並可再使用。FFT模組可以被不同的源共享,譬如,多工天線、時分雙工(TDD)再使用中的發射與接收,以及頻分雙工(FDD)系統。FFT模組也可以與其他功能模組共享,如振幅因子減少或訊息通道估計模組。不過,這些再使用取決於用戶特定的演算法,而非通用設計。本文將討論最常見的無線通訊系統應用:如MIMO技術、TDD和FDD通訊。

TDD作業:在TDD基地台中,發送和接收產生在不重疊的時隙中。FFT模組可以很容易地在採用合適的訊號多工技術的發射機和接收機之間共享。圖3顯示一個典型的單一天線TDD OFDM調變器。

圖3:單天線TDD系統中OFDM調變解調的共享。
圖3:單天線TDD系統中OFDM調變解調的共享。

在發射數據通道中,基頻數據被直接送入IFFT模組。為在IFFT運算後插入CP並進行位元反轉作業,可以採用很多種不同的結構。圖4為一個使用Altera Avalon Streaming介面(Avalon-ST)的方案。IFFT輸出的位元反轉訊號依次被寫入一個單緩衝器,在那裡,來自上一個OFDM符號的自然順序的樣本透過雙埠RAM同時被讀出。產生循環前綴時,透過Avalon-ST背壓流量控制使FFT核心停轉。附加了循環前綴的連續OFDM符號再被送到數位上變頻器(DUC)來傳輸。

圖4:帶背壓的循環前綴插入的高效儲存實現方案。
圖4:帶背壓的循環前綴插入的高效儲存實現方案。

而在接收通道中,經過數位下變頻器(DDC)後,循環前綴從OFDM符號中被移除。如圖3示,循環移除模組找到OFDM符號序列的正確起始位置然後把數據送向FFT解調。FFT模組後的單緩衝器只能作為接收通道中的位元反轉緩衝器而沒有背壓流量控制。為了重複利用控制單元,圖3中CP的插入和移除模組能夠區分數據封包是否用來發射還是接收,並採取相應作業。在這種記憶體高效率執行中,FFT核心工作頻率為符號速率。一個單緩衝器足以完成循環前綴的插入和位元反轉。

FDD作業:在FDD中,發送和接收是同時進行的。FFT核心的共享要求其工作頻率不低於基頻符號傳輸速率的兩倍。發射和接收數據通道各需要一個專用數據緩衝記憶體。

圖5描述的是FDD系統下FFT再使用的一種可能配置。數據發送和接收通道的作業類似於TDD系統,其區別在於這些作業是同時進行的。因此,pre-FFT數據必須被緩衝記憶體且把頻率提高到快時脈頻率。用一個單緩衝器就足以改變速率,因為緩衝器的寫入時脈頻率總是低於或等於讀取時脈頻率。

圖5:單天線中OFDM調變解調的FFT核心共享。
圖5:單天線中OFDM調變解調的FFT核心共享。

在目前的數據封包以低時脈速率被寫入緩衝器的時候,上一個封包中的數據以高時脈率被讀出。當讀寫作業在同一儲存位置時,需要配置雙埠RAM來輸出舊儲存內容。FFT處理後,高速率數據經過雙端RAM後被還原到OFDM的發送速率。這個post-FFT儲存緩衝器也作為一個位元反轉緩衝器。由於速率從高到低的改變,如果需要連續串流輸出,就需要一個雙緩衝器,即當一個FFT封包被寫入緩衝器時,上一個封包中的數據從另一個緩衝器被讀出。

MIMO結構設置

多天線結構是現代無線系統中的強制性需求,這些系統包括WLAN,WiMAX和3GPP LTE系統。在多輸入輸出(MIMO)系統中進行OFDM調變的一個很直接的作業就是複製數據通道,包括用於每一根天線的FFT核心。

一種資源更友好的解決方案是共享每條天線的FFT核心。為實現MIMO中的FFT再使用,FFT核心的頻率至少要比基頻數據傳輸速率快n倍,這裡的n為天線的根數。當結合MIMO、TDD和FDD時,同一個FFT核心能在兩維上被共享,代價是需要pre-FFT數據緩衝。

圖6描述的是TDD模式下一種雙天線MIMO發射器的基本配置。FFT核心被兩條天線以及發送和接收器再使用。循環前綴的插入和移除控制單元必須能夠用於發射和接收。由於時脈頻率的差異,每根天線的post-FFT數據處理需要一個雙緩衝器。

圖6:雙天線MIMO TDD系統中OFDM調變解調的FFT核心共享。
圖6:雙天線MIMO TDD系統中OFDM調變解調的FFT核心共享。

OFDM調變實例

下面的OFDM調變和解調在Altera Stratix III FPGA上進行,FFT和儲存緩衝器使用MegaCore函數。這個例子打算用於採用FFT再使用的系統,為了實現共享,這裡,FFT核心的時脈率要比基頻訊號快很多。該設計旨在實現可重配置結構的OFDM系統,它的FFT size和循環前綴的大小在執行中可變。Pre-FFT數據透過一個單緩衝器改變速率,Pre-FFT位元反轉數據透過一對緩衝器改變速率和次序。所有的控制模組支援TDD作業並被發射器和接收器共享。該應用實例可以很容易擴展到MIMO、TDD或者兩者結合的系統中,例如圖6中的系統以及圖5介紹的FDD系統。

功能描述:這個設計實例包含兩部份:OFDM調變和OFDM解調。前者包含IFFT和循環前綴的位元反轉插入,後者包含循環前綴的移除模組和改變數據速率的緩衝器。圖7為這兩者的高級整合。你可以把它看作是圖3中的單天線TDD系統的一種擴展。附加的pre-FFT緩衝器使設計更容易地擴展到具有FFT再使用的MIMO或FDD系統。

圖7:OFDM調變解調設計架構舉例。
圖7:OFDM調變解調設計架構舉例。

Post-FFT處理:OFDM調變過程中的CP插入包含4個功能子模組:

1. 使用雙時脈雙埠RAM的雙緩衝器

2. 位元反轉的儲存寫入模組

3. 循環前綴插入的記憶體讀取模組

4. 時脈同步模組

在發射數據通道中,位元反轉的IFFT輸出數據在循環前綴插入模組被讀入。一個控制單元分析數據地址並把它寫入相應的儲存單元。在一個完整的IFFT數據封包被寫入後,與循環前綴相應的最後幾個樣本以自然順序讀出。與此同時,如果有容量,來自下一個IFFT封包的數據會被寫入另一個緩衝器。如果兩個緩衝器都有數據需要讀取,會有一個延遲訊號經過Avalon Streaming介面背壓送到IFFT核心。經過OFDM調變後的數據通常是連續的。而其後的模組,如IF數據機和天線,不應該施加背壓。

在接收數據通道中,post-FFT處理限制了位元反轉和速率改變。位元反轉的FFT輸出數據會被寫入到正確的記憶體地址,就像之前所做的一樣。一旦一個完整的數據封包被寫入了緩衝器,它將會按正常順序依次讀出。要特別注意避免過度的背壓。由於讀取時脈頻率通常慢於寫入時脈,故需要一個雙緩衝器。圖8講述了post-FFT的數據處理。控制訊號指明兩個時脈域的緩衝記憶體器狀態,並透過同步邏輯進行同步。

圖8:循環前綴插入作業前後的數據封包比較。
圖8:循環前綴插入作業前後的數據封包比較。

Pre-FFT處理:Pre-FFT處理包括4個模組:

1. 循環前綴的移除或記憶體寫入

2. 儲存讀取或速率改變

3. 雙時脈雙埠RAM

4. Avalon串流準備好延遲轉換器

如前面所討論,如果FFT為了資源共享採用不同速率的時脈,則需要pre-FFT數據緩衝器。在接收通道上,每當輸入數據開始寫入單緩衝器時,循環前綴移除模組開始記數。當整個數據封包都被寫入這個單緩衝器時,記數值開始從0地址被讀出。

對於固定的FFT size,由於讀取時脈頻率並不比寫入時脈慢,用一個單緩衝器就夠了。但如果FFT size是變化的,一個單緩衝器恐怕就不夠了。舉個特殊的例子,假設兩個時脈工作在同一頻率。在這種情況下,當新的數據被寫入記憶體,上一個數據封包中的數據會從同一個儲存地址被讀出。如果上一個數據封包的FFT/IFFT size更大,那麼目前封包的寫入作業會早在上一個數據封包讀取作業完成前結束。這樣的話,為了阻止寫入過多的數據,就必須延遲上行數據串流模組的執行直到上一個大數據封包的讀取作業完成。

所幸,這種背壓只會在FFT size由大變小時才會被施加。在實際的系統中,FFT size不太可能頻繁地改變。如果它只在訊框邊界改變,由於訊框符號之間是靜止區,就永遠不會施加背壓。此外,為了避免使用背壓,讀取訊號和FFT核心可以採用更高速率的時脈,這樣讀取作業會在寫入作業之前完成。所需的時脈頻率取決於最壞情況下FFT size的變化比。舉個極端的例子,如果FFT size從2048減到128,那麼讀取時脈的頻率至少需要比寫入時脈快16倍。

在發射數據通道上,CP移除子模組只是將輸入數據按次序寫入單緩衝器。同樣的數據以不同的速率被讀出。圖9為pre-FFT的數據作業。在接收通道上,數據透過天線進入OFDM解調器,其後通常還接有IF數據機。這樣,接收模式下的pre-FFT模組不會再對上行數據串流模組施加背壓。對於TDD作業,在pre-FFT數據緩衝時,可以再使用post-FFT雙埠RAM實現位元反轉,因為這些作業在時間上是錯開的。

圖9:循環前綴移除作業前後的數據封包比較。
圖9:循環前綴移除作業前後的數據封包比較。

時脈方案:該設計中採用兩個時脈域,clk_f和clk_s。FFT核心執行在快時脈clk_f上。當時脈clk_f比clk_s快時,兩個時脈域將會存在非同步。握手訊號將會被插入來同步域間的控制訊號。儘管在實際系統中時脈clk_f的頻率通常為clk_s頻率的幾個整數倍,但在這個設計中,兩者頻率也可以相同。這裡,兩個時脈必須同步。由於單緩衝器儲存深度的限制,如果兩個時脈同步而只是速率不同,就必須去掉解調器中的時脈同步模組。不過在實際系統中不需要考慮這一點,因為若並未再使用FFT核心,也就沒必要使用pre-FFT緩衝器了。

介面和I/O埠:該設計實例使用了數據傳輸控制的Avalon Streaming協議。為了支援大小可變的FFT size、循環前綴,以及FFT方向執行時間(run time)的變化,必須對這些run time訊號進行緩衝並把它們與輸出數據數據封包開始(SOP)訊號對齊。因此,在OFDM調變解調內的每個控制模組中,都有一些專用於訊號對齊的邏輯。

該實例中也透過Avalon Stream訊號sink_ready(輸入準備好訊號)和source_ready(輸出準備好訊號)來支援背壓。循環前綴插入模組中輸入準備好延遲選0和輸出準備好延遲選44。循環前綴移除模組的輸入準備好延遲選0。不過,因為輸出數據取自記憶體,後面的緩衝器讀取子模組的輸出準備好延遲選2。由於FFT核心為延遲0,為了實現與FFT核心的連接,需要在在緩衝讀取模組與FFT核心之間插入一個延遲配接器。延遲配接器用延遲2接收輸入數據,然後用延遲0輸出數據。配接器也支援背壓並把可重配置的循環前綴的大小和FFT的方向訊號與輸出數據封包對齊。

調變解調的輸入輸出訊號是有符號的定點格式但位元寬度是可配置的。在可變串流模式中,IFFT核心的輸出數據具有基於最大IFFT size的滿解析度。如果必要,可以在循環前綴插入模組中切斷數據序列,也可以設置位元寬參數。圖10所示為OFDM調變解調模組的I/O埠。

圖10:OFDM調變解調模組的I/O介面。
圖10:OFDM調變解調模組的I/O介面。

本文小結

這篇文章提供了一個可重配置無線系統中的OFDM調變解調的實現例子。設計架構的核心為FFT模組的再使用。

這個設計實例實現了3GPP LTE系統的OFDM調變解調,支援FFT size與循環前綴大小的可重配置。該設計實例也適用於WiMAX、WLAN以及其他基於OFDM的現代通訊系統。

作者:Xiaofei Dong

資深應用工程師

Altera公司





投票數:   加入我的最愛
我來評論 - 無線通訊OFDM調變的實現
評論:  
*  您還能輸入[0]個字
*驗證碼:
 
論壇熱門主題 熱門下載
 •   將邁入40歲的你...存款多少了  •  深入電容觸控技術就從這個問題開始
 •  我有一個數位電源的專利...  •  磷酸鋰鐵電池一問
 •   關於設備商公司的工程師(廠商)薪資前景  •  計算諧振轉換器的同步整流MOSFET功耗損失
 •   Touch sensor & MEMS controller  •  針對智慧電表PLC通訊應用的線路驅動器
 •   下週 深圳 llC 2012 關於PCB免費工具的研討會  •  邏輯閘的應用


 
返回頁首