基于FPGA的8PSK軟解調的研究與實現
表1 是通過MATLAB 仿真平臺計算出來的每個Eb/N0所對應的誤碼率,圖2 是與之相對應的誤碼率曲線圖。由圖2 可知,對于Eb/N0 測試區間為4 dB 到7 dB 的任意一個測試點,LLR 最優算法的誤碼率總比定點MAX 算法和浮點MAX 算法要小,其中浮點MAX 算法誤碼性能居中,定點MAX 算法最差。MAX 算法是通過降低誤碼性能來換取運算復雜度的降低,其誤碼性能要比LLR 最優算法差。與浮點MAX 算法相比,定點MAX 算法對輸入軟解調模塊的I、Q兩路信號和輸出的似然比分別進行了截位和限幅,如圖2 所示,定點MAX 算法相對于浮點MAX 算法損失了一定的誤碼性能。由表可知,定點MAX 算法在Eb/N0 為6.64 dB 時,其誤碼率為6.5125×10-8,驗證了該定點方案能夠滿足系統設計要求。
表 1 MATLAB 誤碼率仿真表
圖2 MATLAB 誤碼率仿真
3 MAX 算法硬件實現
由于硬件實現都是定點運算,所以MAX 算法的實現是針對定點的MAX 算法進行硬件設計的。硬件仿真流圖如圖3 所示,首先利用MATLAB 產生隨機序列,假設每一編碼塊為4032 bit,LDPC 編碼效率為1/2 碼率,則經過LDPC 編碼后,每一編碼塊為8 064 bit,經8PSK 調制成符號后,每一個編碼塊被調制成2 688 個符號,實部虛部分為I、Q 兩路,再疊加信噪比為SNR 的高斯白噪聲,最后把數據文件存儲在RAM 中。在硬件實現上,定點MAX 軟解調模塊以一定速率從RAM 讀取數據并進行軟解調,軟解調輸出的對數似然比存儲在乒乓RAM 中,每存滿一個編碼塊就向LDPC 譯碼器發出一個讀有效信號,LDPC 譯碼器在接收到該有效信號的下一個時鐘周期就開始以一定速率讀取整個編碼塊的對數似然值,接著開始進行LDPC 譯碼,最后以一定速率輸出最終的譯碼結果。
圖3 硬件設計仿真
4 硬件設計結果分析
驗證一個軟解調模塊性能的好壞,需要級聯譯碼模塊進行仿真綜合驗證。在硬件設計中,通過在Stratix II FPGA 硬件平臺上級聯MAX 定點算法模塊與LDPC 譯碼算法模塊,然后進行綜合布線,最后下載到硬件平臺進行測試。
將仿真通過的工程文件使用Chipscope 添加觀察采樣信號,觸發信號和待觀察信號后重新綜合、布局布線生成bit文件,下載到目標板后用Chipscope 進行在線測試,通過將輸出結果與輸入比特流進行比較,驗證設計正確性。分析QUARTUS II 綜合報告,該設計模塊只需加減法器,部分寄存器和16 個乘法模塊,使用資源較少,能滿足低復雜度、高吞吐量的設計要求。
5 結語
由于LLR 算法具有較高的運算復雜度,不易于硬件實現,而經過簡化的MAX 算法由于避免了指數和對數運算,大大降低運算復雜度,只需進行加減法和少數乘法運算,適合于硬件實現。該設計通過MATLAB 與VHDL 仿真對照,驗證了MAX 軟解調算法硬件設計的準確性,同時將該模塊與LDPC 譯碼模塊級聯,在具體的FPGA 芯片上運行,利用片上分析儀Chipscope 進一步驗證設計的可行性。
評論