編碼包,用Ck+1,Ck+2,. . .,(^表不,由前 k個(gè)非編碼包移位后逐位異或生成的碼字構(gòu)成。
[0046] 在該系統(tǒng)中,為了保證zigzag解碼和MDS性質(zhì),應(yīng)用循環(huán)置換矩陣T,將非編碼包 中的每一個(gè)元素都按矩陣行向量右移指定位,然后將右移后的元素按列逐位異或。
[0047] 在該系統(tǒng)中,每一個(gè)非編碼元素按行向量右移的指定位如循環(huán)置換矩陣T表示, 矩陣中第(i,j)個(gè)元素表示對編碼包C1+k中的第j行元素右移指定位,通過此規(guī)則完成對 Ci+k的編碼,ie{1,2, 3, · · ·,n_k},je{1,2, 3, · · ·,k} 〇
[0048] 在該系統(tǒng)中,在循環(huán)置換矩陣T中,任意行或者列都沒有相同的數(shù)字;在循環(huán)置換 矩陣T中,任意兩列的差所包含的元素都不相同。
[0049] 在該系統(tǒng)中,循環(huán)置換矩陣T在η為最大值2k時(shí)如下k*k矩陣;當(dāng)η小于2k時(shí), 任意取k行中的n-k行,構(gòu)成矩陣為(n-k) *k矩陣。該k*k矩陣T為:
[0050]
ο
[0051] 在本發(fā)明中,以ZD-MDS(10, 5)舉例說明,具有編碼過程包括如下步驟:
[0052] 第一步,將原始信息分為5個(gè)等長的包,分別用Q、C2、C3、C4、C5表示,各個(gè)包的長 度為L;
[0053] 第二步,采取系統(tǒng)碼框架,(:1、(:2、(: 3、(:4、(:5為5個(gè)原始非編碼數(shù)據(jù)包,它是編碼后5 個(gè)校驗(yàn)碼字的基礎(chǔ);
[0054] 第三步,生成的5個(gè)檢驗(yàn)編碼包分別用〇5、(: 7、(:8、(:9、(:1。表示,這5個(gè)包為校驗(yàn)編碼 包,由Q、C2、C3、C4、(:5為5個(gè)非編碼包構(gòu)成。
[0055] 在本發(fā)明中,Q、C2、C3、C4、(:5稱為非編碼包,C6、C7、Cs、C9、Q。稱為校驗(yàn)編碼包。
[0056]zigzag解碼即為鋸齒型解碼。
[0057] 下面介紹具有MDS性質(zhì)的zigzag解碼(ZD-MDS):
[0058] 在本發(fā)明的這個(gè)構(gòu)造碼中的解碼技術(shù)仍然沿用zigzag解碼,解碼順序都是從左 邊到右邊依次解碼出來。當(dāng)原數(shù)據(jù)包中的一位能夠解碼出來,則這一位就在校驗(yàn)包中減去。 其解碼過程按照(10, 5)碼舉例說明。
[0059]ZD-MDS(10, 5)碼的MDS和zigzag性質(zhì):已知任意的5個(gè)數(shù)據(jù)包,能夠恢復(fù)出所有 的數(shù)據(jù)包。假設(shè)原編碼包為CgljC5,校驗(yàn)編碼包SCjljCi。。若已知的五個(gè)數(shù)據(jù)包為:C3、 C5、C6、C7、C9,因?yàn)镃3、C5已知,所以C6、C7、C9中的組件s3,j和s5,j刪除,只需要解碼出Ci、C2、 C4中的組件就可以將碼解出來。具體的解碼方法與順序按照圖2所示:
[0060] 當(dāng)已知C6、C7、C9,,組件之間二進(jìn)制異或,均由0,1組成,C6中的第一位C6il, 如果c6已知,則第一位首先能解碼出來,用粗體1標(biāo)記出來;S2ilsc7中的第一位,c7已知, 則Su能解碼出來,用粗體2標(biāo)記;同理解碼出S4f標(biāo)記為3 與s2il異或后的結(jié)果為 c6i2,C6已知,則c6i2已知,8211按順序解碼出來了,則s1ι2可計(jì)算出來,用粗體標(biāo)記為4。從 左到右依次按照每個(gè)列項(xiàng)疊加異或解碼,如果異或項(xiàng)只有一個(gè)未知,則可以解碼出來。最終 解碼從左到右順序按照圖2中所示。
[0061] 下面介紹一下Zigzag解碼技術(shù):
[0062] 作為線性碼,解碼過程相當(dāng)于解線性方程組。主要包含兩個(gè)過程:步驟一,按照初 等行運(yùn)算將系數(shù)矩陣轉(zhuǎn)換成簡化階梯型矩陣;步驟二,根據(jù)階梯型矩陣,后退代入依次求出 未知比特位。步驟一消耗時(shí)間多,因此我們設(shè)計(jì)的編碼為階梯性,而不經(jīng)過步驟一,如果能 夠按照后退代入方法解碼出原信息,則這種解碼方法稱為zigzag解碼(ZD)。
[0063] 下面我們用實(shí)例來說明zigzag解碼過程,如圖3是(4, 2)碼的解碼過程。首先, 將原始的信息等分為兩個(gè)長為L的數(shù)據(jù)包,即CJPC2。(^編碼包中的元素{〇,1},表 示(;中的第j位,ie{1,2}。這兩個(gè)數(shù)據(jù)包包含了原信息的比特位,稱為非編碼包。在這 個(gè)例子中,我們L假設(shè)為4。(:3和C4是用來計(jì)算非編碼包,通過將非編碼包移位和二進(jìn)制加 法來構(gòu)成,稱為編碼包。C3是將CJPC2分別右移0位,然后再將列數(shù)據(jù)逐位異或。C4是將 非編碼包(^和C2分別右移0位和1位,然后再將列數(shù)據(jù)逐位異或。生成的C3和C4的數(shù)據(jù) 長度分別為L= 4,L= 5。
[0064] 假設(shè)我們想從(:3和C4編碼包中解碼出原始的信息,即解碼出CJPC2需要如圖所 示的zigzag解碼技術(shù)。括號里面的數(shù)字表示解碼的順序,已知C4,因?yàn)?:4的第一位與其它 位信息沒有加法運(yùn)算,所以首先解碼出SU1,的括號標(biāo)記為1 ;將解碼出的S^代入到C3 中的第一位,已知,則異或運(yùn)算可以解碼出S2j.因此S2j標(biāo)記為2 能夠從C4中解 碼出來,將Sli2標(biāo)記為3 ;接著S2,2標(biāo)記為4 ;按照這種解碼方法依次恢復(fù)出原始信息。
[0065] 在本發(fā)明中,通過循環(huán)置換矩陣T,在二進(jìn)制域中對消息元素進(jìn)行編碼,使其滿足 MDS(n,k)性質(zhì);通過巧妙移位后異或運(yùn)算使得可zigzag解碼,降低了解碼復(fù)雜度;另外,在 編碼過程中,校驗(yàn)編碼包的額外冗余開銷都是
,既節(jié)省了存儲空間,又使得每個(gè) 存儲節(jié)點(diǎn)的額外開銷保持對稱。
[0066] 以上內(nèi)容是結(jié)合具體的優(yōu)選實(shí)施方式對本發(fā)明所作的進(jìn)一步詳細(xì)說明,不能認(rèn)定 本發(fā)明的具體實(shí)施只局限于這些說明。對于本發(fā)明所屬技術(shù)領(lǐng)域的普通技術(shù)人員來說,在 不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干簡單推演或替換,都應(yīng)當(dāng)視為屬于本發(fā)明的 保護(hù)范圍。
【主權(quán)項(xiàng)】
1. 一種基于循環(huán)置換矩陣的網(wǎng)絡(luò)編碼的方法,其特征在于,編碼過程包括如下步驟: 第一步,將原始的消息分成k個(gè)等長數(shù)據(jù)包,分別用C1, C2,…,Ck表示,各個(gè)數(shù)據(jù)包長 度為L,其中C1中的數(shù)據(jù)元素SlijG {〇, 1}表示C1中的第j位,i e {l,2,3,...,k},j e {〇, I, 2,. . . , L-l}; 第二步,采取系統(tǒng)碼框架C1, C2,…,(;為k個(gè)原始非編碼包,包含了所有的原始消息, 它是后n_k個(gè)校驗(yàn)編碼包的基礎(chǔ); 第二步,編碼fe驗(yàn)碼塊,后η-k個(gè)稱為校驗(yàn)編碼包,用Ck+1, Ck+2,. . .,(^表不,由前k個(gè)非 編碼包移位后逐位異或生成的碼字構(gòu)成。2. 根據(jù)權(quán)利要求1所述的方法,其特征在于:為了保證zigzag解碼和MDS性質(zhì),應(yīng)用 循環(huán)置換矩陣T,將非編碼包中的每一個(gè)元素都按矩陣行向量右移指定位,然后將右移后的 元素按列逐位異或。3. 根據(jù)權(quán)利要求2所述的方法,其特征在于:每一個(gè)非編碼元素按行向量右移的指定 位如循環(huán)置換矩陣T表示,矩陣中第(i,j)個(gè)元素表示對編碼包C 1+k中的第j行元素右移 位的位數(shù),通過此規(guī)則完成對C1+k的編碼,i e {1,2, 3,...,n-k},j e {1,2, 3,...,k}。4. 根據(jù)權(quán)利要求3所述的方法,其特征在于:在循環(huán)置換矩陣T中,任意行或者列都沒 有相同的數(shù)字;在循環(huán)置換矩陣T中,任意兩列的差所包含的元素都不相同。5. 根據(jù)權(quán)利要求2至4任一項(xiàng)所述的方法,其特征在于,循環(huán)置換矩陣T在η為最大 值2k時(shí)如下k*k矩陣;當(dāng)η小于2k時(shí),也可以按照此矩陣編碼校驗(yàn)包,任意取k行中的n-k 行,構(gòu)成矩陣為(n-k)*k矩陣。該k*k矩陣T為:6. -種基于循環(huán)置換矩陣的網(wǎng)絡(luò)編碼的系統(tǒng),其特征在于,包括: 分割模塊,用于將原始的消息分成k個(gè)等長數(shù)據(jù)包,分別用C1, C2,…,Ck表示,各個(gè)數(shù) 據(jù)包長度為L,其中C1中的數(shù)據(jù)元素SlijG {〇,1}表示C1中的第j位,ie {l,2,3,...,k}, j e {〇, 1,2, · · ·,L-1}; 處理模塊,用于采取系統(tǒng)碼框架,C1, C2,…,CkSk個(gè)原始非編碼包,包含了所有的原 始消息,它是后n_k個(gè)校驗(yàn)編碼包的基礎(chǔ); 生成模塊,編碼校驗(yàn)碼塊,后n-k個(gè)稱為校驗(yàn)編碼包,用Ck+1,Ck+2,. . .,Cn表示,由前k個(gè) 非編碼包移位后逐位異或生成的碼字構(gòu)成。7. 根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于:為了保證zigzag解碼和MDS性質(zhì),應(yīng)用 循環(huán)置換矩陣T,將非編碼包中的每一個(gè)元素都按矩陣行向量右移指定位,然后將右移后的 元素按列逐位異或。8. 根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于:每一個(gè)非編碼元素按行向量右移的指定 位如循環(huán)置換矩陣T表示,矩陣中第(i,j)個(gè)元素表示對編碼包C1+k中的第j行元素右移 位的位數(shù),通過此規(guī)則完成對C1+k的編碼,i e {1,2, 3,...,n-k},j e {1,2, 3,...,k}。9. 根據(jù)權(quán)利要求8所述的系統(tǒng),其特征在于:循環(huán)置換矩陣T中,任意行或者列都沒有 相同的數(shù)字;在循環(huán)置換矩陣T中,任意兩列的差所包含的元素都不相同。10. 根據(jù)權(quán)利要求7至9任一項(xiàng)所述的系統(tǒng),其特征在于:循環(huán)置換矩陣T在η為最大 值2k時(shí)如下k*k矩陣;當(dāng)η小于2k時(shí),任意取k行中的n-k行,構(gòu)成矩陣為(n-k) *k矩陣。 該k*k矩陣T為:
【專利摘要】本發(fā)明提供了一種基于循環(huán)置換矩陣的網(wǎng)絡(luò)編碼的方法及系統(tǒng),設(shè)計(jì)一個(gè)在二進(jìn)制域內(nèi)的ZD-MDS(n,k)碼,即具有MDS性質(zhì)并采用zigzag解碼(ZD)技術(shù)。編碼過程包括:第一步,將原始的消息分成k個(gè)等長數(shù)據(jù)包;第二步,采取系統(tǒng)碼框架,,…,為k個(gè)原始非編碼包,包含了所有的原始消息。本發(fā)明的有益效果是:通過循環(huán)置換矩陣T,在二進(jìn)制域中對消息元素進(jìn)行編碼,使其滿足MDS(n,k)性質(zhì);通過巧妙移位后異或運(yùn)算使得zigzag(鋸齒形)解碼,降低了解碼復(fù)雜度;另外,在編碼過程中,校驗(yàn)編碼包的額外冗余開銷都是bit,既節(jié)省了存儲空間,又使得每個(gè)存儲節(jié)點(diǎn)的額外開銷保持對稱。
【IPC分類】H04L1/00
【公開號】CN105356968
【申請?zhí)枴緾N201510354829
【發(fā)明人】代明軍, 盧澤鑫, 沈丹
【申請人】深圳大學(xué)
【公開日】2016年2月24日
【申請日】2015年6月24日