無線通訊是重要通訊手段之一,通訊專業(yè)的朋友對于無線通訊自然十分熟悉。在前面的文章中,小編對無線通信OFDM調制的實現原理有所介紹。為加深大家對無線通訊OFDM的理解程度,本文將為大家對來無線通訊OFDM調制實例。如果你對無線通訊技術具備濃厚興趣,不妨和小編共同往下閱讀哦。
下面的OFDM調制和解調在Altera Stratix III FPGA上進行,FFT和存儲緩沖器使用MegaCore函數。這個例子打算用于采用FFT復用的系統(tǒng),為了實現共享,這里,FFT核的時鐘率要比基帶信號快很多。該設計旨在實現可重配置結構的OFDM系統(tǒng),它的FFT size和循環(huán)前綴的大小在執(zhí)行中可變。Pre-FFT數據通過一個單緩沖器改變速率,Pre-FFT位反轉數據通過一對緩沖器改變速率和次序。所有的控制模塊支持TDD操作并被發(fā)射器和接收器共享。該應用實例可以很容易擴展到MIMO、TDD或者兩者結合的系統(tǒng)中,例如圖6中的系統(tǒng)以及圖5介紹的FDD系統(tǒng)。
功能描述:這個設計實例包含兩部分:OFDM調制和OFDM解調。前者包含IFFT和循環(huán)前綴的位反轉插入,后者包含循環(huán)前綴的移除模塊和改變數據速率的緩沖器。圖1為這兩者的高級集成。你可以把它看作是圖3中的單天線TDD系統(tǒng)的一種擴展。附加的pre-FFT緩沖器使設計更容易地擴展到具有FFT復用的MIMO或FDD系統(tǒng)。
圖1:OFDM調制解調設計架構舉例。
Post-FFT處理:OFDM調制過程中的CP插入包含4個功能子模塊:
1. 使用雙時鐘雙端口RAM的雙緩沖器
2. 位反轉的存儲寫模塊
3. 循環(huán)前綴插入的內存讀取模塊
4. 時鐘同步模塊
在發(fā)射數據通道中,位反轉的IFFT輸出數據在循環(huán)前綴插入模塊被讀入。一個控制單元分析數據地址并把它寫入相應的存儲單元。在一個完整的IFFT數據包被寫入后,與循環(huán)前綴相應的最后幾個樣本以自然順序讀出。與此同時,如果有容量,來自下一個IFFT包的數據會被寫入另一個緩沖器。如果兩個緩沖器都有數據需要讀取,會有一個延遲信號經過Avalon Streaming接口背壓送到IFFT核。經過OFDM調制后的數據通常是連續(xù)的。而其后的模塊,如IF調制解調器和天線,不應該施加背壓。
在接收數據通道中,post-FFT處理限制了位反轉和速率改變。位反轉的FFT輸出數據會被寫入到正確的內存地址,就像之前所做的一樣。一旦一個完整的數據包被寫入了緩沖器,它將會按正常順序依次讀出。要特別注意避免過度的背壓。由于讀時鐘頻率通常慢于寫時鐘,故需要一個雙緩沖器。圖2講述了post-FFT的數據處理。控制信號指明兩個時鐘域的緩存器狀態(tài),并通過同步邏輯進行同步。
圖2:循環(huán)前綴插入操作前后的數據包比較。
Pre-FFT處理:Pre-FFT處理包括4個模塊:
1. 循環(huán)前綴的移除或存儲器寫
2. 存儲讀取或速率改變
3. 雙時鐘雙端口RAM
4. Avalon碼流準備好延遲轉換器
如前面所討論,如果FFT為了資源共享采用不同速率的時鐘,則需要pre-FFT數據緩沖器。在接收通道上,每當輸入數據開始寫入單緩沖器時,循環(huán)前綴移除模塊開始記數。當整個數據包都被寫入這個單緩沖器時,記數值開始從0地址被讀出。
對于固定的FFT size,由于讀時鐘頻率并不比寫時鐘慢,用一個單緩沖器就夠了。但如果FFT size是變化的,一個單緩沖器恐怕就不夠了。舉個特殊的例子,假設兩個時鐘工作在同一頻率。在這種情況下,當新的數據被寫入內存,上一個數據包中的數據會從同一個存儲地址被讀出。如果上一個數據包的FFT/IFFT size更大,那么當前包的寫操作會早在上一個數據包讀操作完成前結束。這樣的話,為了阻止寫入過多的數據,就必須延遲上行數據流模塊的運行直到上一個大數據包的讀操作完成。
所幸的是,這種背壓只會在FFT size由大變小時才會被施加。在實際的系統(tǒng)中,FFT size不太可能頻繁的改變。如果它只在幀邊界改變,由于幀符號之間是靜止區(qū),就永遠不會施加背壓。此外,為了避免使用背壓,讀信號和FFT核可以采用更高速率的時鐘,這樣讀操作會在寫操作之前完成。所需的時鐘頻率取決于最壞情況下FFT size的變化比。舉個極端的例子,如果FFT size從2048減到128,那么讀時鐘的頻率至少需要比寫時鐘快16倍。
在發(fā)射數據通道上,CP移除子??熘皇菍⑤斎霐祿创涡驅懭雴尉彌_器。同樣的數據以不同的速率被讀出。圖3講述了pre-FFT的數據操作。在接收通道上,數據通過天線進入OFDM解調器,其后通常還接有IF調制解調器。這樣,接收模式下的pre-FFT模塊不會再對上行數據流模塊施加背壓。對于TDD操作,在pre-FFT數據緩沖時,可以復用post-FFT雙端口RAM實現位反轉,因為這些操作在時間上是錯開的。
圖3:循環(huán)前綴移除操作前后的數據包比較。
時鐘方案:該設計中采用兩個時鐘域,clk_f和clk_s。FFT核運行在快時鐘clk_f上。當時鐘clk_f比clk_s快時,兩個時鐘域將會存在異步。握手信號將會被插入來同步域間的控制信號。盡管在實際系統(tǒng)中時鐘clk_f的頻率通常為clk_s頻率的幾個整數倍,但在這個設計中,兩者頻率也可以相同。這里,兩個時鐘必須同步。由于單緩沖器存儲深度的限制,如果兩個時鐘同步而只是速率不同,就必須去掉解調器中的時鐘同步模塊。不過在實際系統(tǒng)中不需要考慮這一點,因為如果FFT核沒有被復用就沒必要使用pre-FFT緩沖器了。
接口和I/O端口:該設計實例使用了數據傳輸控制的Avalon Streaming協(xié)議。為了支持大小可變的FFT size、循環(huán)前綴,以及FFT方向運行時間(run time)的變化,必須對這些run time信號進行緩沖并把它們與輸出數據數據包開始(SOP)信號對齊。Therefore, in every control module of OFDM modulation and demodulation, some logic is dedicated to signal alignment.因此,在OFDM調制解調中的每個控制模塊中都有一些邏輯信號專用于信號對齊。
該實例中也通過Avalon Stream信號sink_ready(輸入準備好信號)和source_ready(輸出準備好信號)來支持背壓。循環(huán)前綴插入模塊中輸入準備好延遲選0和輸出準備好延遲選44。循環(huán)前綴移除模塊的輸入準備好延遲選0。不過,因為輸出數據取自存儲器,后面的緩沖器讀取子模塊的輸出準備好延遲選2。由于FFT核為延遲0,為了實現與FFT核的連接,需要在在緩沖讀模塊與FFT核之間插入一個延遲適配器。延遲適配器用延遲2接收輸入數據,然后用延遲0輸出數據。適配器也支持背壓并把可重配置的循環(huán)前綴的大小和FFT的方向信號與輸出數據包對齊。
調制解調的輸入輸出信號是有符號的定點格式但位寬度是可配置的。在可變流模式中,IFFT核的輸出數據具有基于最大IFFT size的滿分辨率。如果必要,可以在循環(huán)前綴插入模塊中切斷數據序列,也可以設置位寬參數。圖4所示為OFDM調制解調模塊的I/O端口。
圖4:OFDM調制解調模塊的I/O接口。
以上便是此次小編帶來的“無線通訊”相關內容,通過本文,希望大家對無線通訊OFDM的實例以及OFDM具備更深的理解。如果你喜歡本文,不妨持續(xù)關注我們網站哦,小編將于后期帶來更多精彩內容。最后,十分感謝大家的閱讀,have a nice day!