1. 程式人生 > >OFDM通道調製解調的模擬及其FPGA設計

OFDM通道調製解調的模擬及其FPGA設計

OFDM通道調製解調的模擬及其FPGA設計

OFDM(正交頻分複用)是一種高效的多載波調製技術,其最大的特點是傳輸速率高,具有很強的抗碼間干擾和通道選擇性衰落能力。OFDM最初用於高速MODEM、數字行動通訊和無線調頻通道上的寬頻資料傳輸,隨著IEEE802.11a協議、BRAN(Broadband Radio Access Network)和多媒體的發展,數字音訊廣播(DAB)、地面數字視訊廣播((DVB-T)和高清晰度電視((HDTV)都應用了OFDM技術。

本文引用地址:http://www.eepw.com.cn/article/269688.htm

  OFDM利用離散傅立葉反變換/離散傅立葉變換(IDFT/DFT)代替多載波調製和解調,調製解調的核心是快速傅立葉運算單元,在進行蝴蝶運算時,不可避免的要進行大量的乘法運算。由於

FPGA具有強大的並行處理和計算能力,以及豐富的儲存資源和邏輯運算資源,因此在FPGA器件上實現OFDM調製解調結構,具有很好的通用性和靈活性。

  OFDM與系統框圖

  OFDM的多個載波相互正交,一個訊號內包含整數個載波週期,每個載波的頻點和相鄰載波零點重疊,這種載波間的部分重疊提高了頻帶利用率。OFDM每個子通道的頻譜均為sinx/x形,各子通道頻譜相互交疊,但在每個子通道載頻的位置來自其他子通道的干擾為零,如圖1所示。

  

 

  OFDM系統如圖2所示,OFDM系統的調製和解調分別由IFFT和FFT完成。首先將序列輸入資料d0,d1...,d(N-1)變換成並行資料,接下來進行編碼和星座圖對映,得到頻域資料。經過IFFT後相當於調製到正交的N個f0,f1,...,fN-1子載波,完成正交頻分複用。接下來加入迴圈字首,進行並/串轉換,數/模轉換,再調製到高頻載波上傳送。如果是基帶傳輸,則不需要進行載波調製。

  在接收端進行相反的操作,使用N個相同的子載波進行N路解調,再將這N路解調訊號並串輸出,復現傳送的原始訊號。經過FFT變換後的資料相當於將時域資料再轉換成頻域資料,即完成了OFDM訊號的解調。

  OFDM調製原理雖然是用N個正交的載波分別調製N路子通道碼元序列,但實際中很難獨立產生N個正交的載波。所以OFDM多采用VLSI技術,用FFT代替多載波調製和解調。當子通道數目比較多的時候,採用FFT可以大大減少系統的複雜度。而FPGA的並行乘法器和加法器結構容易硬體實現OFDM的核心運算,有效地提高了OFDM調製解調速度。

  軟體模擬與設計

  隨著FPGA和VLSI的發展,大量的EAB(嵌入式陣列塊)、LE(邏輯單元)、內嵌乘法器和高速FIFO儲存器帶來了OFDM/COFDM的實用化,為OFDM提供了硬體支援。軟體上可以採用MATLAB、硬體描述語言VHDL、QuartusⅡ等軟體進行模擬與設計。

  模擬過程中採用了隨機訊號作為輸入訊號,經過4QAM編碼對映後進行再IFFT調製,然後進入通道進行資料傳輸,每幀訊號為512點;同時採用簡單的11點數字離散通道,其值為:[0.05 -0.063 0.088 -0.126 -0.25 0.9047 0.25 0 0.126 0.038 0.088]。

  在一般OFDM系統中為使IFFT和FFT前後的訊號功率保持不變,當N=2m(m為正整數)時,作如下定義:

  

 

  採用16位定點演算法,這便意味著要考慮溢位問題。對於基-2 FFT,為了防止溢位,可以採用以下辦法:將每一個蝶算後的資料右移1bit,即相當於將該數做除2處理。這樣,加入總衰減比例因子,將比例因子分散到各步計算中。這種情況下,輸出不是原來定義的離散傅立葉變換,而是它的。而對於基-2 IFFT,這個比例因子正是公式中需要的,所以FPGA實現的IFFT便是最終結果。

  圖3和圖4分別是通道h(n)的FFT值(倒數)和第二幀輸入資料(迭代次數10)。

  

 

  調製過程中Matlab的IFFT結果同FPGA結果比較如表1所示。

  

 

  表1 IFFT結果比較

  經過FPGA的IFFT在非主頻率點上有一些小的誤差。這是因為在計算IFFT的時候,同樣因為舍入問題,在本該為零的點產生一些極小的數值,從而在訊號顯示時出現這些毛刺。

  對於表1,FFT峰值結果的誤差,是因為FPGA採用的是16bit定點演算法,在程式中有很多舍位處理帶來的誤差。至於Sine訊號峰值的不同,那是因為將FPGA實現的IFFT結果再進行Matlab的fft()計算,而IFFT的那些毛刺,必然在時域上產生影響。

  在FPGA實現時,一般是在完成IFFT以後將結果暫時存放在RAM中,然後在從RAM裡讀出資料時,採取部分重複讀取的方式,將一部分資料重複複製,從而形成迴圈字首。這樣可以對連續的資料流進行變換處理,滿足系統的實時性要求。

  

 

  解調過程中Matlab的FFT結果同FPGA結果比較如表2所示。

  表2 FFT結果比較

  從表2可以看出,FPGA的結果同Matlab的結果基本相同,只是FFT峰值有些不同。這也因為FPGA採用的是16bit定點演算法,在程式中有很多舍位處理。但 FPGA的結果是將原小數訊號變成整數後再進行處理的,當最後再轉換成小數後,結果將是一致的。

  

 

  結語

  OFDM通道調製解調的關鍵是一對離散傅立葉變換。程式可以由Verilog HDL模組進行設計,用相應的模組模擬程式TESTBENCH進行功能模擬,經過波形模擬和結果驗證後,將程式下載到FPGA中實現。同時,Verilog HDL模擬結果與MATLAB中函式fft()以及ifft()的輸出結果進行比較(採用的是浮點運算),得出圖形和資料的比較結果。

  結果表明,用FPGA實現OFDM通道調製解調與MATLAB模擬結果基本一致,具有良好的效能和較高的效率。