基于微型TCP/IP協(xié)議與AJAX的動態(tài)Web服務器設計
為了降低非規(guī)則低密度奇偶校驗(low-densityparity-check,LDPC)碼譯碼算法的復雜度,提出一種適合數(shù)字信號處理囂(digital signal processor,DSP)實現(xiàn)的低運算復雜度、低誤碼平臺譯碼的改進算法。
該算法校驗節(jié)點的運算采用修正最小和算法,外信息的更新采用串行方式,既保持了串行和積算法在有限迭代次數(shù)下譯碼門限低的優(yōu)點,又降低了節(jié)點運算復雜度和誤碼平臺。用定點DSP芯片實現(xiàn)的非規(guī)則LDPC碼譯碼器的實測結果表明,該算法能以較低的實現(xiàn)復雜度獲得低的誤碼平臺和譯碼門限。
低密度奇偶校驗(low-density paruty-check,LDPC)碼是一種非常有效的信道編碼方案,已經(jīng)成為新一代數(shù)字衛(wèi)星廣播(DVB-S2)等標準的信道編碼方案,具有重要的應用價值。
LDPC碼譯碼器設計的實現(xiàn)成為近年來研究的熱點。LDPC碼譯碼器的實現(xiàn)方法主要有2種:一種是基于超大規(guī)模集成電路(VLSI)的設計;另外一種是基于數(shù)字信號處理器(digital signalprocessor,DSP)等指令串行執(zhí)行系統(tǒng)的實現(xiàn)。
LDPC碼譯碼多采用和積(sum-product,SP)譯碼算法,影響其復雜度的因素有迭代次數(shù)和每次迭代的運算復雜度。由于DSP芯片指令串行執(zhí)行的特點,要實現(xiàn)較高速率的LDPC碼譯碼器,必須同時減少迭代譯碼次數(shù)和每次迭代的運算量。文提出一種逐個校驗節(jié)點串行更新的迭代譯碼算法(S-SP),并說明在二進制對稱信道(BSC)下可以有效降低迭代譯碼的次數(shù);為降低每次迭代的運算復雜度,校驗節(jié)點的運算存在一些簡化的譯碼算法,如修正最小和算法(modified mim-sum,MMS)等,但這些算法的譯碼門限有一定的損失。
本文研究非規(guī)則LDPC碼的S-SP算法在加性高斯白噪聲(AWGN)信道下的性能,說明該算法雖能降低迭代次數(shù),但是存在誤碼平臺較高的問題??紤]到簡化的譯碼算法(例如MMS算法)有復雜度和誤碼平臺低的特點,本文綜合這2類算法的特點,提出了串行MMS(S-MMS)算法,該算法在有限迭代次數(shù)下具有低的誤碼平臺和較低的譯碼門限,實現(xiàn)了復雜度和性能的較好折衷,適合于用DSP實現(xiàn)。
1 LDPC碼簡介和迭代譯碼算法
1.1 LDPC碼簡介
LDPC碼是一種分組碼。其校驗矩陣為超稀疏隨機矩陣,設為H。對于任何一個合法的碼字v,都有校驗方程。由該方程可知,校驗矩陣中每行的非零元素,將所對應的LDPC碼元映射成一個相當于校驗碼的約束,定義這種約束關系為一個校驗節(jié)點。校驗矩陣中每列的非零元素對應LDPC碼的同一個碼元,形成了一個相當于重復碼的約束,定義這種約束關系為一個變量節(jié)點,而矩陣中的非零元素,既參與了變量節(jié)點的重復碼的約束關系,又參與了校驗節(jié)點的校驗碼的約束關系;因此定義矩陣中非零元素所對應的關系為連結這2種節(jié)點的“連結線”。因此,LDPC碼的結構也可以用圖1的因子圖表示。
LDPC碼的編碼,先利用校驗矩陣得到對應的生成矩陣,然后直接用信息序列和生成矩陣相乘即可得到編碼碼字,而LDPC碼的譯碼則利用校驗節(jié)點和變量節(jié)點的約束關系,在2類節(jié)點間通過“連結線”進行外信息的傳遞,從而實現(xiàn)迭代譯碼。
1.2 LDPC碼迭代譯碼算法
定義為變量節(jié)點n的先驗信息,即對數(shù)似然比;表示第k次迭代中,從校驗節(jié)點m到變量節(jié)點n的外信息;表示第k次迭代中,從變量節(jié)點n到校驗節(jié)點m的外信息;為第k次迭代后變量節(jié)點n的后驗信息;M(n)表示和變量節(jié)點n相連的校驗節(jié)點的集合;N(m)表示和校驗節(jié)點m相連的變量節(jié)點的集合。
標準的和積(SP)譯碼算法如下。
步驟l 初始化。
其中:xn為發(fā)送比特;yn為接收符號。采用二進制相移鍵控(BPSK)調(diào)制,信道為AWGN信道。
步驟2迭代譯碼。
迭代譯碼包括2個步驟,變量節(jié)點的計算和校驗節(jié)點的計算。本文中設定固定的迭代次數(shù)K,然后判決輸出。
1)變量節(jié)點的運算(對所有的變量節(jié)點n)。
2)校驗節(jié)點的運算(對所有的校驗節(jié)點m)。
其中k≥1.
步驟3后驗信息計算和判決輸出。
串行和積譯碼算法(S-SP),在計算校驗節(jié)點m時,需要將上面和積(SP)算法中的步驟2變量節(jié)點的運算修改為
其k≥1,假設校驗節(jié)點的計算從1開始,也即m依次取1,2,3,…,M,這里M為校驗節(jié)點的個數(shù),如圖1所示。
S-SP算法和SP算法的不同點在于:在SP算法中,所有與校驗節(jié)點m相鄰的變量節(jié)點更新時所使用的校驗節(jié)點外信息都來自上一次的迭代輸出,然后進行校驗節(jié)點m的運算。而在S-SP算法中,計算校驗節(jié)點m時,和其相連變量節(jié)點的更新可以使用本次迭代中已經(jīng)更新過的外信息。從上面的分析也可看出,S-SP算法的復雜度和SP算法相同,另外,可通過合理設計,使得該算法需要的存儲資源可降低為原來的1/2。
2 改進的迭代譯碼算法和優(yōu)化設計
文指出,在BSC信道下,S-SP算法可以有效降低迭代譯碼次數(shù)。本文研究了該算法在AWGN信道下的特點,發(fā)現(xiàn)該算法雖可以降低迭代譯碼次數(shù),但是存在誤碼平臺較高的缺點。后面將利用仿真結果說明這一特點。
本文將S-SP算法與修正最小和算法(MMS)結合,提出了改進算法,將外信息的更新采用串行更新策略,校驗節(jié)點的計算采用修正最小和算法,稱為串行修正最小和算法(S-MMS)。該算法解決了S-SP算法的誤碼平臺較高的問題,譯碼門限和標準的SP算法相比,性能損失很小。
提出的串行修正最小和算法(S-MMS),其迭代譯碼步驟2修改如下。
設定固定的迭代次數(shù)K,對校驗節(jié)點m,依次取1,2,3,…,M,進行下面的2個步驟。
1)變量節(jié)點的運算(只計算和校驗節(jié)點m相連的變量節(jié)點)。
其中:r=│N(m)│表示集合N(m)中的元素個數(shù),即非規(guī)則碼的校驗節(jié)點m的階數(shù);βr為非規(guī)則碼不同階校驗節(jié)點的偏移因子;sgn()為符號函數(shù)。
最優(yōu)的偏移因子βr值,可以采用密度演化或者計算機仿真的方法得到。
本算法變量節(jié)點的運算只包括求和運算,校驗節(jié)點只包括最大、最小和減法操作,與SP算法的校驗節(jié)點運算的非線性函數(shù)ln(tanh())相比,量化噪聲對其影響小。本文針對定點DSP芯片特點,信道觀測值和迭代譯碼中的外信息,都采用16 b的量化精度,有利于優(yōu)化指令并行度,并可以降低存儲器讀取、存儲延時。[!--empirenews.page--]
3 算法性能仿真測試
為驗證本文算法的有效性,結合非規(guī)則LDPC碼對算法的性能進行了計算機仿真,并利用TI公司的定點DSP對其性能進行了測試。
仿真采用的非規(guī)則LDPC碼的碼長為4.096kb,碼率為1/2,變量節(jié)點和校驗節(jié)點的度分布分別為λ(x)=0.27x+0.25x2+0.01x3+0.47x9和ρ(x)=0.47_x6+0.53x7。
據(jù)ρ(x)可知,非規(guī)則LDPC碼校驗節(jié)點的階數(shù)為7和8,通過計算機仿真得到的最優(yōu)偏移因子分別為β7=0.45,β8=O.60。
圖2給出了不同迭代次數(shù)下S-SP譯碼算法和SP算法的性能比較??梢钥闯?,在AWGN信道下,S-SP算法仍可以有效地降低迭代譯碼次數(shù),或者說在相同的有限迭代譯碼次數(shù)下,尤其是迭代次數(shù)為10次和20次時,性能有明顯改善;但是,S-SP算法的缺點是有較高的誤碼平臺。
圖3給出了不同迭代次數(shù)下,S-MMS算法和SP算法的性能比較??梢钥闯?,S-MMS算法誤碼平臺降低,譯碼門限略高于SP算法,在迭代次數(shù)較小時,性能仍有明顯改善。當?shù)螖?shù)為20,Eb/No較小時,S-MMS算法與SP算法相比性能略有惡化,但Eb/No較大時,性能有明顯改善,且誤碼平臺降低,例如誤比特率Pe為10-5時,信噪比改善約0.1 dB。在誤碼率10-6時,信噪比改善約0.25 dB。當?shù)螖?shù)為50,Eb/No較小時,譯碼門限惡化約0.15 dB,Eb/No較大時,性能仍有所改善,誤碼平臺降低。
綜合比較圖2和圖3,S-MMS算法和S-SP算法相比,Eb/No較小時,譯碼門限惡化約為0.1~0.2 dB,Eb/No較大時,例如在誤比特率Pe為10-6時,性能仍有所改善??紤]到一般通信系統(tǒng)要求譯碼后的誤碼率低于10-5,S-MMS算法在Eb/No較小時的性能惡化對其應用影響不大,適合實際應用。
圖4給出了不同迭代次數(shù)下,利用TI公司的DSP芯片TMS320C6416T實現(xiàn)的采用量化SMMS算法的譯碼器的仿真測試性能和未量化S-MMS算法的比較??梢钥闯觯cDSP芯片上實現(xiàn)的S-MMS算法和未量化的算法性能幾乎完全一致,進一步說明了本算法利用DSP芯片實現(xiàn)的有效性。DSP芯片實現(xiàn)的譯碼器的具體性能見表1。
文中用DSP實現(xiàn)的LDPC碼譯碼器采用的碼長為10.228 kb,碼率為1/2,在誤碼率10-5時,信噪比為1.65 dB。本文設計的譯碼器采用的LDPC碼的碼長為4.096 kb,碼率也為1/2,若采用50次迭代,在誤碼率10-5時,信噪比為1.55 dB;因此,本文實現(xiàn)的譯碼器的糾錯性能優(yōu)于文中設計的譯碼器。另一方面,本文譯碼器設計使用C語言實現(xiàn),指令級的優(yōu)化可進一步提高工作速率。
4 結 論
本文提出了一種適合數(shù)字信號處理器(DSP)實現(xiàn)的低復雜度、低誤碼平臺的譯碼算法。該算法校驗節(jié)點運算采用MMS算法,節(jié)點間的外信息更新采用串行方式,既保持了S-SP算法有限迭代次數(shù)下譯碼門限低的優(yōu)點,又利用MMS算法的優(yōu)點降低了誤碼平臺和實現(xiàn)復雜度,克服了S-SP算法的復雜度高、誤碼平臺高的明顯缺點,獲得了較好的性能折衷,很好地適應了DSP芯片指令串行執(zhí)行的特點。