一種基于重要性采樣技術(shù)的ldpc碼打孔算法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及通信技術(shù)領(lǐng)域,特別是涉及一種基于重要性采樣技術(shù)的LDPC碼打孔 算法。
【背景技術(shù)】
[0002] 通信信道的信道狀態(tài)通常是隨時(shí)間時(shí)刻變化的。傳統(tǒng)的信道編碼是采用固定的 碼率來傳輸信息,這種做法是不合適的。當(dāng)信道狀態(tài)變差時(shí),可能會(huì)造成傳輸誤碼率的增 高;當(dāng)信道狀態(tài)變好時(shí),可能會(huì)造成傳輸速率過慢,資源的浪費(fèi)。通過自適應(yīng)編碼調(diào)制技術(shù) 可有效的克服此缺點(diǎn)。自適應(yīng)編碼調(diào)制技術(shù)可以動(dòng)態(tài)適應(yīng)信道的變化,從而提高傳輸速率 和傳輸可靠性,逼近Shannon容量限。即在信道狀態(tài)較差時(shí),用低碼率碼字和低階調(diào)制模式 傳輸。信道狀態(tài)變好時(shí),采用高碼率碼字和高階調(diào)制模式傳輸。自適應(yīng)編碼調(diào)制技術(shù)實(shí)施 的關(guān)鍵就是構(gòu)造一系列碼率不同的碼字。構(gòu)造不同碼率的碼字是通過速率兼容技術(shù)來實(shí)現(xiàn) 的。速率兼容技術(shù)可以實(shí)現(xiàn)的碼率從低到高,或者從高到低的靈活變換,打孔是速率兼容技 術(shù)的一種,其原理為,給定一個(gè)低碼率母碼碼字,然后通過刪除碼字中部分校驗(yàn)位比特,從 而來提高傳輸碼字的碼率。例如,一個(gè)給定碼長(zhǎng)為η比特的碼字,傳輸?shù)男畔⒈忍財(cái)?shù)為k,則 該碼的碼率為R=k/n,將其作為母碼進(jìn)行打孔操作,假設(shè)一共刪除了d個(gè)校驗(yàn)比特,則升高 后的碼率為R' =k/(n_d)。
[0003] 2006年Ha.J首次提出一種分組排序算法。由于LDPC碼主要通過迭代譯碼。分組 排序算法選擇出具有不同的迭代恢復(fù)次數(shù)的節(jié)點(diǎn)來打孔,根據(jù)選擇的節(jié)點(diǎn)的個(gè)數(shù),來構(gòu)造 不同碼率的LDPC碼。首先,把LDPC校驗(yàn)矩陣展開成樹圖形式。再根據(jù)節(jié)點(diǎn)在樹圖上的結(jié) 構(gòu),把所有的節(jié)點(diǎn)分成η組(分別為1步可恢復(fù)節(jié)點(diǎn),2步可恢復(fù)節(jié)點(diǎn),...,k步可恢復(fù)節(jié) 點(diǎn),...),如圖1所示。1步可恢復(fù)節(jié)點(diǎn)就是在迭代譯碼過程中,只需要一次迭代,就能通過 (被)傳遞來的信息所糾正。最后將每一組的所有節(jié)點(diǎn)通過特定的規(guī)則排列順序。所有的 節(jié)點(diǎn)就變成了一個(gè)有序的序列,從第1組排列到第η組。根據(jù)需要構(gòu)造的碼率,從這個(gè)序列 的開始端來選擇打孔節(jié)點(diǎn)。
[0004] 分組排序算法是在樹圖的基礎(chǔ)上來選擇打孔節(jié)點(diǎn)。所有的打孔節(jié)點(diǎn)在譯碼恢復(fù)的 過程中,都是按照已經(jīng)設(shè)計(jì)好的樹圖來恢復(fù),即在迭代譯碼過程中,通過樹圖中的未打孔節(jié) 點(diǎn)傳遞給打孔節(jié)點(diǎn)正確信息,來糾正打孔節(jié)點(diǎn)。算法在選擇打孔節(jié)點(diǎn)時(shí),盡量較多地選擇1 步可恢復(fù)節(jié)點(diǎn)或者2步可恢復(fù)節(jié)點(diǎn)。這種恢復(fù)步長(zhǎng)較短的節(jié)點(diǎn),會(huì)將大量有效的校驗(yàn)信息 集中自己身上。由于大量的有效校驗(yàn)信息被集中在這些節(jié)點(diǎn)附近,那么剩余的較長(zhǎng)恢復(fù)步 長(zhǎng)的節(jié)點(diǎn)周圍的有效校驗(yàn)信息就很少。這就造成了譯碼恢復(fù)時(shí),較長(zhǎng)恢復(fù)步長(zhǎng)的節(jié)點(diǎn)譯碼 錯(cuò)誤的概率較大,因此,分組排序算法在選擇待刪除節(jié)點(diǎn)時(shí),形成了一種貪婪選擇的模式, 即局部最優(yōu)化,但整體的譯碼性能并不是很好。
[0005] 近些年來,出現(xiàn)的打孔算法都是在分組排序算法的基礎(chǔ)上改進(jìn)的,有些算法增加 了一些內(nèi)部結(jié)構(gòu)的搜索,例如停止集,環(huán)外來信息度等等。這些新的打孔算法在性能上有所 提高,但算法只局限于某種特定信道,后者忽視了信道的影響。
【發(fā)明內(nèi)容】
[0006] 本發(fā)明的目的在于克服了上述分組排序算法性能較差的缺點(diǎn),提出了一種可以適 應(yīng)各種信道的打孔方法,以改善LDPC碼的誤碼率性能,并有效地降低了打孔碼字錯(cuò)誤平層 的一種基于重要性采樣技術(shù)的LDPC碼打孔算法。
[0007] -種基于重要性采樣技術(shù)的LDPC碼打孔算法,包括以下步驟:
[0008] 1)對(duì)LDPC碼在某一信道下,進(jìn)行仿真,找到LDPC碼的性能曲線進(jìn)入錯(cuò)誤平層時(shí)的 信噪比閾值;
[0009] 3)在此信噪比閾值下,利用重要采樣技術(shù),對(duì)LDPC碼進(jìn)行錯(cuò)誤沖擊,并記錄下造 成LDPC碼譯碼錯(cuò)誤的節(jié)點(diǎn)位置和錯(cuò)誤次數(shù);
[0010] 3)根據(jù)步驟2)記錄的錯(cuò)誤次數(shù),由大到小,對(duì)相應(yīng)的節(jié)點(diǎn)進(jìn)行排序。這些節(jié)點(diǎn)都 是對(duì)LDPC碼譯碼性能危害較大的點(diǎn)。隨著此序列的順序,節(jié)點(diǎn)危害性逐步降低。將此序列 分成m組,分別為Sm,Smu…,S1;
[0011] 4)依據(jù)目標(biāo)碼率R',計(jì)算需要?jiǎng)h除的校驗(yàn)比特個(gè)數(shù)
為母碼的長(zhǎng)度,K為信息位長(zhǎng)度;
[0012] 5)按照一定規(guī)則選擇出符合要求的節(jié)點(diǎn),構(gòu)成集合Ω2;
[0013] 6)如果集合Ω2與集合S"的交集不為空,則在它們的交集中隨機(jī)選擇一個(gè)節(jié)點(diǎn)作 為打孔節(jié)點(diǎn),否則就持續(xù)尋找集合Ω2與集合的交集。如果直到集合Ω2與集合Sl的交 集也為空,就在集合〇2中隨機(jī)選擇一個(gè)節(jié)點(diǎn)作為打孔節(jié)點(diǎn);
[0014] 7)重復(fù)操作步驟5、6,直至符合刪除比特的個(gè)數(shù)Np,達(dá)到目標(biāo)碼率。
[0015] 在本發(fā)明的較佳實(shí)施例中,所述步驟5)中按照一定規(guī)則選擇出符合要求的節(jié)點(diǎn), 構(gòu)成集合Ω2,按如下步驟進(jìn)行:
[0016] a)把所有的連接打孔節(jié)點(diǎn)最少的校驗(yàn)節(jié)點(diǎn)存入到集合(Τ;
[0017] b)把集合(T中所有的校驗(yàn)節(jié)點(diǎn)中,每個(gè)校驗(yàn)節(jié)點(diǎn)展開的恢復(fù)樹中未打孔節(jié)點(diǎn)數(shù)量 最少的校驗(yàn)節(jié)點(diǎn)存入到集合C'中;
[0018] c)把與集合C中的校驗(yàn)節(jié)點(diǎn)相連的所有變量節(jié)點(diǎn)存入到集合Ω中;
[0019] d)把集合Ω中,與每個(gè)變量節(jié)點(diǎn)相連同一個(gè)校驗(yàn)節(jié)點(diǎn)的打孔節(jié)點(diǎn)總數(shù)最少的變 量節(jié)點(diǎn)存入到集合中;
[0020] e)把集合Ω ,與每個(gè)變量節(jié)點(diǎn)相連的校驗(yàn)節(jié)點(diǎn),以這些校驗(yàn)節(jié)點(diǎn)展開的恢復(fù)樹 中的未打孔節(jié)點(diǎn)總數(shù)之和最少的變量節(jié)點(diǎn)存入到集合Ω2中。
[0021] 在本發(fā)明的較佳實(shí)施例中,所述步驟7)中按如下步驟進(jìn)行:
[0022] a)從所有變量節(jié)點(diǎn)V,,je{1,L,η}中刪除步驟6所選擇的那個(gè)節(jié)點(diǎn);
[0023] b)將Νρ的值減一。如果Νρ為零,則算法結(jié)束,否則重復(fù)步驟3、步驟4、步驟5。
[0024] 本發(fā)明中的基于重要性采樣技術(shù)的LDPC碼打孔算法首先利用重要性采樣技術(shù)搜 索出LDPC碼譯碼過程中陷入陷阱集的錯(cuò)誤比特位置,然后將這些錯(cuò)誤比特位置做為一個(gè) 新的選擇標(biāo)準(zhǔn),加入到之前的打孔算法中,由新設(shè)計(jì)的打孔算法構(gòu)造的不同速率的碼字, 該LDPC碼打孔算法可以適應(yīng)各種信道的打孔方法,以改善LDPC碼的誤碼率性能,在瀑布區(qū) 和錯(cuò)誤平層區(qū)都有較好的譯碼性能,能有效地降低了打孔碼字的錯(cuò)誤平層。
【附圖說明】
[0025] 圖1是分組排序算法分組示意圖;
[0026] 圖2是本發(fā)明對(duì)規(guī)則LDPC碼打孔方案與傳統(tǒng)方法系統(tǒng)誤碼率仿真結(jié)果的對(duì)比示 意圖;
[0027] 圖3是本發(fā)明對(duì)非規(guī)則LDPC碼打孔方案與傳統(tǒng)方法系統(tǒng)誤碼率仿真結(jié)果的對(duì)比 示意圖。
【具體實(shí)施方式】
[0028] 下面結(jié)合附圖對(duì)本發(fā)明做進(jìn)一步的說明,
[0029] 對(duì)于一個(gè)碼長(zhǎng)為N,信息位長(zhǎng)為K的母碼,其校驗(yàn)矩陣為H^,(m=Ν-Κ,η=N), 本發(fā)明的具體實(shí)現(xiàn)步驟如下:
[0030] 步驟1,對(duì)LDPC碼在高斯信道下,進(jìn)行仿真,找到LDPC碼的性能曲線進(jìn)入錯(cuò)誤平層 時(shí)的信噪比閾值X;
[0031] 步驟2,利用重要采樣技術(shù),對(duì)LDPC碼進(jìn)行錯(cuò)誤沖擊,沖擊信號(hào)為nbit高斯噪聲, 即在LDPC碼編碼調(diào)制后的碼字上,加入nbit高斯噪聲,測(cè)試其譯碼性能。信噪比設(shè)定為 信噪