*******************实践教学*******************兰州理工大学计算机与通信学院计算机通信课程设计题目:线性分组码(9,4)码的编译码仿真设计专业班级:姓名:学号:指导教师:成绩:目录前言 (1)第一章线性分组码原理 (2)1.1差错控制概述 (2)1.2差错控制原理 (2)1.3线性分组码概念 (3)1.4线性分组码的基本原理 (3)第二章线性分组码的编码 (5)2.1生成矩阵 (5)2.2校验矩阵 (7)第三章线性分组码的译码 (9)3.1纠错码的介绍 (9)3.2纠错的原理 (9)3.3线性分组码译码原理 (10)第四章推导过程 (12)4.1编码过程 (12)4.2译码过程 (12)第五章仿真结果分析 (16)5.1编码程序流程图 (16)5.2译码程序流程图 (17)5.3运行结果分析 (18)设计总结.................................................................................................................. 错误!未定义书签。
致谢 (21)参考文献 (23)附录 (24)前言计算机通信是一种以数据通信形式出现,在计算机与计算机之间,计算机与终端设备之间进行信息传递的方式。
它是现代计算机技术与通信技术相结合的产物,在军队指挥自动化系统、武器控制系统、信息处理系统、决策分析系统、情报检索系统以及办公自动化系统等领域得到了广泛应用。
按通信覆盖地域的广度,计算机通信通常分为局域网、城域网、广域网三类。
在通常情况下,计算机通信都是由多台计算机通过通信线路连接成计算机通信网进行的,这样可共享网络资源,充分发挥计算机系统的效能。
近年来,随着计算机、卫星通信及高速数据网的飞速发展,数据的交换、数据的交换理和存储技术得到了广泛的应用,人们对数据传输和存储系统的可靠性提出了越来越高的要求。
因此,如何控制差错、提高数据传输和存储的可靠性,成为现代数字通信系统设计的重要课题。
目前,绝大多数的数字计算机和数字通信系统中广泛采用二进制形式的码。
而线性分组码具有编译码简单,封闭性好等特点,通常它用于前向纠错。
在分组码中,监督位被加到信息位之后,形成新的码。
在编码时,k个信息位被编为n位码组长度,而n-k个监督位的作用就是实现检错与纠错。
这种码的编码效率比较高,因此得到了广泛的应用。
本课程设计主要是采用Matlab仿真实现线性分组码的编译码。
在加深理论知识的基础上,对Matlab仿真也有进一步的理解。
第一章线性分组码原理1.1 差错控制概述数字信号在传输过程中,由于受到干扰的影响,码元波形将变坏,接收端收到后可能发生错误判决,由乘性干扰引起的码间串扰,一般采用均衡的办法纠正。
加性干扰的影响一般从合理选择调制制度解调方法以及发送功率等方面考虑,使加性干扰不足以影响达到误码率要求。
在仍不能满足要求时,为减少错误、提高通信质量还采用检错、纠错技术,即差错控制措施。
差错控制的主要方法是将数据以某种形式编码。
差错控制的核心为:抗干扰编码,简称差错控制编码。
差错控制编码分为检错码、纠错码两大类。
它在码元间建立了某种数学约束关系,并且对特定的信道总存在某种纠错编码信号以实现最小的能量或最小的带宽或最小的时间代价获得最小的数据传输差错。
对于不同信道,采用不同类型的差错控制技术。
差错控制技术主要有:1) 检错重发:在发送码元序列中加入差错控制码元,接收端利用这些码元检测到有错码时,利用反向信道通知发送端,要求发送端重发,知道正确接收为止。
2) 前向纠错:前向纠错是利用接收端在发送码元序列中加入的差错控制码元,不但能够发现错码,还能够将错码恢复其正确值。
3) 反馈校验:不需要在发送序列中加入差错控制码元,接收端接收到的码元原封不动的转发会发送端。
在发送端将他和原发送码元逐一比较,若发现有不同,就认为接收端接受的序列有错码,发送端立即从发。
4) 检错删除:在接收端发现错码后,立即将其删除,不要求重发。
这种方法只适合在少数特定系统中,在那里发送码元有大量的多余度,删除部分接收码元不影响应用。
1.2 差错控制原理将信息码分组,并为每个信息组附加若干监督的编码,称为“分组码”。
在分组码中,监督码元仅监督本组码中的信息码元。
分组码一般用符号(n)、(k)表示,其中k是每组码二进制信息码元的数目。
n是码组的总位数,又称为码组的长度。
r=n-k为每个码组中的监督码元数目,或称监督位数目。
k位二进制数构成的码组集合为种不同的码组,若组都为有用码组,其中任意码组出现错误都将变成另一码组,则接收端无法检测识别哪一组出错。
若只取部分码组为有用码组,则在传输过程中如接收端接收到的码组为非许用码组即禁用码组时,则可知传输错误。
以3位二进制数构成的码组为例,它共有8种不同的可能组合,若将其全部用来表示天气,则可以表示8种不同天气,例如:000晴、001云、010阴、011雨、100雪、101霜、110雾、111雹。
其中任一码组在传输中若发生一个或多个错误,则将变成另一个信息码组。
这时接收端无法发现错误。
若在上述8种码组中秩序使用4种来传达天气,例如:000晴、011云、101阴、110雨。
这时,虽然只能传达4种不同的天气,但是接收端却可能发现码组中的一个错码。
如000错码一位,则接受码组将变成100或010或011.这三种码组都为禁用码组,故接收端认为接收码错误。
要想能够纠正错误,需增加冗余度。
1.3 线性分组码概念在计算机系统中,信息均按字节或字组成,故一般采用分组码。
对信源输出的序列,若按每组长k位进行分组,则在二进制情况下共有个不同的组合,若按某一种规则,将每一组k位增加r位校验位(r=n-k,n是含有码元的个数)。
使之成为具有一定纠错或检错能力的码字,则在个码字集合构成分组码。
分组码的规律性是局限在一个码组之内的,如果这种规律性是以一线性方程组来表示的,则这种分组码就叫做线性分组码。
1.4 线性分组码的基本原理分组码是一组固定长度的码组,一般可用符号(n,k)表示,其中k是每组的信息元数目,n是码组的总位数,又称为码组的长度(码长)。
r=n-k 为码组的监督元数目。
长为n的所有二进制组(或称n重)共有个,但长为k的信息组只有个,因此分组码实际上就是以一定的规则从个n重中挑选出个n重,使个信息组与个n重之间建立一一对应关系,这个n重组成了一个(n,k)分组码。
通常称这个n重为许用码组,简称码组,码矢或码字,而其余的-个n重为禁用码组。
在(n,k)线性分组码中,常用编码效率R衡量码的有效性,它定义为信息位在码字中所占的比重:R=k/n。
R越大,表明码的冗余度越小。
第二章线性分组码的编码2.1 生成矩阵性分组码(n,k)中许用码字(组)为个。
定义线性分组码的加法为模二加法,乘法为二进制乘法。
即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,则有可能构造出纠正一位或一位以上错误的线性码。
下面我们通过(9,4)分组码的例子来说明如何具体构造这种线性码。
设分组码(n,k)中,k = 4,为能纠正一位误码,要求r≥5。
现取r=5,则n=k+r=9。
该例子中,信息组为(),码字为().当已知信息组时,按以下规则得到五个校验元,即(2.1)(9,4)线性分组码有42个许用码字或合法码字,另有92-42个禁用码字。
发送方发送的是许用码字,若接收方收到的是禁用码字,则说明传输中发生了错误。
为了深化对线性分组码的理论分析,可将其与线性空间联系起来。
由于每个码字都是一个二进制的n重,及二进制n维线性空间Vn中的一个矢量,因此码字又称为码矢。
线性分组码的一个重要参数是码率r=k/n,它说明在一个码字中信息位所占的比重,r 越大,说明信息位所占比重越大,码的传输信息的有效性越高。
由于(n,k)线性分组,线性分组码的2个码字组成了n 维线性空间Vn 的一个K 维子空间。
因此这个码字完全可由k 个线性无关的矢量所组成。
设此k 个矢量为, ,,有生成矩阵形式为(2.2)(n,k)码字中的任一码字,均可由这组基底的线性组合生成,即i C =[12n n n C C C --K n k C -]·G (2.3)式中,[12n n n C C C --K n k C -]是k 个信息元组成的信息组。
写出线性分组码(9,4)码的所有信息组,由式(2.1)可得到生成的所有码字,如下表2-1所示:表2-1线性分组码(9,4)码对于表2-1给出的线性分组码(9,4)码,可将写成矩阵形式[]=[] (2.4)故(9,4)码的生成矩阵为(2.5)可以看到,从(9,4)码的16个码字中,挑选出k=4个线性无关的码字(100011100)(010011011),(001010110),(000101111)作为码的一组基底,用C=m·G计算得码字。
一个系统码的生成矩阵G,其左边k行k列应是一个k阶单位方阵,因此生成矩阵G表示为G=[ P] (2.6)式中,P是一个k×(n-k)阶矩阵。
2.2 校验矩阵表2-1所示的(9,4)线性分组码的四个校验元由式(2.1)所示的线性方程组决定的。
把式(2.1)移相,(2.7)上式的矩阵形式为=0 (2.8)这里的五行九列矩阵称为(9,4)码的一致校验矩阵,用H表示,即(2.9)由H矩阵得到(n,k)线性分组码的每一码字,(i=1,2),都必须满足由H矩阵各行所确定的线性方程组,即·=0。
(9,4)码的生成矩阵G中每一行及其线性组合都是(n,k)码的码字,所以有G·=0。
由G和H构成的行生成的空间互为零空间,即G和H彼此正交。
H=[]其右边r行r列组成一个单位方阵。
第三章线性分组码的译码3.1 纠错码的介绍纠错码(error correcting code),在传输过程中发生错误后能在收端自行发现或纠正的码。
仅用来发现错误的码一般常称为检错码。
关系的建立称为编码。
码字到达收端后,可以根据编码规则是否满足以判定有无错误。
当不能满足时,按一定规则确定错误所在位置并予以纠正。
纠错并恢复原码字的过程称为译码。
检错码与其他手段结合使用,可以纠错。
纠错编码又称信道编码,信源编码是信息传输的两个方面。