一種有限長(zhǎng)ldpc碼的打孔算法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明設(shè)及通信技術(shù)領(lǐng)域,特別是設(shè)及一種有限長(zhǎng)LDP邱馬的打孔算法。
【背景技術(shù)】
[0002] 對(duì)于時(shí)變的無(wú)線衰落信道,采用固定碼率的信道編碼性能不佳。可通過(guò)自適應(yīng)編 碼調(diào)制技術(shù)來(lái)適應(yīng)信道的變化,從而提高傳輸速率,逼近化annon容量限。即在信道狀態(tài)較 差時(shí),用低碼率碼字和低階調(diào)制模式傳輸。信道狀態(tài)變好時(shí),采用高碼率碼字和高階調(diào)制模 式傳輸。自適應(yīng)編碼調(diào)制技術(shù)中碼率的靈活變換常通過(guò)速率兼容技術(shù)實(shí)現(xiàn),其中打孔是速 率兼容技術(shù)的最重要一種。其原理為,給定一個(gè)低碼率母碼碼字,然后通過(guò)刪除碼字中部分 校驗(yàn)位比特,從而來(lái)提高傳輸碼字的碼率。例如,一個(gè)給定碼長(zhǎng)為η比特的碼字,傳輸?shù)男畔?比特?cái)?shù)為k,則該碼的碼率為R = k/n,將其作為母碼進(jìn)行打孔操作,假設(shè)一共刪除了 d個(gè)校驗(yàn) 比特,則升高后的碼率為R/ =k/(n-d)。
[0003] 當(dāng)前國(guó)際代表性的打孔方法大都基于分組排序算法。分組排序算法的原理是先把 LDPC校驗(yàn)矩陣展開(kāi)成樹(shù)圖形式,然后把所有的比特位按照樹(shù)圖的結(jié)構(gòu)分成η組序列(分別為 1步可恢復(fù)節(jié)點(diǎn),2步可恢復(fù)節(jié)點(diǎn),...,k步可恢復(fù)節(jié)點(diǎn),...),如圖1所示,然后對(duì)每一組內(nèi)的 元素通過(guò)優(yōu)先順序進(jìn)行排序,最后依照所需刪除的校驗(yàn)位比特的個(gè)數(shù)依次刪除,來(lái)獲得所 需要的高碼率碼字,刪除的比特不參與傳輸,在接收端對(duì)刪除的比特按位置填充。
[0004] 由于在通信系統(tǒng)接收端,已刪除的比特位仍要參與校驗(yàn)方程,因此待刪除比特的 位置是很重要的。如果誤刪了某個(gè)位置的重要節(jié)點(diǎn),可能會(huì)對(duì)譯碼性能造成災(zāi)難性地破壞。 采用樹(shù)圖形式來(lái)尋找待刪除節(jié)點(diǎn)的位置是一種很可靠的方法。但通常LDP邱馬的校驗(yàn)矩陣是 很大的,將其展開(kāi)成樹(shù)圖形式會(huì)隨著矩陣的長(zhǎng)度指數(shù)級(jí)增長(zhǎng),其復(fù)雜度較高。如圖1所示,分 組排序算法盡可能多地尋找1步可恢復(fù)節(jié)點(diǎn),然后再盡可能多地尋找2步可恢復(fù)節(jié)點(diǎn),依次 類推。運(yùn)種恢復(fù)步長(zhǎng)較短的節(jié)點(diǎn),會(huì)將大量有效的校驗(yàn)信息集中自己身上。在接收端譯碼恢 復(fù)時(shí),運(yùn)些節(jié)點(diǎn)由于吸聚了較多的校驗(yàn)信息,譯碼恢復(fù)正確的概率就很大。同時(shí),大量的有 效校驗(yàn)信息被集中在運(yùn)些節(jié)點(diǎn)附近,那么剩余的較長(zhǎng)恢復(fù)步長(zhǎng)的節(jié)點(diǎn)周圍的有效校驗(yàn)信息 就很少。運(yùn)就造成了譯碼恢復(fù)時(shí),較長(zhǎng)恢復(fù)步長(zhǎng)的節(jié)點(diǎn)譯碼錯(cuò)誤的概率較大。因此,分組排 序算法在選擇待刪除節(jié)點(diǎn)時(shí),形成了一種貪婪選擇的模式,即局部最優(yōu)化,而整體的譯碼性 能仍有改善空間。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明的目的在于克服上述分組排序算法中的貪婪選擇缺點(diǎn),提供一種對(duì)于有限 長(zhǎng)LDP邱馬的非貪婪打孔方法,W改善系統(tǒng)誤碼率性能,并獲得了較低的錯(cuò)誤平層。
[0006] -種有限長(zhǎng)LDP邱馬的打孔算法,包括W下步驟:
[0007] 1)依據(jù)目標(biāo)碼率R/,計(jì)算需要?jiǎng)h除的校驗(yàn)比特個(gè)數(shù)
,其中N為 母碼的長(zhǎng)度,K為信息位長(zhǎng)度;
[0008] 2)選擇出所有母碼中具有高譯碼恢復(fù)可靠性的節(jié)點(diǎn),存入集合PRIOR;
[0009] 3)對(duì)于母碼,構(gòu)造均勻分配有效校驗(yàn)信息后的節(jié)點(diǎn)集合NEW;
[0010] 4)選擇集合PRIOR與集合NEW的交集,并隨機(jī)選擇一個(gè)節(jié)點(diǎn);
[0011] 5)檢測(cè)所選取的打孔節(jié)點(diǎn)是否會(huì)形成死亡校驗(yàn)節(jié)點(diǎn);
[001^ 6)重復(fù)操作步驟3)~4),直至符合刪除比特的個(gè)數(shù)Np,達(dá)到目標(biāo)碼率。
[0013] 在本發(fā)明的較佳實(shí)施例中,所述步驟2)按如下步驟進(jìn)行:
[0014] 2a)計(jì)算出校驗(yàn)矩陣Η中每行中剩余1的個(gè)數(shù),作為該行的有效行重。選出有效行重 最小的行;
[0015] 2b)如果2a)中所選擇的行不止一個(gè),則選擇運(yùn)些行中,W每行所對(duì)應(yīng)的校驗(yàn)節(jié)點(diǎn) 為底展開(kāi)的樹(shù)圖中,沒(méi)有被刪除的節(jié)點(diǎn)數(shù)最少的那一行;
[0016] 2c)對(duì)于化)中所選擇出的行,選擇其中1的位置所對(duì)應(yīng)的那一列中包含1的個(gè)數(shù)最 少的那一列。將其存入集合PRIOR中。同時(shí)將化)中所選擇出的行刪除。
[0017] 在本發(fā)明的較佳實(shí)施例中,所述步驟3)中按如下步驟進(jìn)行:
[0018] 3a) W校驗(yàn)矩陣每列為底展開(kāi)成樹(shù)圖,計(jì)算出每個(gè)樹(shù)圖中每個(gè)分枝所包含的未刪 除的節(jié)點(diǎn)個(gè)數(shù),然后找到每個(gè)樹(shù)圖的最小分枝所包含的節(jié)點(diǎn)個(gè)數(shù);
[0019] 3b)將每一行中所包含的1所在的列在3a)中得到的值求和。選出求和后值最小的 行;
[0020] 3c)在3b)中所得的行中1所在的列,尋找最小有效列重的列;
[0021] 如果3c)所得到的列不止一個(gè),將每一列中1的位置所對(duì)應(yīng)的行在3b)中所得到的 值求和,選出求和后值最小的列。
[0022] 在本發(fā)明的較佳實(shí)施例中,所述步驟4)中按如下步驟進(jìn)行:
[0023] 4a)把集合PRIOR中具有最大有效列重的列選出;
[0024] 4b)在4a)所選出的列中,選擇具有最小列重的列;
[0025] 4c)如果4b)所選出的列,在3d)所選出的列集合中,則選擇此列。否則繼續(xù)從集合 PRIOR中按照4a)、4b)規(guī)則選擇滿足要求的列,如果集合PRIOR中所有的列無(wú)法滿足,則從隨 機(jī)3d)中隨機(jī)選擇一列刪除。
[0026] 本發(fā)明中的有限長(zhǎng)LDPC碼的打孔算法將母碼中所有具有高譯碼恢復(fù)可靠性的節(jié) 點(diǎn)提取出來(lái),然后重新構(gòu)造一個(gè)均勻分配有效校驗(yàn)信息的待刪除序列,再把高譯碼恢復(fù)可 靠性的節(jié)點(diǎn)按照一定規(guī)則插入到待刪除序列中,既克服了傳統(tǒng)分組排序算法中貪婪選擇的 缺點(diǎn),又避免了過(guò)度均勻分配造成的低碼率譯碼性能損失,使得整體譯碼有所提高,并降低 了整體譯碼的錯(cuò)誤平層。
【附圖說(shuō)明】
[0027] 圖1是分組排序算法分組示意圖;
[0028] 圖2是本發(fā)明對(duì)規(guī)則LDP邱馬打孔方案與傳統(tǒng)方法系統(tǒng)誤碼率仿真結(jié)果的對(duì)比示意 圖;
[0029] 圖3是本發(fā)明對(duì)非規(guī)則LDPC碼打孔方案與傳統(tǒng)方法系統(tǒng)誤碼率仿真結(jié)果的對(duì)比示 意圖。
【具體實(shí)施方式】
[0030] 下面結(jié)合附圖對(duì)本發(fā)明做進(jìn)一步的說(shuō)明,
[0031] 對(duì)于一個(gè)碼長(zhǎng)為N,信息位長(zhǎng)為K的母碼,其校驗(yàn)矩陣為
[0032] Hmxn,(m=N-K,n = N),本發(fā)明的具體實(shí)現(xiàn)步驟如下:
[0033] 步驟1,依據(jù)目標(biāo)碼率,計(jì)算需要?jiǎng)h除的信息比特個(gè)數(shù)。
[0034] 設(shè)R/為打孔后的目標(biāo)碼率,Np為需要?jiǎng)h除的校驗(yàn)比特總個(gè)數(shù),根據(jù)碼率定義易得:
[003引 R'=K/(N-Np) (1)
[0036] 根據(jù)(1)式,計(jì)算需要?jiǎng)h除的信息比特總個(gè)數(shù)為:
[0037]
(2>
[0038] 步驟2,選擇出所有母碼中具有高譯碼恢復(fù)可靠性的節(jié)點(diǎn),存入集合PRIOR。
[0039] 2.1:校驗(yàn)矩陣中所有的行Ci,ie{l,一,111:1,每行中1的個(gè)數(shù),作為該行的行重,記 為d。。如果某一行中1所在的列被刪除,則該行剩余的1的個(gè)數(shù)作為該行的有效行重,記為D (C)。選出有效行重最小的行。
[0040] 2.2:對(duì)于每一列¥^〇£{1,-,,11},^其為底展開(kāi)的樹(shù)圖中所包含的未被刪除的節(jié) 點(diǎn)的個(gè)數(shù),記為S(vj)。對(duì)于行Ci,W其為底展開(kāi)的樹(shù)圖中所包含的未被刪除的節(jié)點(diǎn)的個(gè)數(shù), 記為W(c)。即行Cl中包含1的位置所對(duì)應(yīng)列V北勺S(vj)的和,W(c)=IS(v)。如果2.1中所選擇 的行不止一個(gè),則選擇運(yùn)些行中,W(c)值最小的那一行。
[0041] 2.3:校驗(yàn)矩陣每一列中包含1的個(gè)數(shù),作為該列的列重,記為dv