一種基于消息傳遞的ldpc環(huán)搜索與環(huán)枚舉算法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于非合作通信的信息編碼技術(shù),具體涉及一種基于消息傳遞的LDPC環(huán) 搜索與環(huán)枚舉算法。
【背景技術(shù)】
[0002] 迭代消息傳遞算法在LDPC碼解碼方面能以相對(duì)較低的復(fù)雜度獲得優(yōu)越的性能表 現(xiàn),而隨著這種迭代算法的快速發(fā)展,在許多信道條件下都能逼近信道容量的LDPC碼重新 成為了研究熱點(diǎn)。Tanner圖在LDPC碼的研究中被廣泛應(yīng)用,LDPC碼迭代譯碼的低復(fù)雜度 正是由于其Tanner圖的稀疏性。不僅如此,Tanner圖的維數(shù),也會(huì)影響到LDPC碼的性能。 目前大體認(rèn)為,越想獲得較佳的編碼性能,相應(yīng)的Tanner圖中越應(yīng)該規(guī)避短環(huán)的出現(xiàn)。
[0003] 2013 年,學(xué)者M(jìn). Karimi,A. H. Banihashemi,在"Message-passing algorithms for counting short cycles in a graph',(IEEE Trans. Commun, vol. 61, no. 2, Feb. 2013.) 提出了一種在圖中計(jì)數(shù)短環(huán)數(shù)的信息傳遞算法,但是沒有針對(duì)重復(fù)節(jié)點(diǎn)無效環(huán)進(jìn)行算法處 理,編碼受制于圖維數(shù),LDPC碼圖中的環(huán)信息并沒有得到有效利用,影響碼字構(gòu)造的短環(huán)依 然客觀存在。所以該算法較為偏重理論推導(dǎo),而對(duì)于掌握改善碼字構(gòu)造的重要信息沒有作 進(jìn)一步的工作。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明的目的在于提供一種基于消息傳遞的LDPC環(huán)搜索與環(huán)枚舉算法,改善了 其在迭代譯碼過程中易受到短環(huán)和陷阱集限制的問題。
[0005] 實(shí)現(xiàn)本發(fā)明目的的技術(shù)解決方案為:一種基于消息傳遞的LDPC環(huán)搜索與環(huán)枚舉 算法,方法步驟如下:
[0006] 步驟1、設(shè)定Η矩陣,確定Tanner圖,獲得總節(jié)點(diǎn)數(shù)η并將節(jié)點(diǎn)A;依次編號(hào),i為 節(jié)點(diǎn)的序列號(hào),i = 1,2, 3,···,]!;初始化i = l,Ai為起始節(jié)點(diǎn),確定包含起始節(jié)點(diǎn)A ;的環(huán) 最大長(zhǎng)度為2K,迭代總次數(shù)為K,轉(zhuǎn)入步驟2。
[0007] 步驟2、對(duì)于起始節(jié)點(diǎn)A;,迭代次數(shù)為k,k = 1,2,3,......K,初始化k = 1 ;
[0008] 若k < K,則將起始節(jié)點(diǎn)~進(jìn)行信息傳遞,在信息傳遞過程中,若無剩余路徑,返回 步驟1 ;否則,存在剩余路徑時(shí),記錄并進(jìn)入步驟3 ;
[0009] 若k > K,令i = i+Ι,當(dāng)i彡n,返回步驟1 ;當(dāng)i > η時(shí),輸出標(biāo)記節(jié)點(diǎn)及其相應(yīng) 的路徑。
[0010] 步驟3、對(duì)信息傳遞過程中的環(huán)進(jìn)行計(jì)數(shù),去除起始節(jié)點(diǎn)~外的剩余路徑中,尋找 包含重復(fù)節(jié)點(diǎn)的短環(huán),根據(jù)節(jié)點(diǎn)的最小序列號(hào)依次輸出所述重復(fù)節(jié)點(diǎn)的數(shù)據(jù)信息和位置信 息,記錄并刪除環(huán)路徑,轉(zhuǎn)入步驟4。
[0011] 步驟4、記錄存儲(chǔ)以節(jié)點(diǎn)Ai為起始節(jié)點(diǎn),且長(zhǎng)度為2k的環(huán)的數(shù)量,并令k = k+1, 轉(zhuǎn)入步驟2。
[0012] 進(jìn)一步地,步驟2中,對(duì)起始節(jié)點(diǎn)A;進(jìn)行信息傳遞,信息傳遞過程如下:將起始節(jié) 點(diǎn)4本身含有的信息加上外部信息作為新的外部信息傳遞給與其相鄰的節(jié)點(diǎn),所述相鄰的 節(jié)點(diǎn)再將本身具有的信息加上新的外部信息傳遞給與相鄰的節(jié)點(diǎn)相鄰的節(jié)點(diǎn),以此迭代, 完成信息傳遞,所述節(jié)點(diǎn)傳遞為變量節(jié)點(diǎn)與檢測(cè)節(jié)點(diǎn)之間的相互傳遞。
[0013] 進(jìn)一步地,步驟3中,對(duì)環(huán)進(jìn)行計(jì)數(shù)時(shí),確定以A;為起始節(jié)點(diǎn),且長(zhǎng)度為2k的環(huán)的 數(shù)量,公式如下:
[0015] 其中,表示起始節(jié)點(diǎn)為~且長(zhǎng)為2k的環(huán)的數(shù)目。
[0016] 表示起始節(jié)點(diǎn)為~、起始路徑為ei、結(jié)束路徑為ej、環(huán)長(zhǎng)為2k的環(huán)的數(shù)目。
[0017] 表示起始節(jié)點(diǎn)為~、長(zhǎng)為2k的環(huán)的數(shù)目,%為環(huán)中至少經(jīng)過兩次的重復(fù)節(jié) 點(diǎn),即為標(biāo)記節(jié)點(diǎn),確定其相應(yīng)的環(huán)路徑;1代表其最小序列號(hào),其中1 = U,2,3···,η}。
[0018] η代表圖的節(jié)點(diǎn)總數(shù)。
[0019] 本發(fā)明與現(xiàn)有技術(shù)相比,其顯著優(yōu)點(diǎn)在于:(1)不僅能夠?qū)Νh(huán)進(jìn)行計(jì)數(shù),還能充分 掌握環(huán)信息,包括位置信息、環(huán)的構(gòu)造、環(huán)的長(zhǎng)度。
[0020] (2)由于編碼受圖維數(shù)影響,刪去短環(huán)后,短環(huán)減少,減輕了受圖維數(shù)的制約,利于 用來改善碼字構(gòu)造。
[0021] (3)算法可以推廣到一般二分圖中。
【附圖說明】
[0022] 圖1為本發(fā)明的基于消息傳遞的LDPC環(huán)搜索與環(huán)枚舉算法的流程圖。
[0023] 圖2為本發(fā)明的基于消息傳遞的LDPC環(huán)搜索與環(huán)枚舉算法的仿真圖,其中(a)為 碼字A :252. 252. 3. 252變量節(jié)點(diǎn)維數(shù)圖;(b)為碼字B :504. 504. 3. 504變量節(jié)點(diǎn)維數(shù)圖; (c)為碼字C :PEGReg252x504變量節(jié)點(diǎn)維數(shù)圖;(d)為碼字D :PEGReg504x100 8變量節(jié)點(diǎn)維 數(shù)圖。
[0024] 圖3為本發(fā)明非簡(jiǎn)單環(huán)示意圖,(a)為第一種;(b)為第二種;(c)為第三種;⑷ 為第四種。
[0025] 圖4為U與W按照消息傳遞算法傳遞信息示意圖。
【具體實(shí)施方式】
[0026] 下面結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步詳細(xì)描述。
[0027] 為了更好地通過硬件實(shí)現(xiàn)LDPC碼,一般采用基于消息傳遞機(jī)制的迭代譯碼等準(zhǔn) 最大似然算法進(jìn)行譯碼。根據(jù)校驗(yàn)矩陣確定好Tanner圖,在變量節(jié)點(diǎn)和校驗(yàn)節(jié)點(diǎn)之間利用 消息傳遞算法傳遞信息。但是由于環(huán)尤其是短環(huán)的存在會(huì)嚴(yán)重影響算法性能,所以我們?cè)?算法的執(zhí)行過程中,會(huì)紀(jì)錄下各種指定長(zhǎng)度環(huán)的數(shù)量及其各自的路徑。同時(shí)在搜索過程中, 及時(shí)刪除有重點(diǎn)或重邊的路徑,并保存構(gòu)成環(huán)的路徑。且我們提出的算法不像其它算法受 搜索對(duì)象自身結(jié)構(gòu)的限制,能夠搜索任意指定長(zhǎng)度的環(huán)。執(zhí)行本算法得到的環(huán)信息能夠用 于改變碼字構(gòu)造,以提升糾錯(cuò)性能或降低誤碼平層。而且算法具有一般性,可以用于不包含 自環(huán)和重邊二分圖,甚至普通圖。
[0028] 結(jié)合圖1,一種基于消息傳遞的LDPC環(huán)搜索與環(huán)枚舉算法,方法步驟如下:
[0029] 步驟1,設(shè)定Η矩陣,確定Tanner圖,獲得總節(jié)點(diǎn)數(shù)η并將節(jié)點(diǎn)A;依次編號(hào),i為 節(jié)點(diǎn)的序列號(hào),i = 1,2,3,…,η ;初始化i = 1,A;為起始節(jié)點(diǎn),確定包含起始節(jié)點(diǎn)A ;的 環(huán)最大長(zhǎng)度為2K,迭代總次數(shù)為K。
[0030] 步驟2,對(duì)于起始節(jié)點(diǎn)Ai,迭代次數(shù)為k,k = 1,2,3,……K,初始化k = 1 :
[0031 ] 若k < K,則將起始節(jié)點(diǎn)~進(jìn)行信息傳遞,在信息傳遞過程中,若無剩余路徑,返回 步驟1 ;否則,存在剩余路徑時(shí),記錄并進(jìn)入步驟3。
[0032] 若k > K,令i = i+Ι,當(dāng)i彡n,返回步驟1 ;當(dāng)i > η時(shí),輸出標(biāo)記節(jié)點(diǎn)及其相應(yīng) 的路徑。
[0033] 在二分圖中,定義LDPC編碼的信息碼和檢測(cè)碼為對(duì)應(yīng)的信息節(jié)點(diǎn)和檢測(cè)節(jié)點(diǎn),二 分圖表不為:
[0034] G = (V, Ε) (1)
[0035] 其中,二分圖G定義為信息節(jié)點(diǎn)U和檢測(cè)節(jié)點(diǎn)W的節(jié)點(diǎn)集,且 £/。曹=匕1?6妒=0,和一個(gè)路徑集Ε,其中代表u與W之間的路徑,且{(u,w) |u e U, weff}。取 i=〇,i = i+1。
[0036] 消息傳遞算法表示為:
[0037] U與W按照消息傳遞算法傳遞信息,如圖4。
[0038] 在信息傳遞過程中,以X、Y、Z為三相鄰節(jié)點(diǎn)做實(shí)例,X與Y之間的信息傳遞可以表 不為如下公式:Ιχ- Υ - Σ ζΕ Ν(Χ) Ιζ- Χ_Ιγ- Χ+Ιχ - Σ ζΕ Ν(?) {Υ}Ιζ- Χ+Ιχ。艮Ρ :
[0039] 在Tanner圖中,LDPC編碼的變量節(jié)點(diǎn)(檢測(cè)節(jié)點(diǎn))將自己本身含有的信息加上 外部信息作為新的外部信息傳遞給其相鄰的檢測(cè)節(jié)點(diǎn)(變量節(jié)點(diǎn)),該節(jié)點(diǎn)再用子集本身 具有的信息加上新的外部信息再傳遞給下一個(gè)相鄰節(jié)點(diǎn),以此迭代,完成信息傳遞。起始節(jié) 點(diǎn)序列號(hào)i < n,起始節(jié)點(diǎn)遍歷全部節(jié)點(diǎn)。
[0040] 傳遞的信息只與該節(jié)點(diǎn)的自信息與相鄰節(jié)點(diǎn)傳來的外信息有關(guān)。但消息傳遞算法 在遇到環(huán)等特殊等結(jié)構(gòu)時(shí),所傳遞消息等獨(dú)立性就得不到保證。也就是說環(huán)的存在,尤其是 短環(huán),會(huì)嚴(yán)重影響迭代譯碼的性能。因此有必要用快速高效的算法對(duì)環(huán)進(jìn)行搜索,這對(duì)檢測(cè) 已有LDPC碼的糾錯(cuò)性能、進(jìn)一步提高已有LDPC碼的糾錯(cuò)能力以及設(shè)計(jì)具有更好糾錯(cuò)性能 的LDPC碼具有十分重要的意義。
[0041] 需要特別說明對(duì)是,本發(fā)明考慮簡(jiǎn)單環(huán)的情況下;
[0042] 若環(huán)中除了兩個(gè)終端節(jié)點(diǎn)之外,其它節(jié)點(diǎn)均不一樣,或者說,一個(gè)長(zhǎng)度為k的環(huán), 可用相應(yīng)的不重復(fù)的一系列路徑{ei,e2, L,ej來表示,則定義為一個(gè)簡(jiǎn)單環(huán),相應(yīng)地