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