编码理论|线性分组码
注意,本章内容难度过大,建议配例题有限掌握
https://www.cnblogs.com/luminescence/p/18944115
线性分组码的数学基础
同余和剩余类
群、子群、陪集
环、域
线性空间
定义1(线性空间)
如果域F上的n重元素集合V满足下述条件,称V是域F上的一个n维线性空间:
- V 关于加法构成阿贝尔群
- 对于V中的任意元素v和F中任意元素c(纯量或标量),cv一定属于集合V(数乘运算)
- 分配律成立 c(u+v)=cu+cv,(c+d)v=cv+dv
- 结合律成立 (cd)v=c(dv)
定义2(域F上的线性组合)
\(v_i \in V,b_i \in F\)
\(u = \sum b_kv_k\)
定义3(线性相关和线性无关)
定义4(张成)
给定线性空间V和V中的一个子集S,若V中的任意一个矢量均可用S中的矢量线性组合生成,则称S张成了矢量空间V。
定义5(基底和维数)
给定线性空间V,能张成该空间的线性独立矢量的集合称为V的基底,而线性独立矢量的数目称为V的维数
零空间
若V1是n维空间V的子空间,则和V1中每一个n维矢量均正交的所有矢量,构成V的另一个子空间V2,称V2为V1的零空间。若n维空间V的子空间V1的维数为k,则V1的零空间的维数为n-k
线性分组码的定义
定义\([n, k]\)线性分组码是\(GF(q )\)上的n维线性空间\(V_n\)中
的一个k维子空间\(V_{n,k}\)
由于该线性子空间在加法运算下构成阿贝尔群,所以线性分组码又称为群码
用\((c_{n-1},c_{n-2},……c_1,c_0)\)表示\([n,k]\)码的一码字,其中每一分量\(c_i∈GF(q)\)
K位信息位,n-k位校验位
如果一个线性分组码的码字可分成消息部分和冗余部分,其中消息部分是k个未经处理的原始消息,冗余部分是产生的校验位,则该类码称为线性系统分组码
线性分组码的生成矩阵
由于 \([n,k,d]\) 线性分组码是一个 \(k\) 维线性空间
因此,必可找到 \(k\) 个线性无关的码字 \(g_1, g_2, \ldots, g_k\) 使得 \(C\) 中的任何一个码字 \(v\) 都可由这 \(k\) 个码字的线性组合,即
\(v = m_1 g_1 + m_2 g_2 + \ldots + m_k g_k\)
\(= (m_1, m_2, \ldots, m_k) \begin{pmatrix} g_1 \\ g_2 \\ \vdots \\ g_k \end{pmatrix} = m \begin{pmatrix} g_{00} & g_{01} & \cdots & g_{0,n-1} \\ g_{10} & g_{11} & \cdots & g_{1,n-1} \\ \vdots & \vdots & \ddots & \vdots \\ g_{k0} & g_{k1} & \cdots & g_{k,n-1} \end{pmatrix}\)
$= mG $
$ G $称为该分组码的生成矩阵
一个[n,k,d]线性系统码的生成矩阵G具有如下形式
\(G = \begin{pmatrix} g_1 \\ g_2 \\ \vdots \\ g_k \end{pmatrix}\)
\(= \begin{pmatrix} 1 & 0 & \cdots & 0 & p_{00} & p_{01} & \cdots & p_{0,n-k-1} \\ 0 & 1 & 0 & \vdots & p_{10} & p_{11} & \cdots & p_{1,n-k-1} \\ \vdots & 0 & \ddots & 0 & \vdots & \vdots & \ddots & \vdots \\ 0 & \cdots & 0 & 1 & p_{k0} & p_{k1} & \cdots & p_{k,n-k-1} \end{pmatrix}\)
$k\times k $单位矩阵 $P $矩阵
注
- 生成矩阵G中的每一行都是一个码字
- 任意k个线性独立的码字都可以作为生成矩阵
- 给定一个[n,k,d]线性分组码,其生成矩阵可有多个
线性分组码的一致校验矩阵
\(
\begin{equation*}
\begin{bmatrix}
h_{n-k-1,n-1} & \cdots & h_{n-k-1,n-k} & 1 & 0 & 0 & \cdots \\
h_{n-k-2,n-1} & \cdots & h_{n-k-2,n-k} & 0 & 1 & 0 & \cdots \\
\vdots & \ddots & \vdots & \vdots & \ddots & \vdots & \ddots \\
h_{0,n-1} & \cdots & h_{0,1,n-k} & 0 & 0 & \cdots & 1
\end{bmatrix}_{(n-k行,\ n列)}
\begin{bmatrix}
c_{n-1} \\
c_{n-2} \\
\vdots \\
c_0
\end{bmatrix}
=
\begin{bmatrix}
0 \\
0 \\
\vdots \\
0
\end{bmatrix}
\end{equation*}
\)
校验矩阵的各行之间是线性无关的,即校验矩阵的行秩为 ( n - k )。
以校验矩阵的 ( n - k ) 行为基底,可张成一个 ( n - k ) 维线性子空间。
\(H = \begin{bmatrix} h_{1,n-1} & h_{1,n-2} & \cdots & h_{1,0} \\ h_{2,n-1} & h_{2,n-2} & \cdots & h_{2,0} \\ \vdots & \vdots & \ddots & \vdots \\ h_{n-k,n-1} & h_{n-k,n-2} & \cdots & h_{n-k,0} \end{bmatrix}\)
\(H·C^T=0\)
\(C·H^T=0\)
注:
1)校验矩阵是一个(n -k )×n阶的矩阵,各行之间是线性无关的,即 校验矩阵的行秩为n-k
2) 校验矩阵的n-k行为基底,可张成一个n-k维线性子空间
3) 任意一个合法码字C均满足 HCT=0T
4) 验矩阵也可以定义线性分组码
校验矩阵H与任意一个码字之积为零
校验矩阵H中各行张成的子空间的零空间即为生成矩阵G各行张成的子空间。
线性分组码的最小汉明距离
定理一
[n,k,d]线性分组码的最小距离等于非零码字的最小重量
\(d=min \omega (C_i)\)
定理二
任何[n,k,d]线性分组码,码字的重量或全部为偶数,或者奇数重量的码字数等于偶数重量的码字数
定理三
[n, k, d]线性分组码,其校验矩阵为H,对于任意汉明重量为l的码字,存在H的l个列向量,满足这l列的和等于零,反之,若存在H的l个列向量,其和为零,则该码中有汉明重量为l的码字
推论1:[n,k,d]线性分组码最小汉明距离等于d的充要条件是:H的任意d-1列线性无关且存在d列线性相关
注:交换H矩阵的各列,不会影响码的最小距离,因此,所有列相同但排列位置不同的H所对应的分组码,在纠错能力和其他码参数上完全等价。
推论2:[n,k,d]线性分组码的最大可能的最小汉明距离为n-k+1
若系统码的最小距离d=n-k+1,则称此码为极大距离可分码,MDS码
对偶码、系统码和缩短码
对偶码
设[n,k,d]线性分组码C的生成矩阵为G,校验矩阵为H,以H作为生成矩阵,G为对应的校验矩阵,可构造另一个[n,n-k,d’]线性分组码C1,我们称C1为C的对偶码
如果一个码的对偶码就是它自己,则称该类码为自偶码
缩短码
从[n,k,d]线性分组码的所有码字中,把前面i位全为零的码字挑选出来构成一个新的子集,该子集即为[n,k,d]的缩短码
对系统码而言,去掉G的前i列和前i就可得到缩短码的生成矩阵\(G_s\)。去掉校验矩阵的前i列,可得到缩短码的校验矩阵\(H_s\)
汉明码
参数
码长: n=2^m-1
信息位长度:k=2^m-1-m
最小汉明距离:d=3
校验矩阵有 m行,2^m-1列,取互不相同的m重构成
线性分组码的译码
待续
线性分组码的最小汉明距离( \(d_{\text{min}}\))与它的检错和纠错能力
检错能力:线性分组码可以检测最多 \(t\) 个错误的条件是 \(d_{\text{min}} > t\)
纠错能力:线性分组码可以纠正最多\(t\)个错误的条件是\(d_{\text{min}} \geq 2t + 1\)

浙公网安备 33010602011771号