FEC 前向差錯(cuò)恢復(fù)編碼FEC 是一種前向差錯(cuò)恢復(fù)編碼技術(shù),是通過(guò)對(duì)原生信息序列進(jìn)行編碼生成監(jiān)督碼,,這些監(jiān)督碼作為冗余信息序列與原生信息序列一起被傳輸,,當(dāng)原生信息序列發(fā)生錯(cuò)誤或丟失,可通過(guò)冗余信息序列以一定能力恢復(fù)原生信息序列,。 對(duì)于生成的冗余數(shù)據(jù),,我們希望生成數(shù)據(jù)大小范圍與原生數(shù)據(jù)一致,以免使用更多冗余來(lái)表示,,比如在計(jì)算機(jī)中,,以一個(gè)字節(jié)單位的數(shù)據(jù)來(lái)生成的編碼數(shù)據(jù)我們不希望是個(gè)兩個(gè)字節(jié)或更大數(shù)據(jù)。因此,,編碼通常利用了有限域的數(shù)學(xué)方法,,在有限域中進(jìn)行四則運(yùn)算,使得編碼后的數(shù)據(jù)還是在一樣的大小范圍內(nèi),。 伽羅瓦域(galois field)域是一個(gè)可以在其上進(jìn)行加法,、減法、乘法和除法運(yùn)算而結(jié)果不會(huì)超出域的集合,。如果域F只包含有限個(gè)元素,,則稱其為有限域。有限域亦稱伽羅瓦域(galois field),,它是伽羅瓦(Galois,E.)于18世紀(jì)30年代研究代數(shù)方程根式求解問(wèn)題時(shí)引出的,。 伽羅瓦域的階(元素個(gè)數(shù))必為素?cái)?shù)的冪,即有限域的階可表示為 通過(guò)本原多項(xiàng)式生成元素例
上面例子建立GF中元素與數(shù)值一一對(duì)應(yīng)關(guān)系,。 上述可以看出,,GF 的元素其實(shí)就是二進(jìn)制多項(xiàng)式構(gòu)成的循環(huán)碼,由循環(huán)碼的特性,,定義GF中元素的四則運(yùn)算,,保證了運(yùn)算后的結(jié)果還是域的中元素。例如,,加法 設(shè)數(shù)值 常用本原多項(xiàng)式:
為了乘除法計(jì)算方便,,一般將數(shù)值與元素對(duì)應(yīng)關(guān)系列表。計(jì)算時(shí),,將數(shù)值根據(jù)表轉(zhuǎn)為對(duì)應(yīng)各自的元素乘法,,得到結(jié)果元素,再根據(jù)表轉(zhuǎn)為對(duì)應(yīng)的數(shù)值,。 RS編碼丟包恢復(fù)通過(guò)使用多項(xiàng)式對(duì)應(yīng)的GF來(lái)實(shí)現(xiàn)對(duì)非二進(jìn)制數(shù)據(jù)運(yùn)算并進(jìn)行變換其實(shí)就是RS編碼技術(shù),。RS(Reed-Solomon)碼是一類糾錯(cuò)能力很強(qiáng)的特殊的非二進(jìn)制BCH碼。 對(duì)于簡(jiǎn)單普通抗丟技術(shù),,增加冗余是對(duì)原生數(shù)據(jù)一份復(fù)制,,也就是增加數(shù)據(jù)的一倍冗余來(lái)恢復(fù)對(duì)應(yīng)的一個(gè)數(shù)據(jù)。這種恢復(fù)性能非常低,。而RS編碼變換則能實(shí)現(xiàn)高效抗丟,。 例如,,有四個(gè)數(shù)據(jù) a b c d被傳輸 , 則通過(guò)變換得到 RS編碼例如,,選取子范德蒙矩陣對(duì) a b c d ,變換為 e f g h : RS恢復(fù)如果在n個(gè)原生數(shù)據(jù) 例如,a b d 丟失,, 我們?nèi)稳∪哂鄶?shù)據(jù)中的 e g h 和為丟失的c來(lái)恢復(fù) : 上面先將f 對(duì)應(yīng)的矩陣 整理為: 則逆變換可得 a b d: RS編碼通常將每n個(gè)原生數(shù)據(jù)為一組,,通過(guò)n*n 的范德蒙矩陣換成一組n個(gè)冗余數(shù)據(jù),,如果丟失m個(gè),那么任意的m個(gè)冗余便可用來(lái)逆變換恢復(fù)原生數(shù)據(jù),,最多可恢復(fù)連續(xù)n個(gè)丟失包,,其中任意的冗余數(shù)據(jù)就能來(lái)用恢復(fù)這一點(diǎn)是普通的增加冗余的本質(zhì)區(qū)別,因?yàn)槿哂鄶?shù)據(jù)也會(huì)丟失,,如果任意就能恢復(fù)那么恢復(fù)能力也就更強(qiáng); RS變化中涉及的運(yùn)算是在定義在GF中的,,這使的不因?yàn)閿?shù)據(jù)表示的大小而增加冗余開銷 。 信道丟包恢復(fù)技術(shù)在網(wǎng)絡(luò)通信傳輸場(chǎng)景,,數(shù)據(jù)通常以包形式被連續(xù)傳輸,,為了抗丟包,可以采用FEC技術(shù)生成冗余數(shù)據(jù)包,,來(lái)恢復(fù)丟包,, 將上述例子中數(shù)據(jù)用數(shù)據(jù)換成數(shù)據(jù)包,,是一樣邏輯。通常將原生數(shù)據(jù)包分組,,生成一組檢驗(yàn)包(冗余包),,將檢驗(yàn)包作為下一組的冗余, 例如: 上述中,,每4個(gè)包 a b c d 為一組,,生成的檢驗(yàn)包e f g h分別做為下一組包傳輸,這樣就可以前一組的丟包情況(丟少個(gè)),,當(dāng)收到下一組的就可以通過(guò)冗余包恢復(fù),。對(duì)于實(shí)時(shí)傳輸情況,這樣為了等待冗余包,,勢(shì)必造成延遲,, 分組大小對(duì)應(yīng)著延遲大小,犧牲時(shí)效性保證可靠性,。 參考文獻(xiàn)[1] James S. Plank. Erasure Codes For Storage Application. |
|
來(lái)自: 霞客書齋 > 《調(diào)制解調(diào)》