什麼是多項式碼?


多項式碼是一種線性碼,其有效碼字集由能被較短的固定多項式(稱為生成多項式)整除的多項式組成。

它們用於資料傳輸和儲存過程中的錯誤檢測和糾正。

多項式碼的型別

多項式碼的型別包括:

  • 迴圈冗餘校驗碼 (CRC)
  • 博斯-喬德赫裡-霍克文海姆碼 (BCH碼)
  • 裡德-所羅門碼 (Reed–Solomon碼)

用多項式表示位元串

碼字(本質上是位元串)由係數為 0 或 1 的多項式表示。一個 k 位字由從 x0 到 xk-1 的多項式表示。此多項式的階數是最高次項的冪,即 (k-1)。

例如,8 位字 11001101 由以下 7 階多項式表示:

1x7 + 1x6 + 0x5 + 0x4 + 1x3 + 1x2 + 0x1 + 1x0 = x7 + x6 + x3 + x2 + 1

模 2 運算

多項式碼運算採用模 2 算術。

  • **加法和減法:**根據有限域理論的規則,在模 2 算術中,加法和減法沒有進位或借位。因此,這兩個運算都與異或 (XOR) 運算相同。

運算元運算元模 2 加法模 2 減法
0000
0111
1011
1100

例如,如果存在兩個字 11001011 和 10101111,則加法和減法都將得到結果 01100100。

  • **乘法:**

    模 2 乘法與與運算相同。

運算元運算元模 2 乘法
000
010
100
111

生成多項式

使用多項式碼對訊息進行編碼時,會使用一個稱為生成多項式 G(x) 的固定多項式。G(x) 的長度應小於它編碼的訊息的長度。

在 CRC 編碼中,G(x) 的最高有效位 (MSB) 和最低有效位 (LSB) 位置都應為 1。在編碼過程中,CRC 位附加到訊息上,以便生成的幀可被 G(x) 整除。

更新於:2019年7月30日

3K+ 瀏覽量

啟動你的職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.