您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 数据通信与网络 > 线性分组码(7-4)码设计说明书
前言设计数字通信系统时,应首先合理选择信道编译码码组种类,这样才可以在信号的传输,以及接收环节达到较好的效果,线性分组码具有编译码简单,封闭性好等特点,采用差错控制编码技术是提高数字通信可靠性的有效方法,是目前较为流行的差错控制编码技术。分组码是一组固定长度的码组,可表示为(n,k),通常它用于前向纠错。在分组码中,监督位被加到信息位之后,形成新的码。在编码时,k个信息位被编为n位码组长度,而n-k个监督位的作用就是实现检错与纠错。对于长度为n的二进制线性分组码,它有种可能的码组,从种码组中,可以选择M=个码组(kn)组成一种码。这样,一个k比特信息的线性分组码可以映射到一个长度为n码组上,该码组是从M=个码组构成的码集中选出来的,这样剩下的码组就可以对这个分组码进行检错或纠错。1摘要此系统是(7,4)线性分组码的编译码实现,它可以对输入的四位的信息码进行Hamming编码,对于接受的七位信息码可以进行译码,从而译出四位信息位。当接收到的信息码中有一位错误时,可以纠正这一位错码,进而译出正确的信息码组,整个过程是用Matlab语言实现的。关键词:编码;译码;纠错;2目录第一章设计目标..........................................................3第二章基本原理..........................................................4第三章推导过程..........................................................63.1编码过程..........................................................63.2译码过程..........................................................7第四章仿真过程及结果分析................................................94.1程序流程图........................................................94.1.1主程序流程图.................................................94.1.2编码程序流程图..............................................104.1.3译码程序流程图..............................................114.2主引导界面程序运行分析...........................................124.3信道编码程序运行分析.............................................134.4信道译码程序运行分析.............................................144.5纠错程序运行分析.................................................154.6退出程序运行分析.................................................164.6.1正常输入...................................................164.6.2系统不正常输入.............................................17结计总结................................................................19参考文献................................................................20附录....................................................................213第一章设计目标要设计一个(7,4)线性分组码的编译码程序,最基本的是要具备对输入的信息码进行编码,让它具有抗干扰的能力。同时,还要让它具有对接收到的整个码组中提取信息码组的功能。但是,在实际的通信系统中,由于信道传输特性不理想以及加性噪声的影响,接收到的信息中不可避免地会发生错误,影响通信系统的传输可靠性,因而,本设计还要让该程序具有纠正错误的能力,当接收到的码组中有一位码,发生错误时可以检测到这一位错码,并且可以纠正这一位错码,并且让系统从纠正后的码组中提取正确的信息码组。为了方便用户更好地使用该系统,该设计还要让程序运行后具有提示语句来提示用户选用编译器的种类,输入信息的方式以及退出系统的方式,当用户退出系统时有退出时的提示语句,而当用户输入错误时有错误提示语句,整个设计就是按照这样一种设计思路及目标进行设计的。4第二章基本原理线性分组码(n,k)中许用码字(组)为2k个。定义线性分组码的加法为模2和,乘法为二进制乘法。即1+1=0、1+0=1、0+1=1、0+0=0;1×1=1、1×0=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。我们用a0a1a2a3a4a5a6表示这7个码元,用s0、s1、s2表示由三个监督方程式计算得到的校正子,并假设三位s0、s1、s2校正子码组与误码位置的对应关系如表1所示。表2.1(7,4)码校正子与误码位置S2s1s0误码位置S2s1s0数值S2s1s0误码位置S2s1s0数值100a01011a46010a12101a55001a24111a67110a33000无错0由表可知,当误码位置在时,校正子s0=1;否则s0=0。因此有s0=a2⊕a4⊕a5⊕a6,同理有S1=a1⊕a3⊕a4⊕a6和S2=a0⊕a3⊕a5⊕a6。在编码时a6、a5、a4、a3为信息码元,a0、a1、a2为监督码元。则监督码元可由以下监督方程唯一确定:5(2.1)由上面方程可得到表12.3所示的16个许用码组。在接收端收到每个码组后,计算出s2、s1、s0,如果不全为0,则表示存在错误,可以由表12.2确定错误位置并予以纠正。例如收到码组为0000011,可算出S1S2S3=011,由表2.2可知在a3上有一误码。通过观察可以看出,上述(7,4)码的最小码距为dmin=3,它能纠正一个误码或检测两个误码。如果超出纠错能力则反而会因“乱纠”出现新的误码。表2.2(7,4)许用码组信息位监督位信息位监督位a6a5a4a3a2a1a0a6a5a4a3a2a1a00000000100100011010001010110011100001111010110111001100010001001101010111100110111101111111100001010010001100111上述方法构造的能纠正单个误码的线性分组码又称为汉明码。它具有以下一些特点:码长n=2m-1,最小码距为d=3,信息码长k=2n-m-1,纠错能力t=1,监督码长r=n-k=m。这里m为≥2的正整数。给定m后,就可构造出汉明码(n,k)。356034614562aaaaaaaaaaaa6第三章推导过程3.1编码过程监督矩阵H与生成矩阵G的关系:由H与G的分块表示的矩阵形式][knIPH(3.1)]QIGk[(3.2)TQP(3.3)TPQ(3.4)则有0HGT或0GHT(3.5)已知监督矩阵1110100H=10110101101001则可以根据监督阵求出生成矩阵1000111G=010010100101100001011有了生成矩阵后则可以根据输入的四位信息位和生成矩阵相乘得到编码矩阵,即Matlab函数为:C=rem(I*G,2);(3.6)其中C为编码后的结果,I为信息矩阵,G为生存矩阵。则编码的所有情况为:编码序列:7信息位||监督位0000000000101100101100011101010010101011100110011C=0111000100011110011001010001101101011000101101001111010011111113.2译码过程对于译码过程来说,同样已知监督矩阵:1110100H=10110101101001H矩阵与(,)nk码的任何一个许用码字进行相乘的结果必等于0,即若GCm是任一(,)nk码字,则必有0CHT。若不属于许用码字,或有传输差错,且差错位数在(,)nk码纠错能力内,则运算结果将为非0值,此时,可以纠错或检错重发。如本例中发生1位错时,其运算结果一定会等于H矩阵的某一列,这就表明是接收码组中的该对应码位发生错误,于是能够即时自动纠错,这一基本原理在下面伴随式解码运算时将进一步解释。当编码矩阵与生成矩阵的转置矩阵相乘时,若当其中的一位编码出现差错时会有七种情况,则更具这些情况列出错码矩阵如下:8错码矩阵:0000000000000100000100000100E=0001000001000001000001000000而这些情况正好是和校验子有某种对应关系的,根据这些对应关系可以进行相关编程。若编程检测到了那一位错误可以根据A=B+E(3.7)其中A为纠错输出码序列,E为错码矩阵,B为信道输出码。对接收到的信息进行改正求出正确的编码,从而再提去更正后的接收序列的前四位来提取信息位,以至获得信息矩阵I。9第四章仿真过程及结果分析4.1程序流程图4.1.1主程序流程图主程序一开始就有欢迎界面,并对用户显示出了选择提示语句,可以选择编码器、译码器、退出三种选择,当用户做出选择后便会进入各自的子程序,执行相应的功能,整个主程序的流程如下:图4.1主程序流程图开始欢迎界面1:编码器2:译码器0:退出编码程序译码程序退出提示输出编码输出译码接续操作1:编码2:译码器0:退出退出输入1输入2输入0如输入1输入0输入2104.1.2编码程序流程图在程序进入编码子程序时,它首先进行清空内存,由已知的监督矩阵求出生成矩阵,接着提示输入信息码组,信息码组与生存矩阵相乘后便会得到相应的Hamming编码序列,其程序流程如下:图4.2编码程序流程图开始清空内存空间由监督阵求生成矩阵提示输入信息码组编码输出提示输入错误返回按正确格式输入按错误格式输入114.1.3译码程序流程图对于译码程序,它同样先对内存进行清零,然后提示用户输入接收码组,输入的接收码组有可能含有误码,故而,程序先进行纠检错,判断程序是否有错,并且有一位错码时对序列进行纠错,输出正确的码组,然后提取出信息码组,流程图如下:图4.3译码程序流程图开始清空内存空间提示输入接收码组B根据接收码组B及监督矩阵H求出校验子S根据校验子S与错码矩阵的对应关系,进行码组纠检错提取信息码组并显示返回提示输入错误输入格式正确输入格式错误输出纠检错后的码组124.2主引导界面程序运行分析从程序的一开始运行就显示“您好!欢迎使用线性分组码编译器:请选择编译器种类:1:编译器2:译码器:0:退出”的一串字样,当你输入“1”时,则又显示“请输入n*4的信息码组:”。当输入“2”时,显示“请输入接收码组B:”。当你输入“0”时,则退出程序。运行结果如下图:图4.4欢迎提
本文标题:线性分组码(7-4)码设计说明书
链接地址:https://www.777doc.com/doc-5073529 .html