线性分组码高等教育大学_计算机-计算机原理.pdf
线性分组码 一、原理:监督矩阵:线性分组码 n,k 中许用码组为 2k 个。定义线性分组码的加法为模二加法,乘法为二 进制乘法。即 1 1 0、1 0 1、0 1 1、0 0 0;11 1、10 0、0 0 0、0 1 0。且码组与码组的运算在各个相应比特位上符合上述二进制加法运算规则。线性分组码具有如下性质 n,k 的性质:1.封闭性。任意两个码组的和还是许用的码组。2.码的最小距离等于非零码的最小码重。对于码组长度为 n、信息码元为 k 位、监督码元为 r n k 位的分组码,常记作 n,k 码,如果满足 2r 1 n,则有可能构造出纠正一位或一位以上错误的线性码。下面我们通过(7,4)分组码的例子来说明如何具体构造这种线性码。设分组码 n,k 中,k 4,为能纠正一位误码,要求 r 3。取 r 3,则 n k r 7。该例子中,信 息组为 a6a5 a4 a3 ,码字为 a6 a5 a 4 a3 a2 a1a0 。用 S1,S2,S3 的值与错码位置的对应关系 可以规定为如表 1 所列。由表中规定可知,当已知信息组时,按以下规则得到三个校验元,即:S1 a6 a5 a4 a2 S2 a6 a5 a3 a1(式 1.1)S3 a6 a4 a3 a0 S1S2 S3 001 010 100 011 在发送端编码时,信息位 表 1 错码位置示意表。错码位置 S1 S2 S3 错码位置 a0 101 a4 a1 110 a5 a2 111 a6 a3 000 无错 a6,a5,a4 和 a3 的值决定于输入信号,因此它们是随机的。监督位 a2,a1 和 a0 应根据信息位的取值按监督关系来确定,即监督位应使上三式中 S1,S2 和 S3 的值为零(表示编成的码组中应无错码)。由上式经移项运算,解出监督位:a2 a6 a5 a4 a1 a6 a5 a3(式 1.2)a0 a6 a4 a3 给出信息位后,可直接按上式算出监督位,其结果见表 2。接收端收到每个码组后先按式(1.1)计算出 S1,S2 和 S3,再按表 1 判断错码情况。表 2(7,4)线性分组码(海明码)信息组 码组 信息组 码组 0000 0000000 1000 1000111 0001 0001011 1001 1001100 0010 0010101 1010 1010010 0011 0011110 1011 1011001 0100 0100110 1100 1100001 0101 0101101 1101 1101110 0110 0110011 1110 1110100 0111 0111000 1111 1111111 给出(7,4)线性分组码有 24 即 16 个许用码字或合法码字,另有 27 24 个禁用码字。发送方发送的是许用码字,若接收方收到的是禁用码字,则说明传输中发生了错误。按上述方法构造的码称为海明码。表 2 所列的(7,4)海明码的最小码距 d0 3,因此,这种码能纠正一个错码或检测两个错码。海明码的编码效率等于 k/n 2r 1 r/2r 1 r 1/2r 1 1 r/n(式 1.3)当 n 很大时,则编码效率接近 1。可见,海明码是一种高效码。现在再来讨论线性分组码的一般原理。上面已经提到,线性码是指信息位和监督位满足 一组线性方程的码,式(1.1)就是这样一组线性方程的例子。现在将它改写成:1 a6 1 a5 1 a4 0 a3 1 a2 0 a0 0 1 a6 1 a5 0 a4 1 a3 0 a2 0 a0 0(式 1.4)1 a6 0 a5 1 a4 1 a3 0 a2 1 a0 0 式(1.4)可以表示成如下矩阵形式:a6 a5 1 1 1 0 1 0 0 a4 0 1 1 0 1 0 1 0 a3 0 1 0 1 1 0 0 1 a2 0 a1 a0 (模 2)(式 1.5)上式还可以简记为:码组与码组的运算在各个相应比特位上符合上述二进制加法运算规则线性分组码具有如下性质的性质封闭性任意两个码组的和还是许用的码组码的最小距离等于非零码的最小码重对于码组长度为信息码元为位监督码元为位的分组码构造这种线性码设分组码为能纠正一位误码要求该例子中信中取则息组为码字为用的值与错码位置的对应关系可以规定为如表所列由表中规定可知当知信息组时按以下规则得到三个校验元即式表错码位置示意表错码位置错码位置无定即监督位应使上三式中和的值为零表示编成的码组中应无错码由上式经移项运算解出监督位式给出信息位后可直接按上式算出监督位其结果见表接收端收到每个码组后先按式计算出和再按表判断错码情况表线性分组码海明码信息 H AT OT或 A HT 0 其中 A a6 a5 a4 a3 a2 a1a0 1 1 1 0 1 0 0 H 1 1 0 1 0 1 0 1 0 1 1 0 0 1 O 0 0 0 右上标“T 表”示将矩阵转置。将 H 称为监督矩阵,编码时只要监督矩阵给定,编码时监督位和信息位的关系就完全 确定。由式(1.4)、式(1.5)都可看出,H 的行数就是监督关系式的数目,它等于监督位 的数目 r。H 的每行中的“1 的”位置表示相应码元之间存在的监督关系。式(1.5)中的 H 矩 阵可以分为两部分:1 1 1 0:1 0 0 H1101:010 PI r 1 0 1 1:0 0 1 式中,P 为 r k 阶矩阵,I r 为 r r 阶单位方阵,将具有 PI r 形式的 H 矩阵称为典型监 督矩阵。由代数理论可知,H 矩阵的各行应该是线性无关的,否则将得不到 r 个线性无关的监 督关系式,从而也得不到 r 个独立的监督位。若一行矩阵能写成典型的矩阵形式 PI r ,则 其各行一定是线性无关的。因为容易验证 I r 的各行是线性无关的,故 PI r 也是线性无关 的。生成矩阵:类似于式(1.4)改变成式(1.5)中矩阵形式那样,式(1.5)也可以改写成:a2 1 1 1 0 a6 a5 a1 1 1 0 1 a4 a0 1 0 1 1 a3 或者 1 1 1 1 1 0 a2 a1 a0 a6 a5 a4 a3 1 0 1 a6 a5 a4 a3 Q 0 1 1 (式 1.6)(式 1.7)(式:1.8)(式 1.9)码组与码组的运算在各个相应比特位上符合上述二进制加法运算规则线性分组码具有如下性质的性质封闭性任意两个码组的和还是许用的码组码的最小距离等于非零码的最小码重对于码组长度为信息码元为位监督码元为位的分组码构造这种线性码设分组码为能纠正一位误码要求该例子中信中取则息组为码字为用的值与错码位置的对应关系可以规定为如表所列由表中规定可知当知信息组时按以下规则得到三个校验元即式表错码位置示意表错码位置错码位置无定即监督位应使上三式中和的值为零表示编成的码组中应无错码由上式经移项运算解出监督位式给出信息位后可直接按上式算出监督位其结果见表接收端收到每个码组后先按式计算出和再按表判断错码情况表线性分组码海明码信息 式中,Q 为一个 k r 阶矩阵,即它为 P 的转置,即 Q PT 式(1.9)表明,信息位给定后,用信息位的行距乘矩阵 Q 就产生出监督位。将 Q 的左边加上一 k k 阶单位方阵就构成一矩阵 G,即 1 0 0 0 1 1 1 G 0 1 0 0 1 1 0 I kQ 0 1 0 1 0 1 0 0 0 0 1 0 1 1 G 称为生成矩阵,因为由它可以产生整个码组,即有 a6 a5 a4 a3 a2 a1 a0 a6 a5 a4 a3 G 或者 (式 1.10)(式 1.11)(式 1.12)A a6 a5 a4 a3 G(式 1.13)因此,如果找到了码的生成矩阵 G,则编码的方法就完全确定。具有 I k Q 形式的生成 矩阵称为典型生成矩阵。由典型生成矩阵得出的码组 A 中,信息位不变,监督位附加于其 后,这种码称为系统码。与 H 矩阵相似,也要求 G 矩阵的各行是线性无关的。因为由式(1.13)可以看出,任 一码组 A 都是 G 的各行的线性组合。G 共有 k 行,若它们线性无关,则可组合出 2 k 种不同 的码组 A,它恰是有 k 为信息位的全部码组;若 G 的各行有线性相关的,则不可能由 G 生 成 2k 种不同码组了。实际上,G 的各行本身就是一个码组。因此,如果已有 k 个线性无关 的码组,则可以用其作为生成矩阵 G,并由它生成其余的码组。码的距离 两个码字之间,对应位取之不同的个数,称为汉明距离,用 d 表示。一个码的最小距离 d min 定义为 dmin min d(ci,c j),i j,ci,cj(n,k),两个码字之间的距离表示了它们 之间差别的大小。距离越大,两个码字的差别越大,则传送时从一个码字错成另一码字的可 能性越小。码的最小距离愈大,其抗干扰能力愈强。线性分组码的纠检错能力 对于任一个 (n,k)线性分组码,(1)若要在一个码字内检测出 e 个错误,则要求码的最小距离 d e 1;(2)纠正 t 个错误,则要求码的最小距离d 2t 1;(3)纠正 t 个错误同时检测 e(e t)个错误,则要求 d t e 1 。码组与码组的运算在各个相应比特位上符合上述二进制加法运算规则线性分组码具有如下性质的性质封闭性任意两个码组的和还是许用的码组码的最小距离等于非零码的最小码重对于码组长度为信息码元为位监督码元为位的分组码构造这种线性码设分组码为能纠正一位误码要求该例子中信中取则息组为码字为用的值与错码位置的对应关系可以规定为如表所列由表中规定可知当知信息组时按以下规则得到三个校验元即式表错码位置示意表错码位置错码位置无定即监督位应使上三式中和的值为零表示编成的码组中应无错码由上式经移项运算解出监督位式给出信息位后可直接按上式算出监督位其结果见表接收端收到每个码组后先按式计算出和再按表判断错码情况表线性分组码海明码信息 伴随式与译码 一般说来,式(1.13)中 A 为一 n 列的行矩阵。此矩阵的 n 个元素就是码组中的 n 个码元,所以发送的码组就是 A。此码组在传输中可能由于干扰引入差错,故接收码组一般说来与 A 不一定相同。若设接收码组为一 n 列的行矩阵 B,即 Bbn 1 bn 2 b0 (式 1.14)则发送码组和接收码组之差为:B A E(模 2)(式 1.15)它就是传输中产生的错码行矩阵,其中 Een 1en 2 e0 (式 1.16)其中 ei 0 当bi ai 1 当bi ai 因此,若 ei 0,表示该位接收码元无错;若 ei 1,则表示该位接收码元有错。式(1.15)也可以改写成:B A E (式 1.17)接收端译码时,可将接收码组 B 代入式(1.6)中计算。若接收码组中无错码,即 E 0,则BAE A,把它代入式(1.6)后,该式仍成立,则有 B H T 0 (式 1.18)当接收码组有错时,E 0,将 B 代入式(1.15)后,该式不一定成立。在错码较多,已超过这种编码的检错能力时,B 变为另一许用码组则式(1.18)仍能成立。这样的错码错 码是不可检测的。在未超过检错能力时,上式不成立,即其右端不等于零。假设这时式(1.18)的右端为 S,即 B H T S(式 1.19)将 B A E 代入式(1.19)中可得 S(AE)HT A H T E H T 由式(1.6)知,A H T 0,所以 S E H T(式 1.20)式中,S 称为伴随式或校正子。它与式(1.1)中的 S 相似,有可能利用它来指示错码 位置,这一点可以直接从式(1.20)中看出,式中 S 只与 E 有关,而与 A 无关,这就意味 码组与码组的运算在各个相应比特位上符合上述二进制加法运算规则线性分组码具有如下性质的性质封闭性任意两个码组的和还是许用的码组码的最小距离等于非零码的最小码重对于码组长度为信息码元为位监督码元为位的分组码构造这种线性码设分组码为能纠正一位误码要求该例子中信中取则息组为码字为用的值与错码位置的对应关系可以规定为如表所列由表中规定可知当知信息组时按以下规则得到三个校验元即式表错码位置示意表错码位置错码位置无定即监督位应使上三式中和的值为零表示编成的码组中应无错码由上式经移项运算解出监督位式给出信息位后可直接按上式算出监督位其结果见表接收端收到每个码组后先按式计算出和再按表判断错码情况表线性分组码海明码信息 着 S 与错码 E 之间有确定的线性变换关系。若 S 和 E 之间一一对应,则 S 将能代表错码的 位置。二、编解码流程:由 H 与 G 的分块表示的矩阵形式 H P I n k G I k Q P Q T Q PT 则有 G HT 0 或 H GT 0 已知生成矩阵 1 0 0 0 1 1 1 0 1 0 0 1 1 0 G 0 1 0 1 0 1 0 0 0 0 1 0 1 1 根据以上几式可求出监督矩阵 1 1 1 0 1 0 0 H 1 1 0 1 0 1 0 1 0 1 1 0 0 1 最后可以根据输入的四位信息位和生成矩阵相乘得到编码矩阵。即 C mG 所有的编码情况如表 1 所示。(式 2.1)(式 2.2)(式 2.3)(式 2.4)(式 2.5)(式 2.6)码组与码组的运算在各个相应比特位上符合上述二进制加法运算规则线性分组码具有如下性质的性质封闭性任意两个码组的和还是许用的码组码的最小距离等于非零码的最小码重对于码组长度为信息码元为位监督码元为位的分组码构造这种线性码设分组码为能纠正一位误码要求该例子中信中取则息组为码字为用的值与错码位置的对应关系可以规定为如表所列由表中规定可知当知信息组时按以下规则得到三个校验元即式表错码位置示意表错码位置错码位置无定即监督位应使上三式中和的值为零表示编成的码组中应无错码由上式经移项运算解出监督位式给出信息位后可直接按上式算出监督位其结果见表接收端收到每个码组后先按式计算出和再按表判断错码情况表线性分组码海明码信息 开 始 把生成矩阵赋给一个二维数组 G 提示输入要编码的信息码组的个数 提示输入信息码组 M 提示输入错误 并重新输入 错误 输入正确?正确 将码组赋给二维数组,码组的个数作为 行数,码组的位数作为数组的列数 信息组的数组与生成矩阵数组相乘 编码输出 c 返回 三、核心程序块:(7,4)码编译器整体程序:#include#include void main()/*G:生成矩阵 H:监督矩阵 HT:监督矩阵对应的转置矩阵*/*M:输入信息序列 C:编码输出序列 Input:输入接收码序列 B:译码输出序列 S:伴随式*/int Q,N;/*定义开始*/int i,j,s,r,k,t,p,u,m;码组与码组的运算在各个相应比特位上符合上述二进制加法运算规则线性分组码具有如下性质的性质封闭性任意两个码组的和还是许用的码组码的最小距离等于非零码的最小码重对于码组长度为信息码元为位监督码元为位的分组码构造这种线性码设分组码为能纠正一位误码要求该例子中信中取则息组为码字为用的值与错码位置的对应关系可以规定为如表所列由表中规定可知当知信息组时按以下规则得到三个校验元即式表错码位置示意表错码位置错码位置无定即监督位应使上三式中和的值为零表示编成的码组中应无错码由上式经移项运算解出监督位式给出信息位后可直接按上式算出监督位其结果见表接收端收到每个码组后先按式计算出和再按表判断错码情况表线性分组码海明码信息 int G47=1,0,0,0,1,1,1,0,1,0,0,1,1,0,0,0,1,0,1,0,1,0,0,0,1,0,1,1;int IR33=1,0,0,0,1,0,0,0,1;int H37,C107,M104,B207,Input100,HT73,P10,S1003;/*定义结束*/printf(n 您好!欢迎使用线性分组码编译器!n);printf(nn 本编译器针对(7,4)码,所采用的生成矩阵 G=n);for(i=0;i4;i+)for(j=0;j7;j+)printf(%d,Gij);printf(n);printf(编译码过程都是针对二进制码组,除了系统要求选择功能,其他情况下禁止输入除 0,1 以外 的数。请在使用的过程中严格按照编译器要求的格式输入数据。nn);printf(现在请输入您所选择的编译器所对应的序号,按回车键继续 :n);printf(n1.编码器 2.译码器 3.退出 n);printf(n 我选择:);scanf(%d,&Q);if(Q=0)Q+=4;while(Q)if(Q=1|Q=2|Q=3)break;else printf(对不起,您输入有误,请重新输入);scanf(%d,&Q);while(Q=1|Q=2|Q=3)if(Q=1)/*编码程序*/码组与码组的运算在各个相应比特位上符合上述二进制加法运算规则线性分组码具有如下性质的性质封闭性任意两个码组的和还是许用的码组码的最小距离等于非零码的最小码重对于码组长度为信息码元为位监督码元为位的分组码构造这种线性码设分组码为能纠正一位误码要求该例子中信中取则息组为码字为用的值与错码位置的对应关系可以规定为如表所列由表中规定可知当知信息组时按以下规则得到三个校验元即式表错码位置示意表错码位置错码位置无定即监督位应使上三式中和的值为零表示编成的码组中应无错码由上式经移项运算解出监督位式给出信息位后可直接按上式算出监督位其结果见表接收端收到每个码组后先按式计算出和再按表判断错码情况表线性分组码海明码信息 printf(n 请输入您需要编码的信息组数);scanf(%d,&N);printf(nn 请输入您需要编码的%d 组四位二进制信息组,码组间用空格分开,按回车 键确认。n,N);/*输入信息码*/printf(n 信息组 m=);for(i=0;iN;i+)scanf(%1d%1d%1d%1d,&Mi3,&Mi2,&Mi1,&Mi0);/*求监督码*/for(i=0;iN;i+)Ci2=Mi3Mi2Mi1;Ci1=Mi3Mi2Mi0;Ci0=Mi3Mi1Mi0;for(j=0;j2;i-)/*输出编码结果*/Cji=Mji-3;printf(n 您所输入的信息组编码结果 c=);for(j=0;j=0;i-)printf(%d,Cji);printf(nn);printf(n 接下来您想:nn);/*选择功能*/printf(1.用编码器 2.用译码器 3.退出 nn);printf(我想:);scanf(%d,&Q);else if(Q=2)/*译码程序*/for(i=0;i3;i+)/*求监督矩阵*/for(j=0;j4;j+)码组与码组的运算在各个相应比特位上符合上述二进制加法运算规则线性分组码具有如下性质的性质封闭性任意两个码组的和还是许用的码组码的最小距离等于非零码的最小码重对于码组长度为信息码元为位监督码元为位的分组码构造这种线性码设分组码为能纠正一位误码要求该例子中信中取则息组为码字为用的值与错码位置的对应关系可以规定为如表所列由表中规定可知当知信息组时按以下规则得到三个校验元即式表错码位置示意表错码位置错码位置无定即监督位应使上三式中和的值为零表示编成的码组中应无错码由上式经移项运算解出监督位式给出信息位后可直接按上式算出监督位其结果见表接收端收到每个码组后先按式计算出和再按表判断错码情况表线性分组码海明码信息 Hij=Gji+4;for(j=4;j7;j+)Hij=IRij-4;printf(n 监督矩阵 H=n);/*输出监督矩阵 */for(i=0;i3;i+)for(j=0;j7;j+)printf(%d,Hij);printf(n);t=1;while(t!=2)/*输入接收码组 */p=1;printf(n 请输入总位数为 7 的倍数的接收码组,每位用空格隔开,每组位数为 7 的倍数,以十进制 2 作为结束标志 !按回车键确认 n);while(p)for(i=0;i+)scanf(%d,&Inputi);if(Inputi=2)break;k=i%7;if(k=0)p=0;t=2;else p=1;k=-k+7;printf(您接收到的码组丢失了%d 位,系统不能判断丢失位的具体位 码组与码组的运算在各个相应比特位上符合上述二进制加法运算规则线性分组码具有如下性质的性质封闭性任意两个码组的和还是许用的码组码的最小距离等于非零码的最小码重对于码组长度为信息码元为位监督码元为位的分组码构造这种线性码设分组码为能纠正一位误码要求该例子中信中取则息组为码字为用的值与错码位置的对应关系可以规定为如表所列由表中规定可知当知信息组时按以下规则得到三个校验元即式表错码位置示意表错码位置错码位置无定即监督位应使上三式中和的值为零表示编成的码组中应无错码由上式经移项运算解出监督位式给出信息位后可直接按上式算出监督位其结果见表接收端收到每个码组后先按式计算出和再按表判断错码情况表线性分组码海明码信息 置,请重新输入 n,k);u=i/7;i=0;for(r=0;r=0;j-,i+)Brj=Inputi;printf(n 将接收码组每七位分为一个码组,如下:n);for(i=0;iu;i+)for(j=0;j7;j+)printf(%1d,Bi6-j);printf(n);for(i=0;i3;i+)/*求监督矩阵 H 的转置矩阵*/for(j=0;j7;j+)HTji=Hij;for(i=0;iu;i+)for(m=0;m3;m+)for(j=0;j7;j+)s+=(Bi6-j*HTjm);if(s%2=1)s=1;else s=0;码组与码组的运算在各个相应比特位上符合上述二进制加法运算规则线性分组码具有如下性质的性质封闭性任意两个码组的和还是许用的码组码的最小距离等于非零码的最小码重对于码组长度为信息码元为位监督码元为位的分组码构造这种线性码设分组码为能纠正一位误码要求该例子中信中取则息组为码字为用的值与错码位置的对应关系可以规定为如表所列由表中规定可知当知信息组时按以下规则得到三个校验元即式表错码位置示意表错码位置错码位置无定即监督位应使上三式中和的值为零表示编成的码组中应无错码由上式经移项运算解出监督位式给出信息位后可直接按上式算出监督位其结果见表接收端收到每个码组后先按式计算出和再按表判断错码情况表线性分组码海明码信息 Si2-m=s;s=0;printf(nn 伴随式 S=n);/*输出伴随式*/for(j=0;j=0;i-)printf(%1d,Sji);printf(n);printf(n);for(i=0;i=0;j-)printf(%1d,Bij);printf(请您再次确认!);printf(译出的信息序列为:);for(j=6;j2;j-)printf(%d,Bij);break;case 2:Bi0=1Bi0;printf(nn 您接收的第%d 个码组有错误,正确的码组应为:,+i);i-;码组与码组的运算在各个相应比特位上符合上述二进制加法运算规则线性分组码具有如下性质的性质封闭性任意两个码组的和还是许用的码组码的最小距离等于非零码的最小码重对于码组长度为信息码元为位监督码元为位的分组码构造这种线性码设分组码为能纠正一位误码要求该例子中信中取则息组为码字为用的值与错码位置的对应关系可以规定为如表所列由表中规定可知当知信息组时按以下规则得到三个校验元即式表错码位置示意表错码位置错码位置无定即监督位应使上三式中和的值为零表示编成的码组中应无错码由上式经移项运算解出监督位式给出信息位后可直接按上式算出监督位其结果见表接收端收到每个码组后先按式计算出和再按表判断错码情况表线性分组码海明码信息 for(j=6;j=0;j-)printf(%1d,Bij);printf(译出的信息序列为:);for(j=6;j2;j-)printf(%d,Bij);break;case 3:Bi1=1Bi1;printf(nn 您接收的第%d 个码组有错误,正确的码组应为:,+i);i-;for(j=6;j=0;j-)printf(%1d,Bij);printf(译出的信息序列为:);for(j=6;j2;j-)printf(%d,Bij);break;case 4:Bi3=1Bi3;printf(nn 您接收的第%d 个码组有错误,正确的码组应为:,+i);i-;for(j=6;j=0;j-)printf(%1d,Bij);printf(译出的信息序列为:);for(j=6;j2;j-)printf(%d,Bij);break;case 5:Bi2=1Bi2;码组与码组的运算在各个相应比特位上符合上述二进制加法运算规则线性分组码具有如下性质的性质封闭性任意两个码组的和还是许用的码组码的最小距离等于非零码的最小码重对于码组长度为信息码元为位监督码元为位的分组码构造这种线性码设分组码为能纠正一位误码要求该例子中信中取则息组为码字为用的值与错码位置的对应关系可以规定为如表所列由表中规定可知当知信息组时按以下规则得到三个校验元即式表错码位置示意表错码位置错码位置无定即监督位应使上三式中和的值为零表示编成的码组中应无错码由上式经移项运算解出监督位式给出信息位后可直接按上式算出监督位其结果见表接收端收到每个码组后先按式计算出和再按表判断错码情况表线性分组码海明码信息 printf(nn 您接收的第%d 个码组有错误,正确的码组应为:,+i);i-;for(j=6;j=0;j-)printf(%1d,Bij);printf(译出的信息序列为:);for(j=6;j2;j-)printf(%d,Bij);break;case 6:Bi4=1Bi4;printf(nn 您接收的第%d 个码组有错误,正确的码组应为:,+i);i-;for(j=6;j=0;j-)printf(%1d,Bij);printf(译出的信息序列为:);for(j=6;j2;j-)printf(%d,Bij);break;case 7:Bi5=1Bi5;printf(nn 您接收的第%d 个码组有错误,正确的码组应为:,+i);i-;for(j=6;j=0;j-)printf(%1d,Bij);printf(译出的信息序列为:);for(j=6;j2;j-)printf(%d,Bij);break;case 8:码组与码组的运算在各个相应比特位上符合上述二进制加法运算规则线性分组码具有如下性质的性质封闭性任意两个码组的和还是许用的码组码的最小距离等于非零码的最小码重对于码组长度为信息码元为位监督码元为位的分组码构造这种线性码设分组码为能纠正一位误码要求该例子中信中取则息组为码字为用的值与错码位置的对应关系可以规定为如表所列由表中规定可知当知信息组时按以下规则得到三个校验元即式表错码位置示意表错码位置错码位置无定即监督位应使上三式中和的值为零表示编成的码组中应无错码由上式经移项运算解出监督位式给出信息位后可直接按上式算出监督位其结果见表接收端收到每个码组后先按式计算出和再按表判断错码情况表线性分组码海明码信息 Bi6=1Bi6;printf(nn 您接收的第%d 个码组有错误,正确的码组应为:,+i);i-;for(j=6;j=0;j-)printf(%1d,Bij);printf(译出的信息序列为:);for(j=6;j2;j-)printf(%d,Bij);break;printf(nn 总的译码结果为:);for(i=0;i2;j-)printf(%1d,Bij);printf(nn 接下来您想:nn);/*继续选择功能 */printf(1.用编码器 2.用译码器 3.退出 nn);printf(我想:);scanf(%d,&Q);if(Q=0)Q=Q+4;while(Q)if(Q=1|Q=2|Q=3)break;else printf(对不起,您输入有误,请重新输入);scanf(%d,&Q);码组与码组的运算在各个相应比特位上符合上述二进制加法运算规则线性分组码具有如下性质的性质封闭性任意两个码组的和还是许用的码组码的最小距离等于非零码的最小码重对于码组长度为信息码元为位监督码元为位的分组码构造这种线性码设分组码为能纠正一位误码要求该例子中信中取则息组为码字为用的值与错码位置的对应关系可以规定为如表所列由表中规定可知当知信息组时按以下规则得到三个校验元即式表错码位置示意表错码位置错码位置无定即监督位应使上三式中和的值为零表示编成的码组中应无错码由上式经移项运算解出监督位式给出信息位后可直接按上式算出监督位其结果见表接收端收到每个码组后先按式计算出和再按表判断错码情况表线性分组码海明码信息 else if(Q=3)/*退出程序*/printf(n 谢谢您的使用,欢迎再次使用!n);Q=0;码组与码组的运算在各个相应比特位上符合上述二进制加法运算规则线性分组码具有如下性质的性质封闭性任意两个码组的和还是许用的码组码的最小距离等于非零码的最小码重对于码组长度为信息码元为位监督码元为位的分组码构造这种线性码设分组码为能纠正一位误码要求该例子中信中取则息组为码字为用的值与错码位置的对应关系可以规定为如表所列由表中规定可知当知信息组时按以下规则得到三个校验元即式表错码位置示意表错码位置错码位置无定即监督位应使上三式中和的值为零表示编成的码组中应无错码由上式经移项运算解出监督位式给出信息位后可直接按上式算出监督位其结果见表接收端收到每个码组后先按式计算出和再按表判断错码情况表线性分组码海明码信息