第5章 线性分组码 5.1 一般概念 5.2 一致监督方程和一致监督矩阵 5.3 线性分组码的生成矩阵 5.4 线性分组码的编码 5.1 一般概念 5.2 一致监督方程和一致监督矩阵 5.3 线性分组码的生成矩阵 5.4 线性分组码的编码 5.5 线性分组码的最小距离、检错和纠错能力 5.6 线性分组码的译码 5.7 线性分组码的性能 5.8 汉明码 5.9 由已知码构造新码的方法 5.10 线性分组码的码限
5.1 一般概念 线性分组码的编码:线性分组码的编码过程分为两步: 把信息序列按一定长度分成若干信息码组,每组由 k 位组成; 5.1 一般概念 线性分组码的编码:线性分组码的编码过程分为两步: 把信息序列按一定长度分成若干信息码组,每组由 k 位组成; 编码器按照预定的线性规则(可由线性方程组规定),把信息码组变换成 n 重 (n>k) 码字,其中 (n-k) 个附加码元是由信息码元的线性运算产生的。 信息码组长 k 位,有 2k 个不同的信息码组,则有 2k 个码字与它们一一对应。
5.1 一般概念 名词解释 线性分组码:通过预定的线性运算将长为 k 位的信息码组变换成 n 重的码字 (n>k)。由 2k 个信息码组所编成的 2k个码字集合,称为线性分组码。 码矢:一个 n 重的码字可以用矢量来表示 C=(Cn-1,Cn-1,…,C1,C0 ) 所以码字又称为码矢。 (n,k) 线性码:信息位长为 k,码长为 n 的线性码。 编码效率/编码速率/码率/传信率:R=k /n。它说明了信道的利用效率,R是衡量码性能的一个重要参数。
5.2 一致监督方程和一致监督矩阵 (1) 一致监督方程 编码就是给已知信息码组按预定规则添加监督码元,以构成码字。 5.2 一致监督方程和一致监督矩阵 (1) 一致监督方程 编码就是给已知信息码组按预定规则添加监督码元,以构成码字。 在 k 个信息码元之后附加 r(r=n-k) 个监督码元,使每个监督元是其中某些信息元的模2和。 举例:k=3, r=4,构成 (7,3) 线性分组码。设码字为 (C6,C5,C4,C3,C2,C1,C0) C6,C5,C4为信息元,C3,C2,C1,C0为监督元,每个码元取“0”或“1” 监督元可按下面方程组计算
5.2 一致监督方程和一致监督矩阵 一致监督方程/一致校验方程:确定信息元得到监督元规则的一组方程称为监督方程/校验方程。由于所有码字都按同一规则确定,又称为一致监督方程/一致校验方程。 由于一致监督方程是线性的,即监督元和信息元之间是线性运算关系,所以由线性监督方程所确定的分组码是线性分组码。
6.2 一致监督方程和一致监督矩阵 (2) 举例 信息码组 (101),即C6=1, C5=0, C4=1 6.2 一致监督方程和一致监督矩阵 (2) 举例 信息码组 (101),即C6=1, C5=0, C4=1 代入 (5.1) 得: C3=0, C2=0, C1=1, C0=1 由信息码组 (101) 编出的码字为 (1010011)。其它7个码字如表5.1。
5.2 一致监督方程和一致监督矩阵 (3) 一致监督矩阵 为了运算方便,将式(5.1)监督方程写成矩阵形式,得 式(5.2)可写成 5.2 一致监督方程和一致监督矩阵 (3) 一致监督矩阵 为了运算方便,将式(5.1)监督方程写成矩阵形式,得 式(5.2)可写成 H CT=0T或 C HT=0 CT、HT、0T分别表示C、H、0的转置矩阵。
5.2 一致监督方程和一致监督矩阵 系数矩阵 H 的后四列组成一个 (4×4) 阶单位子阵,用 I4 表示,H 的其余部分用 P 表示
5.2 一致监督方程和一致监督矩阵 推广到一般情况:对 (n,k) 线性分组码,每个码字中的 r(r=n-k) 个监督元与信息元之间的关系可由下面的线性方程组确定
5.2 一致监督方程和一致监督矩阵 令上式的系数矩阵为 H,码字行阵列为 C
5.2 一致监督方程和一致监督矩阵 (4) 一致监督矩阵特性 5.2 一致监督方程和一致监督矩阵 (4) 一致监督矩阵特性 对H 各行实行初等变换,将后面 r 列化为单位子阵,于是得到下面矩阵,行变换所得方程组与原方程组同解。 监督矩阵H 的标准形式:后面 r 列是一单位子阵的监督矩阵H。 H 阵的每一行都代表一个监督方程,它表示与该行中“1”相对应的码元的模2和为0。
5.2 一致监督方程和一致监督矩阵 H 的标准形式还说明了相应的监督元是由哪些信息元决定的。例如 (7,3) 码的H 阵的第一行为 (1011000),说明此码的第一个监督元等于第一个和第三个信息元的模2和,依此类推。 H 阵的 r 行代表了 r 个监督方程,也表示由H 所确定的码字有 r 个监督元。 为了得到确定的码,r 个监督方程(或H 阵的r 行)必须是线性独立的,这要求H 阵的秩为 r。 若把H 阵化成标准形式,只要检查单位子阵的秩,就能方便地确定H 阵本身的秩。
5.3 线性分组码的生成矩阵 (1) 线性码的封闭性 线性码的封闭性:线性码任意两个码字之和仍是一个码字。 定理5.1:设二元线性分组码 CI (CI表示码字集合) 是由监督矩阵H所定义的,若 U 和 V 为其中的任意两个码字,则 U+V 也是 CI中的一个码字。 [证明]:由于 U 和 V 是码 CI 中的两个码字,故有 HUT=0T,HVT=0T 那么 H(U+V)T=H(UT+VT)=HUT+HVT=0T 即 U+V 满足监督方程,所以 U+V 一定是一个码字。 一个长为 n 的二元序列可以看作是GF(2)(二元域)上的 n 维线性空间中的一点。长为 n 的所有 2n 个矢量集合构成了GF(2)上的 n 维线性空间Vn。把线性码放入线性空间中进行研究,将使许多问题简化而比较容易解决。 (n,k) 线性码是 n 维线性空间Vn中的一个 k 维子空间 Vk。
5.3 线性分组码的生成矩阵 (2) 线性分组码的生成矩阵 在由 (n,k) 线性码构成的线性空间 Vn 的 k 维子空间中,一定存在 k 个线性独立的码字:g1,g2,…, gk,。码 CI 中其它任何码字C都可以表为这 k 个码字的一种线性组合,即
5.3 线性分组码的生成矩阵 G中每一行 gi=(gi1,gi2,…, gin ) 都是一个码字; 对每一个信息组m,由矩阵G都可以求得 (n,k) 线性码对应的码字。 生成矩阵:由于矩阵 G 生成了 (n,k) 线性码,称矩阵 G 为 (n,k) 线性码的生成矩阵。 (n,k) 线性码的每一个码字都是生成矩阵 G 的行矢量的线性组合,所以它的 2k 个码字构成了由 G 的行张成的 n 维空间的一个 k 维子空间 Vk。
5.3 线性分组码的生成矩阵 线性系统分组码 通过行初等变换,将 G 化为前 k 列是单位子阵的标准形式
5.3 线性分组码的生成矩阵 线性系统分组码:用标准生成矩阵 Gk×n 编成的码字,前面 k 位为信息数字,后面 r=n-k 位为校验字,这种信息数字在前校验数字在后的线性分组码称为线性系统分组码。 当生成矩阵 G 确定之后,(n,k) 线性码也就完全被确定了,只要找到码的生成矩阵,编码问题也同样被解决了。
5.3 线性分组码的生成矩阵 (3) 举例 (7,4) 线性码的生成矩阵为
Hr×nGTn×k=0Tr×k 或 Gk×nHTn×r=0k×r 5.3 线性分组码的生成矩阵 (4) 生成矩阵与一致监督矩阵的关系 由于生成矩阵G的每一行都是一个码字,所以G 的每行都满足Hr×nCTn×1=0Tr×1,则有 Hr×nGTn×k=0Tr×k 或 Gk×nHTn×r=0k×r 线性系统码的监督矩阵 H 和生成矩阵 G 之间可以直接互换。
5.3 线性分组码的生成矩阵 举例 已知(7,4)线性系统码的监督矩阵为
5.3 线性分组码的生成矩阵 (5) 对偶码 对偶码:对一个(n,k)线性码 CI,由于Hr×nGTn×k=0Tr×k,如果以G 作监督矩阵,而以H 作生成矩阵,可构造另一个码CId,码CId是一个(n,n-k)线性码,称码CId为原码的对偶码。 例如: (7,4)线性码的对偶码是(7,3)码: (7,3)码的监督矩阵H(7,3)是(7,4)码生成矩阵G(7,4)
5.3 线性分组码的生成矩阵 (7,3) 码的生成矩阵 G(7,3) 是 (7,4) 码监督矩阵 H(7,4)
5.4 线性分组码的编码 (n,k) 线性码的编码就是根据线性码的监督矩阵或生成矩阵将长为 k 的信息组变换成长为 n(n>k) 的码字。 利用监督矩阵构造 (7,3) 线性分组码的编码电路: 设码字矢量为C=(C6 C5C4C3C2C1C0) 码的监督矩阵为
5.4 线性分组码的编码 根据方程组可直接画出 (7,3) 码的并行编码电路行串行编码电路,如图5.2。
5.5 线性分组码的最小距离、检错和纠错能力 (1) 汉明距离、汉明重量和汉明球 汉明距离/距离:在 (n,k)线性码中,两个码字 U、V 之间对应码元位上符号取值不同的个数,称为码字 U、V 之间的汉明距离。 例如:(7,3) 码的两个码字 U=0011101,V=0100111,它们之间第2、3、4和6位不同。因此,码字 U 和 V 的距离为4。 线性分组码的一个码字对应于 n 维线性空间中的一点,码字间的距离即为空间中两对应点的距离。因此,码字间的距离满足一般距离公理:
5.5 线性分组码的最小距离、检错和纠错能力 汉明球:以码字C为中心,半径为 t 的汉明球是与 C 的汉明距离≤ t 的向量全体 SC(t) 最小距离/dmin:在 (n,k) 线性码的码字集合中,任意两个码字间距离最小值,叫做码的最小距离。若C(i)和C(j) 是任意两个码字,则码的最小距离表示为 码的最小距离是衡量码的抗干扰能力(检、纠错能力)的重要参数。码的最小距离越大,码的抗干扰能力就越强。 汉明球:以码字C为中心,半径为 t 的汉明球是与 C 的汉明距离≤ t 的向量全体 SC(t) 任意两个汉明球不相交最大程度取决于任意两个码字之间的最小汉明距离dmin。
5.5 线性分组码的最小距离、检错和纠错能力
Wmin =min{W(V),V∈CI ,V≠0} 5.5 线性分组码的最小距离、检错和纠错能力 汉明重量/码字重量/W:码字中非0码元符号的个数,称为该码字的汉明重量。 在二元线性码中,码字重量就是码字中含“1”的个数。 最小重量/Wmin :线性分组码CI中,非0码字重量最小值,叫做码CI的最小重量: Wmin =min{W(V),V∈CI ,V≠0} 最小距离与最小重量的关系:线性分组码的最小距离等于它的最小重量。 [证明]:设线性码CI,且U∈CI, V∈CI,又设U-V=Z,由线性码的封闭性知,Z∈CI 。因此,d(U,V)=W(Z),由此可推知,线性分组码的最小距离必等于非0码字的最小重量。
5.5 线性分组码的最小距离、检错和纠错能力 (2) 最小距离与检、纠错能力 一般地说,线性码的最小距离越大,意味着任意码字间的差别越大,则码的检、纠错能力越强。 检错能力:如果一个线性码能检出长度≤l 个码元的任何错误图样,称码的检错能力为 l。 纠错能力:如果线性码能纠正长度≤t 个码元的任意错误图样,称码的纠错能力为 t。
5.5 线性分组码的最小距离、检错和纠错能力 最小距离与纠错能力:(n,k) 线性码能纠 t 个错误的充要条件是码的最小距离为 [证明]: 设:发送的码字为V;接收的码字为R;U为任意其它码字; 则:矢量V、R、U间满足距离的三角不等式, d(R,V)+d(R,U)≥d(U,V) (5.16) 设:信道干扰使码字中码元发生错误的实际个数为 t’,且t’≤t d(R,V)=t’≤t (5.17) 由于d(U,V)≥dmin=2t+1,代入式(5.16)得 d(R,U)≥ d(U,V)-d(R,V)= 2t+1-t’>t (5.18)
5.5 线性分组码的最小距离、检错和纠错能力 上式表明:如果接收字 R 中错误个数 t’≤t,那么接收字 R 和发送字 V 间距离≤t ,而与其它任何码字间距离都大于 t,按最小距离译码把R译为V。此时译码正确,码字中的错误被纠正。 几何意义:
5.5 线性分组码的最小距离、检错和纠错能力 最小距离与检错能力:(n,k) 线性码能够发现 l 个错误的充要条件是码的最小距离为 dmin=l+1 或 l=dmin-1 (5.19) [证明]: 设:发送的码字为 V;接收的码字为 R;U 为任意其它码字; 则:矢量V、R、U间满足距离的三角不等式, d(R,V)+d(R,U)≥d(U,V) (5.20) 设:信道干扰使码字中码元发生错误的实际个数为 l’,且l’≤l d(R,V)=l’≤l (5.21) 由于d(U,V)≥dmin=l+1,代入式(6.2.20)得 d(R,U)≥ d(U,V)-d(R,V)=l+1-l’>0 (5.22)
5.5 线性分组码的最小距离、检错和纠错能力 上式表明:由于接收字 R 与其它任何码字 U 的距离都大于0,则说明接收字 R 不会因发生 l’ 个错误变为其它码字,因而必能发现错误。 几何意义:
dmin=t+l+1 或 t+l=dmin-1 (5.23) 5.5 线性分组码的最小距离、检错和纠错能力 最小距离与检、纠错能力:(n,k) 线性码能纠 t 个错误,并能发现 l 个错误 (l>t) 的充要条件是码的最小距离为 dmin=t+l+1 或 t+l=dmin-1 (5.23) [证明]:因为dmin>2t+1,根据最小距离与纠错能力定理,该码可纠 t 个错误。 因为dmin>l+1,根据最小距离与检错能力定理,该码有检 l 个错误的能力。 纠错和检错不会发生混淆:设发送码字为 V,接收字为 R,实际错误数为 l’,且 t<l’≤l。 这时 R 与其它任何码字 U 的距离 d(R,U)≥d(U,V)-d(R,V)=t+l+1-l’>t+1>t (5.24) 因而不会把 R 误纠为 U。
5.5 线性分组码的最小距离、检错和纠错能力 几何意义:
5.5 线性分组码的最小距离、检错和纠错能力
5.5 线性分组码的最小距离、检错和纠错能力 当 (n,k) 线性码的最小距离 dmin 给定后,可按实际需要灵活安排纠错的数目。例如,对 dmin=8 的码,可用来纠3检4错,或纠2检5错,或纠1检6错,或者只用于检7个错误。
5.5 线性分组码的最小距离、检错和纠错能力 (3) 线性码的最小距离与监督矩阵的关系 定理5.2:设 H 为 (n,k) 线性码的一致监督矩阵,若 H 中任意 S 列线性无关,而 H 中存在 (S+1) 列线性相关,则码的最小距离为 (S+1)。(矩阵 H 的秩为S) 定理5.3:若码的最小距离为 (S+1),则该码的监督矩阵的任意 S 列线性无关,而必存在有相关的 (S+1)列。 定理5.4:在二元线性码的监督矩阵 H 中,如果任一列都不是全“0”,且任两列都不相等,则该码能纠一个错误。
5.6 线性分组码的译码 (1) 伴随式和错误检测 ① 用监督矩阵编码,也用监督矩阵译码:接收到一个接收字 R 后,校验 HRT=0T 是否成立: 若关系成立,则认为 R 是一个码字; 否则判为码字在传输中发生了错误; HRT的值是否为0是校验码字出错与否的依据。 ② 伴随式/监督子/校验子:S=RHT或ST=HRT。 ③ 如何纠错? 设发送码矢 C=(Cn-1,Cn-2,…,C0) 信道错误图样为 E=(En-1,En-2,…,E0) , 其中Ei=0,表示第i位无错; Ei=1,表示第i位有错。i=n-1,n-2,…,0。
ST=HRT=H(C+E)T=HCT+HET (5.25) 5.6 线性分组码的译码 接收字 R 为 R=(Rn-1,Rn-2,…,R0)=C+E =(Cn-1+En-1,Cn-2+En-2,…,C0 +E0) 求接收字的伴随式(接收字用监督矩阵进行检验) ST=HRT=H(C+E)T=HCT+HET (5.25) 由于HCT=0T,所以 ST=HET 设H=(h1,h2,…,hn),其中hi表示H的列。代入式(5.25)得到
5.6 线性分组码的译码 ④ 总结 伴随式仅与错误图样有关,而与发送的具体码字无关,即伴随式仅由错误图样决定; 伴随式是错误的判别式: 若S=0,则判为没有出错,接收字是一个码字; 若S≠0,则判为有错。 不同的错误图样具有不同的伴随式,它们是一一对应的。对二元码,伴随式是H 阵中与错误码元对应列之和。
5.6 线性分组码的译码 ⑤ 举例: (7,3)码接收矢量 R 的伴随式计算 设发送码矢C=1010011,接收码字R=1010011,R与C相同。
5.6 线性分组码的译码 若接收字中有一位错误
5.6 线性分组码的译码 当码元错误多于1个时
5.6 线性分组码的译码 ⑥ 伴随式计算电路 伴随式的计算可用电路来实现。 以(7,3)码为例:设接收字为R=(R6R5R4R3R2R1R0),伴随式为 根据上式可画出伴随式计算电路,如图5.7所示。
5.6 线性分组码的译码 根据上式可画出伴随式计算电路,如图5.7所示。
课外思考题 1:设 H 为一个 (n,k) 线性码 CI 的一致监督矩阵,且有奇数最小距离为 d。作一个新码 CI’,它的监督矩阵为 证明(1) CI’是一个(n+1,k)码; (2) CI’中每个码字的重 量为偶数; (3) CI’的最小重量为d+1。 2:已知(7,4)汉明码的生成矩阵为 (1) 求该码的全部码字; (2) 求该码的监督矩阵; (3) 若接收码字为1101101,计算伴随式。
作 业 3:已知 (8,4) 系统线性码的监督方程为 式中m=(m3, m2, m1, m0)为信息矢量,C3, C2, C1, C0为编码监督数字,求这个码的监督矩阵和生成矩阵,证明该码的最小距离为4。