專利名稱:基于不對(duì)等消息更新的置信傳播ldpc譯碼方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)字信息傳輸技術(shù)領(lǐng)域,特別涉及基于不對(duì)等消息更新的置信傳播LDPC譯碼方法。
背景技術(shù):
低密度奇偶校驗(yàn)(LDPC,Low Density Parity Check)碼是一種線性分組碼,可以用生成矩陣G和校驗(yàn)矩陣H來表示,并且它的奇偶校驗(yàn)矩陣H中非零元素的個(gè)數(shù)遠(yuǎn)遠(yuǎn)小于零元素的個(gè)數(shù)。
LDPC碼的譯碼算法主要是基于二分圖的消息傳遞(Message Passing)算法,具體包括硬判決譯碼算法、概率譯碼算法、和積算法、最小和算法、比特翻轉(zhuǎn)和大數(shù)邏輯等LDPC譯碼方法。
其中,和積(Sum Product)算法又稱置信傳播(BP,Belief Propagation)算法,實(shí)質(zhì)上是二進(jìn)制概率譯碼算法的對(duì)數(shù)域運(yùn)算。譯碼器的輸入為接收序列的對(duì)數(shù)似然比,在對(duì)數(shù)空間下,通過利用變量節(jié)點(diǎn)和校驗(yàn)節(jié)點(diǎn)的約束關(guān)系進(jìn)行迭代譯碼。此時(shí)變量節(jié)點(diǎn)的約束關(guān)系表現(xiàn)為“和”的形式,即各變量節(jié)點(diǎn)的輸出是各個(gè)輸入對(duì)數(shù)似然比的和;而校驗(yàn)節(jié)點(diǎn)的約束關(guān)系表現(xiàn)為“積”的形式,即各校驗(yàn)節(jié)點(diǎn)的輸出是各個(gè)輸入對(duì)數(shù)似然值某種函數(shù)的乘積。由于兩個(gè)校驗(yàn)節(jié)點(diǎn)的計(jì)算特性,因此該算法稱之為“和積”算法。
為便于描述,定義幾個(gè)符號(hào)集,集合M(n)表示與變量節(jié)點(diǎn)n相鄰的校驗(yàn)節(jié)點(diǎn)的集合。M(n)\m表示集合M(n)中不包含校驗(yàn)節(jié)點(diǎn)m的集合;N(m)表示與校驗(yàn)節(jié)點(diǎn)m相鄰的變量節(jié)點(diǎn)的集合。N(m)\n表示N(m)集合不包含變量節(jié)點(diǎn)n的集合。n為變量節(jié)點(diǎn)的索引,m為校驗(yàn)節(jié)點(diǎn)的索引。
如前所述,LDPC碼是線性分組碼,因此碼集C中的碼字c=(c1,c2,…,cN)滿足伴隨式S=H·cT=0,其中H為L(zhǎng)DPC碼的校驗(yàn)矩陣,cT表示判決得到的碼字c的矩陣轉(zhuǎn)置。LDPC譯碼器就是根據(jù)接收序列y和約束條件S=H·cT=0判斷發(fā)送碼字c的取值。通過計(jì)算后驗(yàn)概率P(cn|y,S=0),確定碼字其中argmax表示尋找使得f(x)達(dá)到最大值時(shí)的x值。
利用BP算法進(jìn)行LDPC譯碼的方法具體包括以下步驟 步驟1,初始化; 在本步驟中,將每個(gè)變量節(jié)點(diǎn)n傳遞給該變量節(jié)點(diǎn)的各個(gè)相鄰校驗(yàn)節(jié)點(diǎn)m的當(dāng)前信息
初始化為
步驟2,迭代過程; (1)更新每個(gè)校驗(yàn)節(jié)點(diǎn)m傳遞給與該校驗(yàn)節(jié)點(diǎn)相鄰的各個(gè)變量節(jié)點(diǎn)n的當(dāng)前信息φmn
(2)變量節(jié)點(diǎn)更新 對(duì)每個(gè)變量節(jié)點(diǎn)n=1,…,N和m∈M(n),更新該變量節(jié)點(diǎn)傳遞給其相鄰校驗(yàn)節(jié)點(diǎn)m的當(dāng)前信息
為
并對(duì)每個(gè)變量節(jié)點(diǎn)n=1,…,N,計(jì)算該變量節(jié)點(diǎn)的偽后驗(yàn)概率
步驟3,嘗試判決; 本步驟中,具體判決方式可以為
其中,函數(shù)sgn()返回
的符號(hào)的整數(shù),即
步驟4,計(jì)算校驗(yàn)和S=HcT,如果S=0或循環(huán)迭代次數(shù)達(dá)到門限值,則譯碼結(jié)束;否則,返回步驟2進(jìn)行下一次迭代。
對(duì)數(shù)域的譯碼算法是概率譯碼算法的簡(jiǎn)化,同時(shí)不影響譯碼性能。但是由于和積算法含大量雙曲正切和反正切運(yùn)算,運(yùn)算復(fù)雜度依舊很高,因此,人們又提出了最小和算法(min-sum),該算法是對(duì)BP算法中校驗(yàn)節(jié)點(diǎn)的計(jì)算進(jìn)行簡(jiǎn)化,使得算法中只含有加法以及求最小值運(yùn)算。最小和算法通過在搜索過程中逐步減少不太可能的碼字解,來減少?gòu)?fù)雜度。最小和算法的具體實(shí)現(xiàn)步驟請(qǐng)參考相關(guān)文獻(xiàn)。
在校驗(yàn)矩陣不存在環(huán)的基礎(chǔ)上,由于每個(gè)變量節(jié)點(diǎn)接收到的不同相鄰校驗(yàn)節(jié)點(diǎn)傳遞的當(dāng)前信息
是相互獨(dú)立的,錯(cuò)誤消息無法利用環(huán)進(jìn)行傳輸,因此BP譯碼算法可以實(shí)現(xiàn)最大后驗(yàn)概率譯碼。但是若校驗(yàn)矩陣中含有環(huán),置信度傳播算法譯碼器中變量節(jié)點(diǎn)接收到的相鄰校驗(yàn)節(jié)點(diǎn)所傳遞的當(dāng)前信息只有在最初的迭代過程中滿足信息相互獨(dú)立的條件,在之后的迭代過程中,錯(cuò)誤信息可以利用環(huán)進(jìn)行傳輸,從而造成錯(cuò)誤信息的擴(kuò)散,影響譯碼性能。這里的迭代過程對(duì)應(yīng)的迭代次數(shù)小于Tanner圖中環(huán)長(zhǎng)的一半,而構(gòu)造的有限長(zhǎng)度的LDPC碼一般包含大量的環(huán)其對(duì)應(yīng)的環(huán)長(zhǎng)也比較小,所以采用BP譯碼算法解碼對(duì)應(yīng)的LDPC碼,特別是中短碼長(zhǎng)的LDPC碼,由于無法避免地會(huì)存在環(huán),因此其譯碼性能只能近似最大后驗(yàn)概率(MAP,Maximum A Posteriori)譯碼,兩者之間存在性能差異。
提高中短碼長(zhǎng)的LDPC的置信傳播算法的譯碼性能的一種方法就是采用代數(shù)方法構(gòu)造LDPC碼的校驗(yàn)矩陣,來控制碼的最小距離或環(huán)長(zhǎng)。因此,相對(duì)于隨機(jī)構(gòu)造的規(guī)則LDPC,這些碼的BP譯碼有更好的性能,但離最大似然譯碼性能仍有距離。
為了降低BP算法和MAP譯碼性能間的差距,有的文獻(xiàn)提出將置信度排序譯碼(OSD,Ordered Statistic Decoding)結(jié)合到BP算法中,但OSD算法復(fù)雜度過高,很難應(yīng)用碼長(zhǎng)大于500的LDPC碼上。有人還提出了一種增加型BP(Augmented BP)算法,通過列表嘗試譯碼,能夠有效地提高譯碼性能,尤其是在誤碼率突然降低而進(jìn)入瀑布區(qū)域(Waterfall Region)后效果更加明顯,但其實(shí)現(xiàn)結(jié)構(gòu)過于復(fù)雜。
綜上所述,BP算法及其改進(jìn)算法實(shí)現(xiàn)結(jié)構(gòu)復(fù)雜,和最大后驗(yàn)概率譯碼之間還有性能差距。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明提供一種基于不對(duì)等消息更新的置信傳播LDPC譯碼方法,能夠提高譯碼性能。
為實(shí)現(xiàn)上述目的,本發(fā)明采用如下的技術(shù)方案 基于不對(duì)等消息更新的置信傳播LDPC譯碼方法,包括 a、對(duì)于每個(gè)變量節(jié)點(diǎn),初始化該變量節(jié)點(diǎn)傳遞給其相鄰校驗(yàn)節(jié)點(diǎn)的當(dāng)前信息; b、對(duì)于每個(gè)校驗(yàn)節(jié)點(diǎn),計(jì)算該校驗(yàn)節(jié)點(diǎn)傳遞給其相鄰變量節(jié)點(diǎn)的當(dāng)前信息;并更新變量節(jié)點(diǎn)的偽后驗(yàn)概率和傳遞給其相鄰校驗(yàn)節(jié)點(diǎn)的當(dāng)前信息; c、利用每個(gè)變量節(jié)點(diǎn)的偽后驗(yàn)概率對(duì)變量節(jié)點(diǎn)判決,并利用判決結(jié)果計(jì)算校驗(yàn)和,若該校驗(yàn)和為0或迭代次數(shù)達(dá)到預(yù)設(shè)第一門限,則結(jié)束本流程;否則,返回步驟b進(jìn)行下一次迭代; 其中,在步驟c中所述返回步驟b前,進(jìn)一步包括確定各個(gè)變量節(jié)點(diǎn)的可靠性,并從所有變量節(jié)點(diǎn)中選擇可靠性達(dá)到預(yù)設(shè)條件的變量節(jié)點(diǎn),構(gòu)成可靠性變量節(jié)點(diǎn)集合;并在返回執(zhí)行步驟b時(shí),僅對(duì)不屬于可靠性變量節(jié)點(diǎn)集合中的變量節(jié)點(diǎn)執(zhí)行步驟b的操作。
較佳地,計(jì)算每個(gè)變量節(jié)點(diǎn)的可靠性指數(shù)其中,n為變量節(jié)點(diǎn)的索引,M(n)為與變量節(jié)點(diǎn)n相鄰的校驗(yàn)節(jié)點(diǎn)的集合;當(dāng)根據(jù)所述校驗(yàn)和確定出任一校驗(yàn)節(jié)點(diǎn)對(duì)應(yīng)的校驗(yàn)式為0、且所述任一校驗(yàn)節(jié)點(diǎn)相鄰的所有變量節(jié)點(diǎn)的偽后驗(yàn)概率均大于預(yù)設(shè)的第二門限時(shí),
否則
其中,m為校驗(yàn)節(jié)點(diǎn)的索引; 將所有可靠性指數(shù)為0的變量節(jié)點(diǎn)構(gòu)成可靠性變量節(jié)點(diǎn)集合。
較佳地,根據(jù)誤比特率要求和譯碼的收斂速度要求,設(shè)定所述第二門限。
較佳地,所述第二門限等于2。
由上述技術(shù)方案可見,本發(fā)明中,在BP算法的每次迭代判決后,若需要進(jìn)行下一次迭代,則在該下次迭代前,進(jìn)一步利用特定的判定準(zhǔn)則衡量各個(gè)變量節(jié)點(diǎn)的可靠性,并選擇可靠性滿足預(yù)設(shè)條件的變量節(jié)點(diǎn)作為可靠性變量節(jié)點(diǎn),在進(jìn)行下次迭代時(shí),不再更新校驗(yàn)節(jié)點(diǎn)傳遞到這些可靠性變量節(jié)點(diǎn)的當(dāng)前信息、以及這些可靠性變量節(jié)點(diǎn)的偽后驗(yàn)概率和傳遞給其相鄰校驗(yàn)節(jié)點(diǎn)的當(dāng)前信息。從而實(shí)現(xiàn)對(duì)于可靠性變量節(jié)點(diǎn),不再接收外來的不可靠概率消息,進(jìn)而避免譯碼過程中錯(cuò)誤消息對(duì)可靠性變量節(jié)點(diǎn)的影響,提高譯碼性能。
圖1為本發(fā)明中基于不對(duì)等消息更新的LDPC譯碼方法流程。
圖2為本發(fā)明中LDPC譯碼方法與現(xiàn)有LDPC譯碼方法的誤碼率性能比較示意圖。
圖3為本發(fā)明的LDPC譯碼方法中不同Vt取值下,可靠性變量節(jié)點(diǎn)的誤判率和信噪比的關(guān)系曲線示意圖。
圖4為本發(fā)明中LDPC譯碼方法與現(xiàn)有LDPC譯碼方法的運(yùn)算量比較示意圖。
具體實(shí)施例方式 為使本發(fā)明的目的、技術(shù)手段和優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖對(duì)本發(fā)明做進(jìn)一步詳細(xì)說明。
BP譯碼中,中短碼長(zhǎng)的LDPC碼錯(cuò)誤主要分三類型1、收斂到一個(gè)不能滿足校驗(yàn)矩陣的碼字上;2、最后結(jié)果由于振蕩并不收斂與某個(gè)具體碼字;3、結(jié)果收斂于一個(gè)能滿足校驗(yàn)矩陣但不是發(fā)送碼字的碼字上。在低信噪比情況下,主要是第一種錯(cuò)誤類型。隨著Eb/N0的增加和誤碼率(BER,Bit ErrorRatio)的降低,由振蕩引起的錯(cuò)誤成為主要類型。在瀑布區(qū)域,主要就是第二種類型錯(cuò)誤。第三種錯(cuò)誤主要體現(xiàn)在誤碼平臺(tái)區(qū)(error floor),它主要是由主要是由低重碼字引起的。本發(fā)明主要針對(duì)第二種類型錯(cuò)誤進(jìn)行譯碼性能的改善,即由振蕩引起的錯(cuò)誤。
BP譯碼過程中振蕩的產(chǎn)生主要是由錯(cuò)誤概率消息在譯碼過程中的循環(huán)傳遞造成的。為了克服BP迭代過程中受到的振蕩影響,提高瀑布區(qū)域的譯碼性能,本發(fā)明的基本思想是控制錯(cuò)誤概率消息在環(huán)上的傳輸,避免其對(duì)變量節(jié)點(diǎn)的影響,從而提高譯碼性能。
本發(fā)明中為控制錯(cuò)誤概率消息的擴(kuò)散和傳輸,采用的具體方式為利用不對(duì)等消息更新的置信傳播譯碼,即根據(jù)初始BP每次迭代譯碼后的結(jié)果,對(duì)變量節(jié)點(diǎn)的可靠性進(jìn)行判定,判定為可靠性變量節(jié)點(diǎn)在下次迭代中只向外傳輸可靠性消息,而不再接收外來的消息,從而達(dá)到提高譯碼性能的目的。
這是一種基于不對(duì)等消息更新的置信傳播迭代譯碼結(jié)構(gòu),這里的不對(duì)等是指每次迭代后依據(jù)變量節(jié)點(diǎn)的可靠性,不對(duì)等地進(jìn)行消息更新的方法。因此,需要選擇出高可靠性變量節(jié)點(diǎn)在下次迭代中停止更新。
圖1為本發(fā)明中基于不對(duì)等消息更新的LDPC譯碼方法流程。如圖1所示,該方法包括 步驟101,初始化; 設(shè)可靠性變量節(jié)點(diǎn)集合Θ為空集,即 Θ=NULL 將每個(gè)變量節(jié)點(diǎn)n傳遞給該變量節(jié)點(diǎn)的各個(gè)相鄰校驗(yàn)節(jié)點(diǎn)m的當(dāng)前信息
初始化為
即
步驟102,迭代過程; (a)對(duì)校驗(yàn)節(jié)點(diǎn)傳遞給其相鄰變量節(jié)點(diǎn)的當(dāng)前信息φmn進(jìn)行更新,其中,相鄰變量節(jié)點(diǎn)不包括可靠性變量節(jié)點(diǎn)集合中的變量節(jié)點(diǎn),即
這里,由于可靠性變量節(jié)點(diǎn)集合中的變量節(jié)點(diǎn)被認(rèn)為是可靠性達(dá)到要求的節(jié)點(diǎn),因此,不需要再更新校驗(yàn)節(jié)點(diǎn)傳遞給它的當(dāng)前信息,該當(dāng)前信息的取值仍然為之前最后一次更新的結(jié)果。
同時(shí),由上式可見,校驗(yàn)節(jié)點(diǎn)m傳遞給變量節(jié)點(diǎn)n的當(dāng)前信息φmn的值,由與校驗(yàn)節(jié)點(diǎn)m相鄰的、且除變量節(jié)點(diǎn)n之外的其他變量節(jié)點(diǎn)n′傳遞給校驗(yàn)節(jié)點(diǎn)m的信息
來決定,因此,對(duì)于不屬于可靠性變量節(jié)點(diǎn)集合、且與校驗(yàn)節(jié)點(diǎn)m相鄰的任一變量節(jié)點(diǎn)n而言,如果校驗(yàn)節(jié)點(diǎn)的相鄰變量節(jié)點(diǎn)中包括屬于可靠性變量節(jié)點(diǎn)集合的變量節(jié)點(diǎn)n′1,則可以通過上式,將該變量節(jié)點(diǎn)的正確概率消息
傳遞給φmn,由此,可以實(shí)現(xiàn)將可靠性變量節(jié)點(diǎn)的正確消息向外傳遞的目的。
(b)變量節(jié)點(diǎn)更新 對(duì)不屬于可靠性變量節(jié)點(diǎn)集合中的每個(gè)變量節(jié)點(diǎn)n,更新該變量節(jié)點(diǎn)n傳遞給其相鄰的各個(gè)校驗(yàn)節(jié)點(diǎn)m的當(dāng)前信息
和該變量節(jié)點(diǎn)n的偽后驗(yàn)概率
具體地,
其中,n=1,…,N且m∈M(n)。
由上式可見,變量節(jié)點(diǎn)n傳遞給其相鄰校驗(yàn)節(jié)點(diǎn)m的當(dāng)前信息
的取值,由與變量節(jié)點(diǎn)n相鄰、且除校驗(yàn)節(jié)點(diǎn)m外的其他校驗(yàn)節(jié)點(diǎn)m′傳遞給變量節(jié)點(diǎn)n的信息φm′n和
確定,因此,如果對(duì)可靠性變量節(jié)點(diǎn)集合中的變量節(jié)點(diǎn)更新相應(yīng)的
則極有可能將與其相鄰?fù)瑯有r?yàn)節(jié)點(diǎn)的不可靠變量節(jié)點(diǎn)的錯(cuò)誤概率信息引入,因此,本發(fā)明在每次迭代中,不再對(duì)屬于可靠性變量節(jié)點(diǎn)集合中的變量節(jié)點(diǎn),更新相應(yīng)的
同時(shí),對(duì)于不屬于可靠性變量節(jié)點(diǎn)集合中的變量節(jié)點(diǎn)n,如果其相鄰的校驗(yàn)節(jié)點(diǎn)m′存在屬于可靠性變量節(jié)點(diǎn)集合的相鄰變量節(jié)點(diǎn)n′1,則由前述(a)中的描述可知,校驗(yàn)節(jié)點(diǎn)m′傳遞給變量節(jié)點(diǎn)n的當(dāng)前信息φm′n中包括變量節(jié)點(diǎn)n′1的正確概率信息
由此,可以實(shí)現(xiàn)將可靠性變量節(jié)點(diǎn)的正確消息向外傳遞的目的。
并且,變量節(jié)點(diǎn)n的偽后驗(yàn)概率
的取值,由與變量節(jié)點(diǎn)相鄰的校驗(yàn)節(jié)點(diǎn)m傳遞給該變量節(jié)點(diǎn)n的信息φmn和
確定,因此,如果對(duì)可靠性變量節(jié)點(diǎn)集合中的變量節(jié)點(diǎn)更新偽后驗(yàn)概率
則極有可能將與相鄰?fù)瑯有r?yàn)節(jié)點(diǎn)的不可靠變量節(jié)點(diǎn)的錯(cuò)誤概率信息引入,因此,本發(fā)明在每次迭代中不再對(duì)屬于可靠性變量節(jié)點(diǎn)集合中的變量節(jié)點(diǎn)更新偽后驗(yàn)概率
同時(shí),對(duì)于不屬于可靠性變量節(jié)點(diǎn)集合中的變量節(jié)點(diǎn)n,如果其相鄰的校驗(yàn)節(jié)點(diǎn)m存在屬于可靠性變量節(jié)點(diǎn)集合的相鄰變量節(jié)點(diǎn)n′1,則由前述(a)中的描述可知,校驗(yàn)節(jié)點(diǎn)m傳遞給變量節(jié)點(diǎn)n的當(dāng)前信息φmn中包括變量節(jié)點(diǎn)n′1的正確概率信息
由此,可以實(shí)現(xiàn)將可靠性變量節(jié)點(diǎn)的正確消息向外傳遞的目的。
由上述可見,本發(fā)明中迭代操作與背景技術(shù)中所描述BP算法中相應(yīng)迭代操作的差別在于,對(duì)φmn、
和
更新時(shí),不對(duì)可靠性變量節(jié)點(diǎn)集合中的變量節(jié)點(diǎn)進(jìn)行更新,即對(duì)n的取值增加了一個(gè)限定條件,即這樣,對(duì)于可靠性變量節(jié)點(diǎn)集合中的變量節(jié)點(diǎn),僅將自身的概率信息傳遞出去,而不會(huì)接收外來的概率信息。從而能夠避免錯(cuò)誤概率信息在環(huán)上傳輸和擴(kuò)散,進(jìn)而能夠有效提高譯碼性能。
步驟103,嘗試判決; 本步驟的具體操作與背景技術(shù)中描述的BP算法中相同,即
其中,函數(shù)sgn()返回
的符號(hào)的整數(shù)
步驟104,計(jì)算校驗(yàn)和S=HcT,如果S=0或循環(huán)迭代次數(shù)達(dá)到門限值,則譯碼結(jié)束;否則,確定本次迭代后的可靠性變量節(jié)點(diǎn)集合Θ,然后返回步驟102進(jìn)行下一次迭代。
在本步驟中,對(duì)步驟3得到的各個(gè)判決進(jìn)行校驗(yàn),具體方式與現(xiàn)有相同,這里就不再贅述。如果需要進(jìn)行下一次迭代處理,則在進(jìn)入下一次迭代前,首先更新可靠性變量節(jié)點(diǎn)集合,即從所有可靠性變量節(jié)點(diǎn)中選擇可靠性達(dá)到預(yù)設(shè)條件的變量節(jié)點(diǎn)構(gòu)成可靠性變量節(jié)點(diǎn)集合,再返回步驟2進(jìn)行下一次迭代。
在進(jìn)行可靠性變量節(jié)點(diǎn)集合中所包括變量節(jié)點(diǎn)的選擇時(shí),需要根據(jù)校驗(yàn)和S進(jìn)行。校驗(yàn)和S中任一校驗(yàn)方程的結(jié)果,反映參與該校驗(yàn)方程的各個(gè)變量節(jié)點(diǎn)的可靠性。只有校驗(yàn)方程結(jié)果為0時(shí),參與該校驗(yàn)方程的各個(gè)變量節(jié)點(diǎn)的判決結(jié)果才有可能均正確,只要校驗(yàn)方程結(jié)果不為0,則表明參與該校驗(yàn)方程的至少一個(gè)變量節(jié)點(diǎn)的判決結(jié)果錯(cuò)誤。同時(shí),各個(gè)變量節(jié)點(diǎn)的偽后驗(yàn)概率絕對(duì)值等其他參數(shù)也能反映該變量節(jié)點(diǎn)的可靠性。本發(fā)明在確定可靠性變量節(jié)點(diǎn)集合時(shí),可以根據(jù)上述反映變量節(jié)點(diǎn)可靠性的各種參數(shù),預(yù)先設(shè)置成為可靠性變量節(jié)點(diǎn)的條件,然后在每次迭代結(jié)束,并根據(jù)判決結(jié)果確定需要進(jìn)行下一次迭代時(shí),確定每個(gè)變量節(jié)點(diǎn)的可靠性,將達(dá)到預(yù)設(shè)條件變量節(jié)點(diǎn)構(gòu)成可靠性變量節(jié)點(diǎn)集合,再返回步驟2進(jìn)行下一次迭代。這樣,選擇出的構(gòu)成可靠性變量節(jié)點(diǎn)集合的變量節(jié)點(diǎn),由于其可靠性已經(jīng)達(dá)到預(yù)設(shè)的要求,因此在下一次迭代時(shí),不需要更新其相應(yīng)的φmn、
和
也就不會(huì)將錯(cuò)誤概率信息引入這些可靠性達(dá)到要求的變量節(jié)點(diǎn)。這里需要說明的是,可靠性變量節(jié)點(diǎn)集合在每次迭代后均根據(jù)預(yù)設(shè)表件重新生成。
至此,本發(fā)明提供的基于不對(duì)等消息傳遞的LDPC譯碼方法流程結(jié)束。由上述本發(fā)明的具體實(shí)現(xiàn)過程可見,本發(fā)明的LDPC譯碼方法中,不同于傳統(tǒng)的瀑布更新方法在每次迭代中更新所有的變量節(jié)點(diǎn)和校驗(yàn)節(jié)點(diǎn),本發(fā)明在在每次迭代結(jié)束、下一次迭代開始前,通過特定的準(zhǔn)則來衡量各個(gè)變量節(jié)點(diǎn)的可靠性,對(duì)于判定為高可靠性的變量節(jié)點(diǎn),在下次迭代中只向外傳遞概率消息,而不接收鄰居節(jié)點(diǎn)傳來的消息,也既是停止這部分可靠性高的節(jié)點(diǎn)的更新。通過這種更新策略,一方面可以減少一些錯(cuò)誤消息對(duì)高可靠性變量節(jié)點(diǎn)的影響,另一方面可以保證這些可靠性較高的變量節(jié)點(diǎn)所輸出的消息的可靠性較高,有助于糾正其它進(jìn)行更新的錯(cuò)誤變量節(jié)點(diǎn)。因?yàn)樵诿看蔚杏胁糠值淖兞抗?jié)點(diǎn)停止更新,同時(shí)也降低了譯碼過程中的運(yùn)算量。
另外,在上述本發(fā)明的具體實(shí)現(xiàn)中,在每次迭代結(jié)束后、下一次迭代前需要根據(jù)特定的準(zhǔn)則來衡量變量節(jié)點(diǎn)的可靠性。其中,判定準(zhǔn)則的準(zhǔn)確率對(duì)譯碼的性能有著很大的影響。如果準(zhǔn)則的準(zhǔn)確率太低,會(huì)有較多的偽后驗(yàn)概率錯(cuò)誤的變量節(jié)點(diǎn)因?yàn)楸慌卸榭煽抗?jié)點(diǎn)而停止更新,使譯碼性能降低。以下給出本發(fā)明提供的一種優(yōu)選的判定準(zhǔn)則,用于選擇變量節(jié)點(diǎn)構(gòu)成可靠性變量節(jié)點(diǎn)集合。
對(duì)于LDPC碼,其校驗(yàn)矩陣H的每一行代表一個(gè)校驗(yàn)式,正確的碼字需要滿足所有的校驗(yàn)式。設(shè)
(m=1,2,…,M)為第l次迭代后校驗(yàn)節(jié)點(diǎn)m所對(duì)應(yīng)校驗(yàn)式(即第m個(gè)校驗(yàn)式)的校驗(yàn)結(jié)果,當(dāng)該校驗(yàn)結(jié)果為0時(shí),表明滿足第m個(gè)校驗(yàn)式。在第l次迭代結(jié)束后,變量節(jié)點(diǎn)n所參與的非法校驗(yàn)式數(shù)
可通過下式表示 其中,非法式方程指本次校驗(yàn)中校驗(yàn)結(jié)果不為0的校驗(yàn)式。如果等于零,表示變量節(jié)點(diǎn)n所參與的校驗(yàn)式全部滿足??梢哉J(rèn)為該變量節(jié)點(diǎn)具有較高的可靠性。另外,在第l次迭代結(jié)束后,還可以得到每個(gè)變量節(jié)點(diǎn)n的偽后驗(yàn)概率
如前所述,
絕對(duì)值的大小也反映了該變量節(jié)點(diǎn)的可靠性大小。
由于校驗(yàn)矩陣H的每一行代表一個(gè)奇偶校驗(yàn)式,因此當(dāng)參與校驗(yàn)方程的變量節(jié)點(diǎn)中有偶數(shù)個(gè)發(fā)生錯(cuò)誤時(shí),校驗(yàn)方程仍然是滿足的??梢?,僅僅依據(jù)校驗(yàn)方程的結(jié)果,還是可能將判決出現(xiàn)錯(cuò)誤的變量節(jié)點(diǎn)加入可靠性變量節(jié)點(diǎn)集合中。
考慮到上述因素,本發(fā)明實(shí)施例中引入預(yù)先設(shè)定的門限Vt,當(dāng)參與第m個(gè)校驗(yàn)方程的所有變量節(jié)點(diǎn)的偽后驗(yàn)概率
都滿足
時(shí),才認(rèn)為此時(shí)的校驗(yàn)結(jié)果為可靠的,可以用來衡量變量節(jié)點(diǎn)的可靠性。否則,即使第m個(gè)校驗(yàn)式滿足,所有參與第m個(gè)校驗(yàn)式的變量節(jié)點(diǎn)也被認(rèn)為是不可靠的。
基于此,本發(fā)明實(shí)施例中選擇可靠性變量節(jié)點(diǎn)集合的具體方式包括 為所有的變量節(jié)點(diǎn)n計(jì)算可靠性其中,在第l次迭代后,第m個(gè)校驗(yàn)式滿足,并且所有參加此校驗(yàn)式的變量節(jié)點(diǎn)的偽后驗(yàn)概率
都滿足
時(shí),否則 遍歷所有的變量節(jié)點(diǎn)n,若該變量節(jié)點(diǎn)的可靠性認(rèn)為其可靠,屬于集合Θ,在下次迭代中暫停更新;若該變量節(jié)點(diǎn)的可靠性則認(rèn)為其不可靠,不屬于集合Θ,在下次迭代中繼續(xù)更新。
通過上述方式確定的可靠性變量集合,能夠保證其中變量節(jié)點(diǎn)的可靠性較高,從而既能夠避免錯(cuò)誤信息的傳輸,也能夠保證不可靠變量節(jié)點(diǎn)迅速接收外來概率信息。
以下將上述可靠性變量節(jié)點(diǎn)集合應(yīng)用到圖1所示的LDPC譯碼方法中,并與背景技術(shù)中所描述的LDPC譯碼方法進(jìn)行了性能對(duì)比。其中,系統(tǒng)為AWGN信道,BPSK調(diào)制,基于[1008,504]規(guī)則LDPC碼和[768,576]非規(guī)則LDPC碼。規(guī)則碼的列重為3,行重為6,碼的構(gòu)造采用隨機(jī)構(gòu)造的方法。非規(guī)則LDPC碼采用Wimax標(biāo)準(zhǔn)(IEEE Std 802.16e)中所定義的LDPC碼,碼率為0.75,變量節(jié)點(diǎn)的度分布為λ(x)=(5/24)x2+(1/24)x3+(3/4)x4,校驗(yàn)節(jié)點(diǎn)的度分布為ρ(x)=(5/6)x14+(1/6)x15。譯碼的最大迭代次數(shù)為100。
圖2為兩種LDPC譯碼方法的誤比特率性能比較。其中,曲線201為本發(fā)明中LDPC譯碼方法的誤比特率性能曲線,曲線202為背景技術(shù)中所描述LDPC譯碼方法的誤比特率性能曲線。由圖2可以看出,在低信噪比區(qū)域兩種算法的性能相當(dāng)。當(dāng)信噪比較高進(jìn)入瀑布區(qū)域后,本發(fā)明中LDPC譯碼方法的性能明顯優(yōu)于傳統(tǒng)LDPC譯碼方法。這是因?yàn)樵诘托旁氡葏^(qū)域,變量節(jié)點(diǎn)的可靠性相對(duì)較低,每次迭代后產(chǎn)生的可靠性變量節(jié)點(diǎn)集合中的變量節(jié)點(diǎn)個(gè)數(shù)較少,而且可靠節(jié)點(diǎn)誤判概率也較大,本發(fā)明中基于不對(duì)等消息更新的LDPC譯碼方法優(yōu)勢(shì)不大。而在高信噪比區(qū)域,節(jié)點(diǎn)的可靠性相對(duì)較高,每次迭代后可靠性變量節(jié)點(diǎn)集合中的變量節(jié)點(diǎn)個(gè)數(shù)增多,都有相當(dāng)一部分高可靠性變量節(jié)點(diǎn)停止接收外來消息,減少了錯(cuò)誤消息對(duì)它們的影響。同時(shí)這些高可靠性變量節(jié)點(diǎn)輸出的正確消息加速了譯碼的收斂。
另外,關(guān)于Vt的取值,也需要進(jìn)行合理設(shè)置。對(duì)于基于不對(duì)等消息更新的置信傳播LDPC譯碼算法,如果Vt值過大,會(huì)使每次迭代前判定為可靠的變量節(jié)點(diǎn)減少,算法的性能會(huì)降低;而如果Vt值過小,會(huì)有較多不可靠的變量節(jié)點(diǎn)判定為可靠變量節(jié)點(diǎn)而停止更新,使譯碼的收斂速度降低,性能變差。因此,需要結(jié)合上述兩方面因素合理選擇預(yù)設(shè)門限Vt的取值,即根據(jù)誤比特率要求和譯碼的收斂速度要求設(shè)定第二門限。圖3為兩種Vt取值下,可靠性變量節(jié)點(diǎn)的誤判率與信噪比的關(guān)系曲線。其中,可靠性變量節(jié)點(diǎn)的誤判率計(jì)算方式為可靠性變量節(jié)點(diǎn)的誤判率=(被判定為可靠、但實(shí)際不可靠的變量節(jié)點(diǎn)個(gè)數(shù))/(被判定為可靠變量節(jié)點(diǎn)的個(gè)數(shù))。由圖3可以看出,可靠性變量節(jié)點(diǎn)的誤判率隨著信噪比的增加而降低,并且門限值Vt較高時(shí)的誤判率要低于門限值Vt較低時(shí)的誤判率。仿真表明,基于不對(duì)等消息更新的置信傳播LDPC譯碼算法在Vt為2左右時(shí)具有較好的性能。當(dāng)Vt=2時(shí),本發(fā)明的LDPC譯碼方法比傳統(tǒng)BP算法有0.2dB的增益。
下面對(duì)于兩種LDPC譯碼方法的運(yùn)算量進(jìn)行比對(duì)。因?yàn)樽g碼所需要的運(yùn)算量由每次迭次的計(jì)算量和平均迭代次數(shù)共同決定。因此定義參數(shù)每個(gè)碼字譯碼過程中平均需要更新的變量節(jié)點(diǎn)數(shù)(AVC)來比較不同譯碼算法解碼單個(gè)碼字平均所需要的運(yùn)算量大小,其中,AVC=ANV×AIN,這里,AIN是特定信噪比下譯碼每個(gè)碼字平均所需要的迭代次數(shù),ANV表示每次迭代平均需要更新的變量節(jié)點(diǎn)個(gè)數(shù)。
因?yàn)閭鹘y(tǒng)的BP譯碼算法每次迭代中需要更新所有的變量節(jié)點(diǎn),所以其ANV=N。圖4為兩種LDPC譯碼方法中運(yùn)算量的變化曲線,其中,使用傳統(tǒng)BP算法對(duì)不同的算法運(yùn)算量進(jìn)行了歸一化處理。由圖4可見,相對(duì)于傳統(tǒng)的BP算法,基于不對(duì)等消息更新的置信傳播LDPC譯碼方法運(yùn)算量節(jié)省了約65%。隨著信噪比的增加,本發(fā)明LDPC譯碼方法的歸一化運(yùn)算量還在降低。
以上僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1、基于不對(duì)等消息更新的置信傳播LDPC譯碼方法,包括
a、對(duì)于每個(gè)變量節(jié)點(diǎn),初始化該變量節(jié)點(diǎn)傳遞給其相鄰校驗(yàn)節(jié)點(diǎn)的當(dāng)前信息;
b、對(duì)于每個(gè)校驗(yàn)節(jié)點(diǎn),計(jì)算該校驗(yàn)節(jié)點(diǎn)傳遞給其相鄰變量節(jié)點(diǎn)的當(dāng)前信息;并更新變量節(jié)點(diǎn)的偽后驗(yàn)概率和傳遞給其相鄰校驗(yàn)節(jié)點(diǎn)的當(dāng)前信息;
c、利用每個(gè)變量節(jié)點(diǎn)的偽后驗(yàn)概率對(duì)變量節(jié)點(diǎn)判決,并利用判決結(jié)果計(jì)算校驗(yàn)和,若該校驗(yàn)和為0或迭代次數(shù)達(dá)到預(yù)設(shè)第一門限,則結(jié)束本流程;否則,返回步驟b進(jìn)行下一次迭代;
其特征在于,在步驟c中所述返回步驟b前,進(jìn)一步包括確定各個(gè)變量節(jié)點(diǎn)的可靠性,并從所有變量節(jié)點(diǎn)中選擇可靠性達(dá)到預(yù)設(shè)條件的變量節(jié)點(diǎn),構(gòu)成可靠性變量節(jié)點(diǎn)集合;并在返回執(zhí)行步驟b時(shí),僅對(duì)不屬于可靠性變量節(jié)點(diǎn)集合中的變量節(jié)點(diǎn)執(zhí)行步驟b的操作。
2、根據(jù)權(quán)利要求1所述的方法,其特征在于,計(jì)算每個(gè)變量節(jié)點(diǎn)的可靠性指數(shù)其中,n為變量節(jié)點(diǎn)的索引,M(n)為與變量節(jié)點(diǎn)n相鄰的校驗(yàn)節(jié)點(diǎn)的集合;當(dāng)根據(jù)所述校驗(yàn)和確定出任一校驗(yàn)節(jié)點(diǎn)對(duì)應(yīng)的校驗(yàn)式為0、且所述任一校驗(yàn)節(jié)點(diǎn)相鄰的所有變量節(jié)點(diǎn)的偽后驗(yàn)概率均大于預(yù)設(shè)的第二門限時(shí),否則其中,m為校驗(yàn)節(jié)點(diǎn)的索引;
將所有可靠性指數(shù)為0的變量節(jié)點(diǎn)構(gòu)成可靠性變量節(jié)點(diǎn)集合。
3、根據(jù)權(quán)利要求2所述的方法,其特征在于,根據(jù)誤比特率要求和譯碼的收斂速度要求,設(shè)定所述第二門限。
4、根據(jù)權(quán)利要求3所述的方法,其特征在于,所述第二門限等于2。
全文摘要
本發(fā)明公開了一種基于不對(duì)等消息更新的置信傳播LDPC譯碼方法,在BP算法的每次迭代判決后,若需要進(jìn)行下一次迭代,則在該下次迭代前,進(jìn)一步利用特定的判定準(zhǔn)則衡量各個(gè)變量節(jié)點(diǎn)的可靠性,并選擇可靠性滿足預(yù)設(shè)條件的變量節(jié)點(diǎn)作為可靠性變量節(jié)點(diǎn),在進(jìn)行下次迭代時(shí),不再更新校驗(yàn)節(jié)點(diǎn)傳遞到這些可靠性變量節(jié)點(diǎn)的當(dāng)前信息、以及這些可靠性變量節(jié)點(diǎn)的偽后驗(yàn)概率和傳遞給其相鄰校驗(yàn)節(jié)點(diǎn)的當(dāng)前信息。從而實(shí)現(xiàn)對(duì)于可靠性變量節(jié)點(diǎn),不再接收外來的不可靠概率消息,進(jìn)而避免譯碼過程中錯(cuò)誤消息對(duì)可靠性變量節(jié)點(diǎn)的影響,提高譯碼性能。
文檔編號(hào)H03M13/00GK101534129SQ20091008262
公開日2009年9月16日 申請(qǐng)日期2009年4月21日 優(yōu)先權(quán)日2009年4月21日
發(fā)明者波 楊, 門愛東, 全子一, 昕 陳, 趙黎曄 申請(qǐng)人:北京郵電大學(xué)