第五章 纠错编码 (Error-Correction Coding)
纠错编码的基本思想是在信息序列中引入冗余位(监督位),利用这些冗余位与信息位之间的代数关系来检测或纠正传输过程中的差错。
1. (n,k) 分组码基础
1.1 基本定义
- k:信息位的位数。
- n:码字的总长度(信息位 + 监督位)。
- r=n−k:监督位(校验位)的位数。
- 码率 R:R=nk,衡量编码效率。
1.2 线性分组码 (Linear Block Codes)
线性分组码的特点是:码字中的监督位是信息位的模-2 和(即异或 ⊕ 运算)。
例:(7,3) 分组码 设信息位为 m={m1,m2,m3},码字为 C={c1,c2,c3,c4,c5,c6,c7}。 如果规定前 3 位为信息位(c1=m1,c2=m2,c3=m3),后 4 位为监督位,且满足:
⎩⎨⎧c4=c1⊕c3c5=c1⊕c2c6=c1⊕c2⊕c3c7=c2⊕c3
一部分是信息位一部分是校验位

1.3 系统码 (Systematic Codes)
系统码是指码字可以明确划分为信息位和校验位两个部分。
- 形式 1:[信息位∣校验位]
- 形式 2:[校验位∣信息位] (笔记中提到“一刀切”,前面校验,后面信息,这也是一种常见形式)

2. 生成矩阵 G (Generator Matrix)
生成矩阵的作用是:已知信息位 m,通过 G 生成码字 C。
C=m⋅G
其中,m 是 1×k 向量,G 是 k×n 矩阵。
如果我们需要编码,那么我们就需要求出生成多项式
2.1 典型形式(系统码)
若 G=[Ik∣P],其中 Ik 是 k×k 单位阵,P 是 k×r 校验矩阵,则生成的码字是系统码。
例题 给定 G=[I∣P]=100010001101111110011 每一行都是一个合法的码字。
3. 校验矩阵 H (Parity-Check Matrix)

校验矩阵用于验证接收到的码字是否正确。 若 G=[Ik∣P],则对应的校验矩阵为 H=[PT∣Ir]。 满足关系:G⋅HT=0。
3.1 伴随式 (Syndrome) S
设接收到的码字为 Y,则伴随式为:
S=Y⋅HT
- 若 S=0:接收无误(或发生了不可检测的差错)。
- 若 S=0:接收有误。
- 检错规律:若 S 等于 H 矩阵的第 i 列,通常预示着第 i 位发生了错误。
4. 纠错与检错能力
4.1 最小汉明距离 dmin
最小汉明距离是码组中任意两个码字之间对应位不同的最小个数。
- 对于线性分组码,dmin=最小非零码字的汉明重量 wmin。
- 在校验矩阵 H 中,dmin 等于 H 中线性相关的列向量的最少个数。
4.2 纠检错公式
- 检测 e 个错:dmin≥e+1
- 纠正 t 个错:dmin≥2t+1
- 纠正 t 个错且检测 e 个错 (e>t):dmin≥t+e+1
5. 汉明码 (Hamming Codes)
汉明码是一种能纠正单个随机错误的线性分组码。
- 参数:n=2m−1,r=m,k=2m−1−m。
- 构造:H 矩阵的每一列由除全 0 外的所有 m 位二进制向量组成。
6. 循环码 (Cyclic Codes)
6.1 特点
码字具有循环移位特性:若 C 是一个码字,则其循环移位后的序列也是码字。
6.2 多项式表示
- 码字多项式:C(x)=cn−1xn−1+cn−2xn−2+⋯+c1x+c0
- 生成多项式 g(x):阶数为 r=n−k。所有码字多项式都能被 g(x) 整除。
6.3 系统循环码的编码 (SOP)
- 将信息多项式 m(x) 左移 r 位:m(x)⋅xr。
- 求余数:r(x)=[m(x)⋅xr]modg(x)。
- 合成码多项式:C(x)=m(x)⋅xr⊕r(x)。
7. 综合例题
例 1:汉明距离与纠错能力

已知一组码字,通过比较每两个码字之间的差异,找出最小距离 dmin。 若 dmin=3,则:
- 检测错误数 e: 3≥e+1→e=2。
- 纠正错误数 t: 3≥2t+1→t=1。
例 2:已知 H 求参数

已知 H 为 4×9 矩阵。
- n=9(列数),r=4(行数)。
- k=n−r=5。
- 编码率 R=k/n=5/9。
- 通过行变换观察 H 的线性相关性,求得 dmin=4。
例 3:汉明码编码过程

已知校验矩阵 H=101111110011100010001 这是一个系统码形式 H=[PT∣I]。
- 写出 G=[I∣P]。
- 输入序列分段编码:1101,0110,010…
- 利用 C=m⋅G 分段求出对应的码序列并拼接。
例4 循环码
**例题 **: 已知 g(x)=x3+x2+1,输入信息 0110。
- k=4,r=3→n=7。信息位 0110→m(x)=x2+x。
- m(x)⋅x3=x5+x4。
- (x5+x4)÷(x3+x2+1),余数为 x2。
- 码字多项式为 x5+x4+x2,对应序列为 0110100。
