專利名稱:一種低密度生成矩陣碼的譯碼方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)編譯碼領(lǐng)域,尤其涉及一種低密度生成矩陣碼的譯碼方法。
背景技術(shù):
擦除信道是一種重要的信道模型,在數(shù)據(jù)傳輸過程中,如果接收端接 收到的數(shù)據(jù)包校驗(yàn)錯(cuò)誤,則將錯(cuò)誤的數(shù)據(jù)段丟棄,相當(dāng)于擦除。文件在因特 網(wǎng)上傳輸時(shí),是基于數(shù)據(jù)包通信的,通常每個(gè)數(shù)據(jù)包要么無(wú)差錯(cuò)的被接收端
接收,要么根本就沒有被接收端接收到。傳輸控制協(xié)議(Transmission Control Protocol,簡(jiǎn)稱TCP)中,針對(duì)網(wǎng)絡(luò)丟包的做法是檢錯(cuò)重發(fā)機(jī)制,即利用輸 入端到輸出端的反饋信道控制需要重新傳送的數(shù)據(jù)包。當(dāng)接收端檢測(cè)到丟包 時(shí),產(chǎn)生一個(gè)重新發(fā)送控制信號(hào),直到正確接收到完整數(shù)據(jù)包;而當(dāng)接收端 接收到數(shù)據(jù)包時(shí),同樣要產(chǎn)生一個(gè)接收確認(rèn)信號(hào)。發(fā)送端也會(huì)跟蹤每一個(gè)數(shù) 據(jù)包直到接收到反饋回來(lái)的確認(rèn)信號(hào),否則就會(huì)重新發(fā)送。
基于流模式和文件下載模式的數(shù)據(jù)廣播業(yè)務(wù)是點(diǎn)到多點(diǎn)的業(yè)務(wù),不允許 反饋,傳統(tǒng)的檢錯(cuò)重發(fā)機(jī)制無(wú)法使用,需要使用前向糾錯(cuò)(FEC)來(lái)保證數(shù) 據(jù)的可靠傳輸。經(jīng)典的應(yīng)用層FEC包括RS (Reed-Solomon,里德.所羅門) 碼和數(shù)字噴泉碼(Fountain codes)等。RS碼的編譯碼復(fù)雜度較高, 一般只 適用于碼長(zhǎng)比較小的情況。LT(Luby Transform,陸柏變換)碼和Raptor (瑞 普特)碼是兩種可實(shí)際應(yīng)用的數(shù)字噴泉碼。LT碼具有線性的編碼和譯碼時(shí) 間,相對(duì)于RS碼有著本質(zhì)的提高;而Raptor碼由于采用了預(yù)編碼技術(shù),因 此具有更高的譯碼效率。在3GPP ( 3rd Generation Partnership Project,第三 代合作伙伴計(jì)劃)的組播廣播多媒體業(yè)務(wù)(Multimedia Broadcast / Multicast Service,簡(jiǎn)稱MBMS )以及數(shù)字視頻廣播(Digital Video Broadcasting,簡(jiǎn) 稱DVB)中都采用了 Digital Fountain (數(shù)字噴泉)公司的Raptor碼作為其
4FEC編碼方案。
若編碼后碼字的前K位與信息位相同,則稱該碼為系統(tǒng)碼。編碼的過程就是由K個(gè)信息位生成N位碼長(zhǎng)的過程,通過增加N-K個(gè)校驗(yàn)位來(lái)達(dá)到檢錯(cuò)和糾錯(cuò)的目的。LT碼不支持系統(tǒng)碼的編碼方式,因此LT碼難以滿足某些實(shí)際的FEC編碼需求;Raptor碼支持系統(tǒng)碼,但是Raptor碼需要單獨(dú)的預(yù)編碼過程,即需要一個(gè)預(yù)編碼矩陣,因此編碼的復(fù)雜度較高。
由于上述編碼方法的缺點(diǎn),因此引入了 LDGC (Low Density GeneratorMatrix Codes,低密度生成矩陣碼)。LDGC是一種線性分組碼,其生成矩陣(編碼矩陣)中的非零元素通常是稀疏的,同時(shí),LDGC碼還是一種系統(tǒng)碼。
圖1是LDGC生成矩陣的示意圖。如圖1所示,LDGC的生成矩陣G,^中的前L行對(duì)應(yīng)的方陣通常是一個(gè)上三角或下三角矩陣,該矩陣求逆可以通過迭代的方法完成。其中,圖l中的x, y可以為O。
LDGC的編碼是利用系統(tǒng)碼中信息位(即待發(fā)送數(shù)據(jù))與中間變量的對(duì)應(yīng)關(guān)系先求出中間變量,然后再用中間變量乘以生成矩陣得到編碼后的碼字。具體地說(shuō),編碼過程是先對(duì)K比特信息序列m填充d=L-K個(gè)已知比特后產(chǎn)生L比特序列s,然后根據(jù)關(guān)系式IxGldgc(0:L-1,0:L-l) = s,生成L比特中間變量序列I,然后由I產(chǎn)生N比特碼字序列Cldgc, Cwgc經(jīng)過信道后接收端接收的碼字序列為R。編碼的詳細(xì)過程可以參考專利"低密度生成矩陣碼的編碼方法和裝置、及譯碼方法和裝置,,。其中,I是"L的向量,Gldgc(0 : L - 1, 0 : N+d - l)是!^(N+d)的矩陣。
LDGC碼的譯碼過程是先利用生成矩陣求得中間變量,然后根據(jù)信息位和中間變量的變換關(guān)系求出信息位;其中,最關(guān)鍵的步驟就是進(jìn)行高斯消元,高斯消元的快慢直接影響到LDGC碼譯碼的速度。根據(jù)譯碼的需要,定義Qdgct是Gwge的轉(zhuǎn)置,It是I的轉(zhuǎn)置,接收序列R是一個(gè)列向量。
譯碼時(shí)根據(jù)關(guān)系式Gldgct x lt = R獲取中間變量It的過程需要對(duì)Gldgct矩陣進(jìn)行如下三種初等變換
1)行置換,若Gldgct的第i行和第j行進(jìn)行置換,則R的第i比特和第j個(gè)比特需要進(jìn)行置換;
2 )行相加,若Gldgct的第i行和第j行進(jìn)行相加,則R的第i比特和第j個(gè)比特需要進(jìn)行相加(模2加);
3)列置換,若Gujgct的第i列和第j列進(jìn)行置換,則It的第i比特和第j個(gè)比特需要進(jìn)行置換。
現(xiàn)有技術(shù)中,LDGC譯碼釆用標(biāo)準(zhǔn)的高斯消元法,譯碼的效率較低。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是,克服現(xiàn)有技術(shù)的不足,提出一種高效率的LDGC譯碼方法。
為了解決上述問題,本發(fā)明提供一種低密度生成矩陣碼的譯碼方法,對(duì)
經(jīng)過LDGC編碼后傳輸?shù)脑夹畔⑽贿M(jìn)行譯碼,其特征在于,該方法包含如下步驟
A:將經(jīng)過已知比特序列填充的接收碼字序列R中凈皮信道擦除的位置刪除,得到擦除碼字序列Re;并將上述擦除位置對(duì)應(yīng)的行從LDGC生成矩陣的轉(zhuǎn)置矩陣Gldgct中刪除,得到擦除生成矩陣Ge;
B:對(duì)Ge進(jìn)行列置換,使Ge中以第0行、第O列元素為頂點(diǎn)的M階方陣為下三角矩陣,得到置換生成矩陣Gf;同時(shí)對(duì)Re進(jìn)行相應(yīng)的重排得到Rf;
C:使用Gf和Rf計(jì)算得到原始信息位;
上述M〉H, H為R中第一個(gè)凈皮擦除的位置。
此外,所述G!dgct、 Ge和Gf為L(zhǎng)列矩陣,所述M-L-NE, NE為R中被信道擦除的比特?cái)?shù)。
此外,所述步驟B和C之間還包含如下步驟判斷Gf是否滿秩,若Gf滿秩則執(zhí)行所述步驟C,否則譯碼失敗,本方法結(jié)束。
此外,通過判斷Gf中第H行到最后一行、第H列到最后一列所組成的矩陣Gpart的秩是否等于L - H來(lái)判斷Gf是否滿秩。此外,所述步驟C分為如下子步驟 Cl:根據(jù)關(guān)系式GfXl,R^獲得置換中間變量11; C2:根據(jù)Ge與Gf的列置換關(guān)系對(duì)I!進(jìn)行重排,得到中間變量It; C3:根據(jù)關(guān)系式ItxGldgct(0:L-l,O:L-l)-s,得到比特序列s,并 從s中去除所述已知填充比特,得到所述原始信息位。
此外,在所述步驟C1中,采用高斯消元法獲得所述h。
此外,在所述步驟B中對(duì)Ge進(jìn)行列置換的同時(shí),將長(zhǎng)度為L(zhǎng),初始值 為[O, 1, 2,…,L-1]的數(shù)組I呻進(jìn)行相應(yīng)的元素置換;
在所述步驟C2中,根據(jù)I加p對(duì)所述I!進(jìn)行重排得到中間變量It。
此外,所述LDGC生成矩陣Gldget為N行L列的稀疏矩陣;Gldget的前L 行所對(duì)應(yīng)的方陣為下三角矩陣,或該方陣可變形為下三角矩陣;N>L。
此外,步驟A中,填充的所述已知比特序列的長(zhǎng)度為L(zhǎng)-K, K為所述 原始信息位的長(zhǎng)度。
此外,所述步驟B中,根據(jù)Gwgct中被刪除的行序號(hào),將Ge中與上述行
序號(hào)對(duì)應(yīng)的列移至矩陣的最后NE列,上述列原先的位置由相應(yīng)的后續(xù)列依 次填充。
采用本發(fā)明的LDGC譯碼方法,能夠充分利用結(jié)構(gòu)化LDGC編碼矩陣 所具有的對(duì)角化特點(diǎn),與直接采用高斯消去法的譯碼方法相比,可以大大降 低譯碼復(fù)雜度并加快譯碼速度,使LDGC可應(yīng)用到高速的通信系統(tǒng)中。
圖l是LDGC生成矩陣的示意圖2是本發(fā)明實(shí)施例低密度生成矩陣碼的譯碼方法流程圖;圖3為根據(jù)接收碼字序列的擦除情況對(duì)生成矩陣進(jìn)行擦除處理的示意
圖4為對(duì)擦除生成矩陣Ge進(jìn)行列置換的示意圖5、圖6是對(duì)進(jìn)行列置換后的生成矩陣進(jìn)行滿秩判別和高斯消元的示 意圖。
具體實(shí)施例方式
本發(fā)明的基本思路是,利用結(jié)構(gòu)化LDGC生成矩陣所具有的對(duì)角化特 點(diǎn),對(duì)經(jīng)過擦除的LDGC生成矩陣進(jìn)行列置換,使得LDGC生成矩陣中以 (0, 0),即第0行、第O列為頂點(diǎn)的M階方陣為下三角矩陣。
下面將結(jié)合附圖和實(shí)施例對(duì)本發(fā)明進(jìn)行詳細(xì)描述。
圖2是本發(fā)明實(shí)施例低密度生成矩陣碼的譯碼方法流程圖。如圖2所示, 該方法包含如下步驟
101:在經(jīng)過擦除信道傳輸?shù)慕邮毡忍匦盘?hào)流后面添加長(zhǎng)度為d=L-K 的已知序列,例如1, 1,... , 1,組成譯碼器的輸入比特序列R;
其中K為原始信息位的長(zhǎng)度,L為原始信息位經(jīng)過填充后編碼的長(zhǎng)度。
102:根據(jù)接收碼字序列R的擦除情況,將LDGC生成矩陣Gwgct的相 應(yīng)行擦除(刪除),得到擦除生成矩陣Ge,以及擦除碼字序列Re。
圖3為根據(jù)接收碼字序列的擦除情況對(duì)生成矩陣進(jìn)行擦除處理的示意 圖。如圖3所示,經(jīng)過擦除處理的生成矩陣Ge的前L行已不再是下三角方 陣。
假設(shè)R(ro,r!,……fN陽(yáng)!)中的符號(hào)化,ri + 1,…,ri+xl}*{rj, rj + 1,…, rj+x^被信道擦除掉,則Gwgct中的第(i, i+l,…i+XlH亍和第(j, j+1, ...J+X2} 行也需要被擦除,Gwg。t被擦除后得到Ge,這時(shí)Ge上面的矩陣由于擦除了若 干行,已經(jīng)不是嚴(yán)格對(duì)角化,如圖l(c)所示。
同時(shí),也需要將R中被擦除掉的符號(hào)化,ri+1,…,ri+xd和(fj, rj + 1,…,fj+x2)刪除,相應(yīng)的位置由R中后續(xù)的符號(hào)依次填充,得到擦除碼字序列Re。
103:對(duì)擦除生成矩陣Ge進(jìn)行列置換,使Ge中以(0, 0)為頂點(diǎn)的M 階方陣為下三角矩陣;M=L-NE, NE為被擦除的行總數(shù)。
圖4為對(duì)擦除生成矩陣Ge進(jìn)行列置換的示意圖。
如圖4所示,仍然假設(shè)R中被擦除的符號(hào)為化,ri+1, ..., &+^}和{1> rj + 1,…,rj+X2}, X1+X2 = NE。
被擦除的行索引集合Xse產(chǎn)(i, i+1,…i+Xl, j, j+1, ...j+X2}。
為了得到下三角矩陣,對(duì)Ge進(jìn)行列置換,將Ge中列序號(hào)屬于X効的列 移至Ge的最右端,對(duì)應(yīng)列空出的位置由后續(xù)列序號(hào)不屬于Xw的列依次填 充,得到置換生成矩陣Gf。
為了記錄It的上述置換以便進(jìn)行恢復(fù),需要設(shè)置一個(gè)長(zhǎng)度為L(zhǎng)的數(shù)組
Itmp, Itmp可初始化為[O, 1, 2,…,L-l]。在進(jìn)行上述置換的同時(shí),將I加p數(shù)組
的元素進(jìn)行相應(yīng)的置換,即將Up中的第《i, …i+Xl, j, j+1, ...j+X2}
個(gè)元素移至I加p的尾部。
如圖4所示,經(jīng)過列置換后的Gf中以(0, 0)為頂點(diǎn)的M階方陣為下 三角矩陣,M=L-NE, NE=X1+X2。這個(gè)特點(diǎn)使得后續(xù)采用高斯消元法進(jìn) 行譯碼時(shí)可節(jié)省運(yùn)算量,大幅提高運(yùn)算速度。
104:計(jì)算Gf的秩,判斷其是否滿秩;
利用Gf左上側(cè)是下三角的特點(diǎn),將Gwgct中第一個(gè)被擦除的行記做第H 行,則Gf的第0到H-1行一定是線性無(wú)關(guān)的,所以只須判斷Gf中第H行 到最后 一行、第H列到最后 一列所組成的矩陣Gpart的秩是否等于L - H即可, 若Gpart的秩等于L-H,則表明Gf滿秩。
圖5是對(duì)進(jìn)行列置換后的生成矩陣進(jìn)行滿秩判別和高斯消元。
Gpart可表示為Gf(H:N-H, H : L),即圖5中以粗虛線框住的區(qū)域?qū)?yīng)
的矩陣。可通過對(duì)Gpart進(jìn)行高斯消元來(lái)判斷Gpart的秩,高斯消元完成后,若Gpart的秩等于L-H, Gpart就轉(zhuǎn)化成一個(gè)具有上三角形狀的矩陣Gpart2。所
述步驟使得矩陣Gf變換為矩陣Gg。
105:如果Gf滿秩(即Gpart秩為L(zhǎng)-H),根據(jù)關(guān)系式GfXl^R^使
用高斯消元法獲得置換中間變量115根據(jù)L和Itmp得到中間變量It。
由于在步驟104中,已將Gpart轉(zhuǎn)化為上三角形狀,使得矩陣Gf變換為
矩陣Gg ,因此只需對(duì)Gg的第0到H - 1列進(jìn)行高斯消元。
如圖6所示,對(duì)Gg的第O到H-l列進(jìn)行高斯消元后得到了 Gh, Gh為
上三角形狀。根據(jù)Gh為上三角形狀可以解出置換中間變量I!。進(jìn)一步根據(jù) 步驟103中記錄的Itmp數(shù)組,可將^逆置換得到It。
106:根據(jù)編碼時(shí)使用的關(guān)系式IxGldgc(0:L-l,0:L-l) = s,得到比 特序列s,從s中去除d:L-K個(gè)填充比特,得到原始信息序列m。
由上可知,對(duì)于LDGC生成矩陣采用本發(fā)明的譯碼方法,可加快高斯 消元的處理速度,并且進(jìn)行滿秩判斷時(shí)也無(wú)需對(duì)整個(gè)的置換生成矩陣Gf進(jìn) 行高斯消元,加快了滿秩判斷的速度,在不滿秩無(wú)法進(jìn)行正確譯碼時(shí)可及時(shí) 發(fā)現(xiàn)并進(jìn)行相應(yīng)的處理。
根據(jù)本發(fā)明的基本原理,上述實(shí)施例還可以有多種變換方式
(一) 在步驟103中,將列序號(hào)屬于集合Xset的列移至Ge的最右端, 實(shí)際上可以根據(jù)情況將上述各列向右移動(dòng)一列或多列
(二) 對(duì)于其它形狀的LDGC生成矩陣,例如,前L行為上三角矩陣, 可將其變換成下三角矩陣后采用本發(fā)明的譯碼方法。
以上所述僅為本發(fā)明的實(shí)施例而已,并不用于限制本發(fā)明,對(duì)于本領(lǐng)域 的技術(shù)人員來(lái)說(shuō),本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則 之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的權(quán)利要求 范圍之內(nèi)。
權(quán)利要求
1、一種低密度生成矩陣碼的譯碼方法,對(duì)經(jīng)過LDGC編碼后傳輸?shù)脑夹畔⑽贿M(jìn)行譯碼,其特征在于,該方法包含如下步驟A將經(jīng)過已知比特序列填充的接收碼字序列R中被信道擦除的位置刪除,得到擦除碼字序列Re;并將上述擦除位置對(duì)應(yīng)的行從LDGC生成矩陣的轉(zhuǎn)置矩陣Gldgct中刪除,得到擦除生成矩陣Ge;B對(duì)Ge進(jìn)行列置換,使Ge中以第0行、第0列元素為頂點(diǎn)的M階方陣為下三角矩陣,得到置換生成矩陣Gf;同時(shí)對(duì)Re進(jìn)行相應(yīng)的重排得到Rf;C使用Gf和Rf計(jì)算得到原始信息位;上述M>H,H為R中第一個(gè)被擦除的位置。
2、 如權(quán)利要求1所述的低密度生成矩陣碼的譯碼方法,其特征在于, 所述Gldgct、 Ge和Gf為L(zhǎng)列矩陣,所述M=L - NE, NE為R中被信道擦除的 比特?cái)?shù)。
3、 如權(quán)利要求2所述的低密度生成矩陣碼的譯碼方法,其特征在于, 所述步驟B和C之間還包含如下步驟判斷Gf是否滿秩,若Gf滿秩則執(zhí)行 所述步驟C,否則譯碼失敗,本方法結(jié)束。
4、 如權(quán)利要求3所述的低密度生成矩陣碼的譯碼方法,其特征在于, 通過判斷Gf中第H行到最后一行、第H列到最后一列所組成的矩陣Gpart 的秩是否等于L - H來(lái)判斷Gf是否滿秩。
5、 如權(quán)利要求2所述的低密度生成矩陣碼的譯碼方法,其特征在于, 所述步驟C分為如下子步驟CI:根據(jù)關(guān)系式GfXl,f^,獲得置換中間變量11;C2:根據(jù)Ge與Gf的列置換關(guān)系對(duì)I,進(jìn)行重排,得到中間變量It;C3:根據(jù)關(guān)系式ItxGIdgct(0:L-l,0:L-l) = s,得到比特序列s,并 從s中去除所述已知填充比特,得到所述原始信息位。
6、 如權(quán)利要求5所述的低密度生成矩陣碼的譯碼方法,其特征在于, 在所述步驟C1中,采用高斯消元法獲得所述I!。
7、 如權(quán)利要求5所述的低密度生成矩陣碼的譯碼方法,其特征在于,在所述步驟B中對(duì)Ge進(jìn)行列置換的同時(shí),將長(zhǎng)度為L(zhǎng),初始值為[O, 1, 2,…,L-l]的數(shù)組I加p進(jìn)行相應(yīng)的元素置換;在所述步驟C2中,根據(jù)I鄉(xiāng)對(duì)所述L進(jìn)行重排得到中間變量It。
8、 如權(quán)利要求1所述的低密度生成矩陣碼的譯碼方法,其特征在于, 所述LDGC生成矩陣Gldgct為N行L列的稀疏矩陣;Gldget的前L行所對(duì)應(yīng)的 方陣為下三角矩陣,或該方陣可變形為下三角矩陣;N>L。
9、 如權(quán)利要求8所述的低密度生成矩陣碼的譯碼方法,其特征在于, 步驟A中,填充的所述已知比特序列的長(zhǎng)度為L(zhǎng)-K, K為所述原始信息位 的長(zhǎng)度。
10、 如權(quán)利要求2所述的低密度生成矩陣碼的譯碼方法,其特征在于,所述步驟B中,根據(jù)Qdgct中被刪除的行序號(hào),將Ge中與上述行序號(hào)對(duì)應(yīng)的列移至矩陣的最后NE列,上述列原先的位置由相應(yīng)的后續(xù)列依次填充。
全文摘要
一種低密度生成矩陣碼的譯碼方法,對(duì)經(jīng)過LDGC編碼后傳輸?shù)脑夹畔⑽贿M(jìn)行譯碼,包含如下步驟將經(jīng)過已知比特序列填充的接收碼字序列R中被信道擦除的位置刪除,得到擦除碼字序列R<sub>e</sub>;并將擦除位置對(duì)應(yīng)的行從LDGC生成矩陣的轉(zhuǎn)置矩陣G<sub>ldgct</sub>中刪除,得到擦除生成矩陣G<sub>e</sub>;對(duì)G<sub>e</sub>進(jìn)行列置換,使G<sub>e</sub>中以第0行、第0列元素為頂點(diǎn)的M階方陣為下三角矩陣,得到置換生成矩陣G<sub>f</sub>;同時(shí)對(duì)R<sub>e</sub>進(jìn)行相應(yīng)的重排得到R<sub>f</sub>;使用G<sub>f</sub>和R<sub>f</sub>計(jì)算得到原始信息位;H為R中第一個(gè)被擦除的位置。采用本方法,能夠充分利用結(jié)構(gòu)化LDGC編碼矩陣所具有的對(duì)角化特點(diǎn),與直接采用高斯消去法的譯碼方法相比,可以降低譯碼復(fù)雜度并加快譯碼速度。
文檔編號(hào)H03M13/11GK101459429SQ20071019576
公開日2009年6月17日 申請(qǐng)日期2007年12月14日 優(yōu)先權(quán)日2007年12月14日
發(fā)明者俊 徐, 袁志鋒, 進(jìn) 許 申請(qǐng)人:中興通訊股份有限公司