黎相成,黃繹琿,莫莉歆,李光榮,杜立嬋
(1.廣西大學 計算機與電子信息學院,南寧 530004;2.廣西多媒體通信與網(wǎng)絡技術重點實驗室,南寧 530004;3.南寧職業(yè)技術學院 人工智能學院,南寧 530008)
低密度奇偶校驗(Low-Density Parity-Check,LDPC)碼是一種能逼近香農(nóng)理論極限的好碼[1],已入選5G信道編碼方案,在數(shù)據(jù)存儲以及深空衛(wèi)星通信系統(tǒng)方面也獲得了廣泛的應用[2-6]。LDPC碼也因其特殊的優(yōu)勢和性能獲得了眾多學者的青睞,得到了大量的研究,具體包括LDPC碼的設計、構造、編譯碼算法、性能分析以及應用等方面,產(chǎn)生了眾多優(yōu)秀的研究成果[7-14]。
基于軟判決的譯碼算法是其中性能最優(yōu)異的譯碼算法,最著名的就是基于置信傳播的軟判決迭代譯碼算法,即置信傳播(Belief Propagation,BP)或和積譯碼算法[8-9](Sum-Product Algorithm,SPA),而基于硬判決的比特翻轉(Bit-flipping,BF)譯碼算法是目前最簡單的算法之一。此后為提高譯碼性能,研究者在BF算法中引入可靠度,提出了一系列基于可靠度的改進算法,主要包括有加權比特翻轉(Weight Bit-flipping,WBF)譯碼算法[10]、2比特加權比特翻轉(Two-bit Weighted Bit-flipping,TB-WBF)譯碼算法[11]以及增強自適應比特定位門限的比特翻轉(Adaptive Bit-local Threshold Bit-flipping,TABT-BF)算法[12]等。上述基于BF提出的一系列改進算法,由于其核心譯碼思想的局限,性能提升有限。為進一步提升譯碼性能,Huang等人[13]提出了一種基于可靠度的迭代大數(shù)邏輯譯碼(Reliability Based Iterative-Majority Logic Decoding,RBI-MLGD)算法。在此基礎上,Chen等人[14]進一步提出改進的基于可靠度的迭代大數(shù)邏輯譯碼(Modified Reliability Based Iterative-Majority Logic Decoding,RBI-MLGD)算法,在譯碼函數(shù)中引入比例修正因子,提升了譯碼性能和收斂速度。陳海強等人[15]在變量節(jié)點結合量化方法和列重比例等信息,提出了一種基于列重比例的譯碼算法。此外,黎相成等人[16]提出了一種基于二元譯碼信息的迭代大數(shù)邏輯(Binary Message-Majority Logic Decoding,BM-MLGD)譯碼算法,采用LDPC碼列重與量化比特相近或一致的非均勻量化方案,實現(xiàn)了譯碼性能的提升。由于受限于2的冪次方量化范圍限制,對列重γ≠2b的情況,該算法的譯碼性能會出現(xiàn)不穩(wěn)定的情況。在上述算法中,為了提高譯碼性能及穩(wěn)定性,研究者們通常采用信息修正技術對譯碼迭代的過程信息進行處理。其修正系數(shù)通常采用仿真方法來獲取,是次優(yōu)的,且大多采用固定的比例修正系數(shù),可能存在信息修正的盲區(qū)。比如在對MRBI-MLGD譯碼算法的誤幀率(Frame Error Rate,FER)性能曲線進行考察時,會發(fā)現(xiàn)較早出現(xiàn)錯誤平層現(xiàn)象。
應用廣泛的比例積分微分(Proportion Integration Differentiation,PID)控制算法是一種經(jīng)典的閉環(huán)控制算法,該算法中采用了比例、積分和微分控制項。研究分析發(fā)現(xiàn),基于可靠度的迭代LDPC譯碼算法與控制算法的核心迭代機理有著非常相似之處,比如在上述MRBI-MLGD算法的譯碼函數(shù)中就采用了類似的比例修正項。為獲得控制系統(tǒng)的穩(wěn)定,PID控制算法中一般需要采用比例積分(PI)、比例微分(PD)或PID等控制架構,即根據(jù)系統(tǒng)特點需要采用2~3個控制項。受此啟發(fā),本文通過對MRBI-MLGD算法的FER譯碼性能較早出現(xiàn)錯誤平層原因進行深入分析后,提出了一種引入積分修正的二維信息大數(shù)邏輯LDPC譯碼算法。即同時采用比例和積分修正項,實現(xiàn)PI控制架構的二維譯碼信息修正策略,希望能解決MRBI-MLGD算法中信息修正盲區(qū)及無效迭代,消除或延緩FER性能曲線中出現(xiàn)錯誤平層的問題。此外,相比BM-MLGD算法的應用受限于γ=2b的情況,本文提出的算法能適用于各種列重的大數(shù)邏輯可譯LDPC碼。
本文主要考慮基于有限域和有限幾何構造的規(guī)則LDPC碼(γ,ρ),其中,γ為恒定的列重,ρ為恒定的行重。令c為稀疏矩陣H=[hi,j]m×n(hi,j∈F2)定義的LDPC碼字序列,為方便算法描述,定義以下兩個下標集合:一個為矩陣H中第i行中非零列的下標集合Ni={j:0≤j≤n-1,hij≠0};另一個為矩陣H中第j列非零行的下標集合Mj={i:0≤i≤m-1,hij≠0}。
(1)
式中:Δ為量化步長;b為量化位數(shù)。對量化序列q進行硬判決,即可獲得硬判決碼字序列z=(z0,z1,…zn-1)。這里,如果qj≥0,則zj=0;否則zj=1。同時,可以看出,|qj|的值越大,相應地,其硬判決為0或1的可靠性就越高。
(2)
(3)
(4)
最后,變量節(jié)點Vj的譯碼信息迭代更新策略如式(5)所示:
(5)
在校驗節(jié)點Ci的信息處理與原始RBI-MLGD算法一致,只是在變量節(jié)點Vj的譯碼信息更新策略修改為
(6)
(7)
式中:sgn表示取符號操作。同時,該算法采用與列重γ相關的非均勻量化方法,相比RBI-MLGD算法和MRBI-MLGD算法,在復雜度較低的情況下仍能保持一定的譯碼性能。
PID閉環(huán)控制算法的本質就是采用被控系統(tǒng)的實際輸出值與期望值的偏差,按照比例、積分和微分的函數(shù)關系進行計算,并采用該計算結果來修正系統(tǒng)的輸入信號,實現(xiàn)系統(tǒng)穩(wěn)定的輸出。PID控制算法的離散表達方法如式(8)所示:
(8)
式中:E(k)為輸出值與目標值之間的差。PID控制算法的一個重要工作就是對式(8)中的KP、KI和KD三個參數(shù)進行整定,找到合適的參數(shù),從而實現(xiàn)系統(tǒng)正確、可靠及穩(wěn)定的輸出。
對采用循環(huán)迭代機制的LDPC譯碼算法而言,其譯碼迭代過程實質上可理解為一種閉環(huán)反饋機制。例如,在進行迭代譯碼時,首先,變量節(jié)點從信道獲取初始的信道信息(初值);然后,從與之相鄰的校驗節(jié)點獲取的反饋信息中(包括外信息、可靠度和校驗和等)提取誤差信息E(k),進行譯碼信息的處理和更新;最后,變量節(jié)點將更新后的信息回饋至與之相鄰的檢驗節(jié)點進行校驗運算,當滿足所有校驗方程或達到最大迭代次數(shù)時,結束譯碼迭代過程并輸出相關信息,否則,如不滿足上述條件,則變量節(jié)點繼續(xù)收集校驗節(jié)點的反饋信息,進入下一次迭代處理。從以上述描述可以看出,LDPC譯碼迭代過程與閉環(huán)控制系統(tǒng)是非常相似的,采用了系統(tǒng)輸出信息(硬判決與校驗和等相關信息)來調整系統(tǒng)的輸入(變量節(jié)點信息),最終實現(xiàn)系統(tǒng)的穩(wěn)定(滿足所有校驗方程)。其譯碼迭代閉環(huán)結構如圖1所示。
圖1 迭代譯碼閉環(huán)結構示意圖
2.2.1 MRBI-MLGD算法FER性能曲線錯誤平層較高原因分析
從圖2可以看出,修正系數(shù)α的取值越小,其錯誤平層較高;反之,隨著α的增大,錯誤平層明顯降低。
圖2 不同α取值對F2(961,721) LDPC碼譯碼性能影響
2.2.2 基于積分修正的二維信息LDPC譯碼方案具體實現(xiàn)
從上述閉環(huán)控制角度來分析MRBI-MLGD算法,可以發(fā)現(xiàn)該算法只采用了P調節(jié),即只引入了比例修正策略。由于其修正方法單一,可能會造成迭代過程的譯碼信息不能進行有效的保留和傳遞,因此迭代譯碼系統(tǒng)存在穩(wěn)態(tài)誤差,出現(xiàn)無效迭代或信息修正的盲區(qū)。受閉環(huán)控制PID算法的啟發(fā),可以在MRBI-MLGD算法中引入積分修正策略,即采用PI調節(jié)結構,以期實現(xiàn)譯碼性能的提升和降低錯誤平層。接下來將對具體的實現(xiàn)方法進行描述。
2.2.2.1 基于調制映射的變量節(jié)點信息處理方法
(9)
2.2.2.2 采用積分修正項的迭代更新規(guī)則
(10)
相應地,變量節(jié)點譯碼信息更新策略修改為式(11):
(11)
從式(11)可以看出,本文提出的算法不僅考慮了信道的初始信息,同時,在上述譯碼函數(shù)中引入PID的相關控制思想,綜合考慮了譯碼迭代系統(tǒng)的變化趨勢,同時采用P調節(jié)和I調節(jié)策略,實現(xiàn)了二維譯碼信息修正技術。因此,采用上述譯碼信息更新策略對譯碼性能的提升以及系統(tǒng)魯棒性提高應該是有益的。
本文提出的基于積分修正的二維信息LDPC譯碼算法具體實現(xiàn)方案描述如下:
Step1 輸入:設置最大迭代次數(shù)Imax,接收信號向量y,修正系數(shù)KP和KI,量化參數(shù)b和Δ。
Step3 迭代過程,對k step3.1 按式(1)計算硬判決序列z(k); step3.2 按式(2)計算校驗和s(k),如果s(k)=0,則執(zhí)行Step 4; step3.7 迭代次數(shù)k=k+1。 Step4 輸出:硬判決序列z(k)。 表1 單次譯碼迭代計算復雜度比較表 根據(jù)以上的算法描述,本文將繼續(xù)通過計算機仿真的方法,對提出的譯碼算法進行仿真實驗,考察其譯碼性能。 實驗1:采用F2(4 095,3 367)規(guī)則循環(huán)LDPC碼[10]進行仿真實驗。該LDPC碼基于有限幾何特征構造,其碼率為0.82,行重ρ為64,列重γ也為64。本實驗所涉及仿真參數(shù)設置如下:對均勻量化,其量化比特均設置b=8 b,量化間隔Δ=0.015 6;對MRBI-MLGD譯碼算法,設置比例修正系數(shù)α=1.5;對BM-MLGD譯碼算法,為與列重γ相匹配,采用6 b非均勻量化策略,其量化參數(shù)按文獻[16]的方法設置yth=2,r=0.92;對本文提出算法,設置比例修正系數(shù)KP=1.5和積分修正系數(shù)KI=0.05。所有算法中,最大仿真迭代次數(shù)均設置為Imax=30。圖3給出了各種算譯碼法對該碼的FER性能仿真曲線。 圖3 對F2(4 095,3 367) LDPC碼的譯碼FER性能比較 從圖3的FER性能曲線可以看出,本文算法在中低信噪比區(qū)間與MRBI-MLGD算法和BM-MLGD算法譯碼性能相近或有稍好,同時優(yōu)于RBI-MLGD譯碼算法近0.2 dB的譯碼性能,而與SPA譯碼算法相比具有約0.4 dB的性能差距;在高噪比區(qū)域,本文算法譯碼性能表現(xiàn)穩(wěn)定,其FER曲線沒有出現(xiàn)錯誤平層,MRBI-MLGD算法在信噪比為4.5 dB之后明顯出現(xiàn)了錯誤平層;由于BM-MLGD算法采用了6 b非均勻量化策略,具有與列重γ=64一致的量化范圍,在整個工作信噪比區(qū)間其譯碼性能表現(xiàn)穩(wěn)定。 實驗2:采用F2(1 023,781)規(guī)則循環(huán)LDPC碼[10]進行仿真實驗。該LDPC碼基于歐氏幾何方法構造,其碼率為0.76,行重ρ為32,列重γ也為32。仿真參數(shù)設置如下:對均勻量化,量化比特b=8 b,量化間隔Δ=0.015 6;在MRBI-MLGD譯碼算法中,設置比例修正系數(shù)α=3.1;對RBI-MLGD譯碼算法,為與列重γ相匹配,采用5 b非均勻量化策略,其量化參數(shù)按文獻[16]設置為yth=2,r=0.93;對本文提出的算法,設置比例修正系數(shù)KP=3.1和積分修正系數(shù)KI=0.1。所有算法中,最大仿真迭代次數(shù)均設置為Imax=30。對該碼的各種譯碼算法FER性能仿真曲線如圖4所示。 圖4 對F2(1 023,781) LDPC碼的譯碼FER性能比較 從圖4的FER譯碼性能曲線可以看出,在中低信噪比區(qū)域,本文算法與MRBI-MLGD、BM-MLGD算法擁有幾乎相同的譯碼性能,相較于RBI-MLGD算法均具有約0.3 dB的性能增益,而與性能最優(yōu)的SPA算法相比,存在約0.6 dB的譯碼性能差距;在中高信噪比區(qū)域,本文算法的FER譯碼性能表現(xiàn)穩(wěn)定,在較高的信噪比區(qū)間沒有出現(xiàn)錯誤平層,MRBI-MLGD算法在信噪比為4.1 dB之后出現(xiàn)了較為明顯的錯誤平層;BM-MLGD算法由于采用了5 b非均勻量化策略,具有與列重γ=32一致的量化范圍,在高信噪比區(qū)域其譯碼性能仍然表現(xiàn)穩(wěn)定。 實驗3:采用F2(961,721)規(guī)則循環(huán)LDPC碼[17]進行仿真實驗。該碼采用有限域特征進行構造,其碼率為0.75,列重和行重均為30。本實驗所涉及仿真參數(shù)設置如下:對均勻量化,量化比特b=8 b,量化間隔Δ=0.015 6;在MRBI-MLGD譯碼算法中,設置比例修正系數(shù)α=3.5;對BM-MLGD譯碼算法,為與列重γ=30的數(shù)值比較接近,采用5 b非均勻量化策略,即25=32,其量化參數(shù)按文獻[16]的方法設置yth=2,r=0.93;對本文提出的算法,設置比例修正系數(shù)KP=3.5和積分修正系數(shù)KI=0.1。所有算法中,最大仿真迭代次數(shù)均設置為Imax=30。圖5給出了各種算譯碼法對該碼的FER性能仿真曲線。 圖5 對F2(961,721) LDPC碼的譯碼FER性能比較 從圖5的FER譯碼性能曲線可以看出,在中低信噪比區(qū)域,本文算法譯碼性能均稍優(yōu)于MRBI-MLGD和BM-MLGD譯碼算法,同時在FER=10-4時相較于RBI-MLGD算法,本文算法具有約0.4 dB的性能增益,而與性能最優(yōu)的SPA算法相比存在約0.6 dB的譯碼性能差距;在中高信噪比區(qū)域,本文算法的FER譯碼性能表現(xiàn)穩(wěn)定,在較高的信噪比區(qū)間沒有出現(xiàn)錯誤平層,而MRBI-MLGD算法在信噪比為4.2 dB之后出現(xiàn)了較為明顯的錯誤平層;BM-MLGD算法采用了5 b非均勻量化策略,而該碼的列重γ=30,量化范圍與列重不一致,存在譯碼信息修正的盲區(qū),在信噪比為4.3 dB之后,從FER曲線發(fā)現(xiàn),開始出現(xiàn)較明顯的錯誤平層。 從上述3個仿真實驗可以看出,MRBI-MLGD算法由于其譯碼函數(shù)沒有保留此前的譯碼信息,存在信息修正的盲區(qū),其FER性能曲線均較早出現(xiàn)了明顯的錯誤平層;而BM-MLGD算法巧妙地利用信息修正與列重大小的關系,通過引入低比特的非均勻量化策略,使量化比特與列重一致,有效消除了信息修正盲區(qū),取得了優(yōu)異的譯碼性能。但是由于其列重與量化比特需要滿足γ=2b,其應用范圍受到一定限制。例如,在實驗3對列重γ=30的LDCP碼進行譯碼時,該算法也出現(xiàn)了較明顯的錯誤平層。本文提出的算法由于引入了積分修正方法,實現(xiàn)了比例修正和積分修正二維信息修正策略,即采用了PID控制算法中的PI調節(jié)架構,在整個信噪比區(qū)間明顯提升了譯碼系統(tǒng)的適應性和魯棒性,譯碼性能表現(xiàn)穩(wěn)定。 本文主要對MRBI-MLGD算法的FER譯碼性能錯誤平層較高的原因進行了深入分析,在此基礎上提出了一種基于積分修正的二維信息大數(shù)邏輯LDPC譯碼算法。該算法結合PID控制思想,通過設計合理的譯碼信息獲取方法,在原有的比例修正基礎上增加積分修正項,即采用了PI控制架構,實現(xiàn)了二維信息修正策略,解決了MRBI-MLGD算法中信息修正的盲區(qū),明顯降低了FER性能的錯誤平層,獲得了譯碼性能的提升。然而,由于該算法在譯碼迭代過程中引入了積分修正項,增加了一定的譯碼復雜度。此外,相比BM-MLGD算法的應用受限于γ=2b的情況,本文提出的算法適用于各種列重的大數(shù)邏輯可譯LDPC碼。仿真結果表明,本文提出的基于積分修正的譯碼算法在整個工作信噪比區(qū)間保持了譯碼性能的穩(wěn)定,表現(xiàn)出較強的魯棒性,具有較廣的適用范圍。3 譯碼復雜度和性能仿真分析
3.1 譯碼復雜度
3.2 譯碼性能
4 結 論