超寬帶無線通信中LDPC碼硬件仿真實現(xiàn)
碼長較長的低速LDPC編碼在信噪比較低的應(yīng)用場合呈現(xiàn)出其他編碼無法匹敵的優(yōu)勢,已經(jīng)證明非規(guī)則的LDPC碼性能甚至優(yōu)于Turbo碼高速LDPC編碼性能也比較好.尤其是在磁記錄等一些應(yīng)用場合,碼長較短的高速LDPC編碼有著較為廣闊的應(yīng)用前景。在不久的將來,LDPC編碼將用于更多高速高質(zhì)量的通信場合。而UWB通信技術(shù)因其傳輸速率高、功耗低等優(yōu)點在短距離的網(wǎng)絡(luò)中得到越來越多的關(guān)注。特別是UWB無線通信因其具有良好的時域可分辨性尤其適合于密集多徑環(huán)境中的短距離多用戶接入。本文在SvstemGenerator中對LDPC碼整個編譯碼系統(tǒng)進(jìn)行了參數(shù)化的硬件實現(xiàn),并構(gòu)建了超寬帶通信系統(tǒng)LDPC碼硬件仿真平臺,驗證了LDPC碼在UWB通信中的優(yōu)異性能。
2 UWB~LDPC的譯碼算法及不同環(huán)境下的初始化方法
LDPC碼采用置信傳播算法(BP)可以有效地解碼,由于存在大量的乘法運算,直接采用BP算法會導(dǎo)致很高的硬件復(fù)雜性,因此采用了對數(shù)(Log)運算將乘法變換為加法,這種算法叫做Log-BP算法。實際上,BP和Log-BP算法實現(xiàn)的是同樣的譯碼準(zhǔn)則。
首先定義幾個可能用到的幾個變量及符號的意義:H
因子的統(tǒng)計平均值,當(dāng)瑞利信道平均能量為1時,Ea(a)=0.8662。在UWB通信中,采取文獻(xiàn)給出的混合軟標(biāo)準(zhǔn)化算法,利用UwB信號的歸一化的自相關(guān)值對
3 LDPC碼硬件解碼結(jié)構(gòu)
由于并行解碼性能與串行解碼在性能上并無差別,只是占用更多的硬件資源來換取更快的速度,并且每一種并行結(jié)構(gòu)只能針對具有某一特定校驗矩陣的LDPC碼。所以本文就以串行解碼硬件實現(xiàn)方式進(jìn)行實現(xiàn)分析。
3.1串行解碼結(jié)構(gòu)
串行解碼結(jié)構(gòu)圖如圖1所示,幀檢測單元檢測到幀頭后表示后面的輸入有效,啟動譯碼器。初始化單元完成譯碼器的初始化;校驗節(jié)點單元和變量節(jié)點單元分別完成校驗節(jié)點和變量節(jié)點的更新計算,其中校驗節(jié)點單元還要判斷是否滿足校驗條件或達(dá)到最大迭代次數(shù);兩個RAM完成特定校驗矩陣迭代信息的位置置換;中心控制模塊完成整個系統(tǒng)的流程控制;緩沖模塊是為了達(dá)到速率匹配和能夠連續(xù)譯碼而設(shè)置的。
(1) 初始化單元
初始化信息是整個譯碼器最重要的譯碼依據(jù),在對一幀初始化信息進(jìn)行譯碼判決的過程中,迭代運算不斷調(diào)用的初始化信息必須保持不變,因此采用存儲器將初始化信息進(jìn)行存儲,在一幀的時間內(nèi)保持不變。一幀時間后將開始接收新的信息為下一幀譯碼做準(zhǔn)備。初始化單元在SystemGenerator中實現(xiàn)比較簡單,只要用一個ROM存儲所需的初始化信息,然后根據(jù)量化后的軟信息查表即可。
(2)VNU(變量節(jié)點)單元
VNU的功能為計算"變量一校驗"信息以及更新后驗對數(shù)似然比。其硬件實現(xiàn)圖如圖2所示,3個"校驗一變量"信息和1個比特初始化信息相加減去相對應(yīng)的1個"校驗一變量"信息所得到的值舍人處理后作為查找表運算的輸入,查找表用于計算公式,最后將查找表運算結(jié)果按符號位正負(fù)輸出至CNU處理單元,硬判決位輸出至校驗單元進(jìn)行奇偶校驗。
(3)CNU(校驗節(jié)點)單元
CNU的功能為計算"校驗一變量"信息。CNU實現(xiàn)與VNU基本相似,6個"變量一校驗"信息相加減去相對應(yīng)的1個"變量一校驗"信息所得到的值舍入處理后作為查找表運算的輸入,最后將查找表運算結(jié)果按計算的符號位正負(fù)輸出至VNU處理單元。由于是二進(jìn)制系統(tǒng),本文采用異或運算代替乘法運算計算符號位,其硬件實現(xiàn)圖如圖3所示。
3.2 串行解碼在SystemGenerator中的整體實現(xiàn)
串行解碼在SystemGeneratot中的整體實現(xiàn)如圖4所示,其中frame detect實現(xiàn)圖1中的幀檢測模塊用來啟動譯碼器,VNU,CNU完成變量節(jié)點和校驗節(jié)點更新的計算,2個單口RAM通過讀寫和地址的控制完成迭代信息的位置置換,其置換地址是預(yù)先在軟件中計算得出存在ROM中的。這種串行解碼結(jié)構(gòu)比較靈活,只需要改變ROM中的讀寫地址就可以適用于不同的LDPC碼(校驗矩陣的維數(shù),行重、列重必須相同),而對于每個LDPC碼其地址置換信息只需計算一次即可。原始信息經(jīng)過延遲用以與解碼后的數(shù)據(jù)比較。
4 UWB-LDPC的SystemGenerator參數(shù)化硬件仿真
4.1 系統(tǒng)仿真的總體框圖
系統(tǒng)仿真的總體框圖如圖5所示,原始數(shù)據(jù)通過LDPC編碼和調(diào)制,通過信道加上噪聲,然后解調(diào)后的量化軟信息進(jìn)入LDPC譯碼器進(jìn)行解碼,由于編碼和解碼都需要一定的時間,因此原始數(shù)據(jù)必須經(jīng)過延時后才能與譯碼數(shù)據(jù)進(jìn)行比較和計算誤碼率。
4.2 仿真環(huán)境
我們在SystemGenerator環(huán)境下實現(xiàn)了串行和并行兩種解碼方式以及不同初始化方案的LDPC碼,整個實現(xiàn)都采用參數(shù)化方式。為了方便驗證性能,本文還建立了VC仿真界面來設(shè)置不同的參數(shù)。SystemGenerator是DSP高層系統(tǒng)設(shè)計與Xilinx FPGA實現(xiàn)之間的"橋梁",他在Matlab/Simulink的環(huán)境下完成算法的建模,然后生成相應(yīng)的工程。ISE可對工程進(jìn)行仿真、綜合、最后完成算法的硬件化。仿真環(huán)境和參數(shù)設(shè)置見表1。
其中高斯信道的硬件模擬是采用文獻(xiàn)的BoxMuller算法。仿真采用蒙特卡羅仿真方法,LDPC解碼在不同環(huán)境下的BER性能和迭代次數(shù)如圖6所示。
圖6(a)表示的是誤碼率仿真圖,圖6(b)表示的是平均迭代次數(shù)仿真圖。仿真結(jié)果表明,對于傳統(tǒng)的LDPC碼采用硬件仿真的性能由于量化的影響略差于軟件仿真,但采用了文獻(xiàn)改進(jìn)初始化方案的UWB-LDPC的硬件仿真性能要好于軟件仿真的傳統(tǒng)LDPC編碼方式。尤其是信噪比大于1.5dB時,UWB-LDPC的BER性能有較大的改善,在10-4時大約比傳統(tǒng)的LDPC大約有1.2 dB的編碼增益,平均迭代次數(shù)也有所減少。因此改進(jìn)的LDPC碼比傳統(tǒng)的LDPC碼更能滿足UwB通信需求。
5結(jié) 語
本文對LDPC碼在UWB通信中的應(yīng)用做了探索,整個仿真都在SystemGenerator中參數(shù)化實現(xiàn)并構(gòu)建了硬件仿真環(huán)境,為LDPC碼在UWB通信中的應(yīng)用和實現(xiàn)進(jìn)行了有益的嘗試。