什麼是多項式碼?
多項式碼是一種線性碼,其有效碼字集由能被較短的固定多項式(稱為生成多項式)整除的多項式組成。
它們用於資料傳輸和儲存過程中的錯誤檢測和糾正。
多項式碼的型別
多項式碼的型別包括:
- 迴圈冗餘校驗碼 (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 減法 |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 0 | 1 | 1 | 1 |
| 1 | 0 | 1 | 1 |
| 1 | 1 | 0 | 0 |
例如,如果存在兩個字 11001011 和 10101111,則加法和減法都將得到結果 01100100。
**乘法:**
模 2 乘法與與運算相同。
| 運算元 | 運算元 | 模 2 乘法 |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
生成多項式
使用多項式碼對訊息進行編碼時,會使用一個稱為生成多項式 G(x) 的固定多項式。G(x) 的長度應小於它編碼的訊息的長度。
在 CRC 編碼中,G(x) 的最高有效位 (MSB) 和最低有效位 (LSB) 位置都應為 1。在編碼過程中,CRC 位附加到訊息上,以便生成的幀可被 G(x) 整除。
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP