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