什么是多项式码?
多项式码是一种线性码,其有效码字集由能被较短的固定多项式(称为生成多项式)整除的多项式组成。
它们用于数据传输和存储过程中的错误检测和纠正。
多项式码的类型
多项式码的类型包括:
- 循环冗余校验码 (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) 整除。
广告