您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 电子设计/PCB > 基于MATLAB的线性分组码编译码仿真实现设计说明书
信息工程学院通信工程系设计题目:基于MATLAB的线性分组码编译码仿真设计班级:10通信班学号:姓名:指导老师:2013年11月15日成绩:0摘要该系统是(6,3)线性分组码的编码和译码的实现,它可以对输入的三位的信息码进行线性分组码编码,对于接收到的六位码字可以进行译码,从而译出三位信息码。当接收到的六位码字中有一位发生错误时,可以纠正这一位错码;当接收到的码字有两位发生错误时,只能纠正一位错误,但同时能检测出另一位错误不能纠正。只有特定位有两位错误时,才能纠正两位错误。这样就译出正确的信息码组,整个过程是用MATLAB语言实现的。关键词:编码;译码;纠错01目录前言................................................................................................................................2第1章设计目标..........................................................................................................2第2章MATLAB简介.....................................................................................................3第3章基本原理..........................................................................................................33.1线性分组码的编码.........................................................................................33.1.1生成矩阵..............................................................................................33.1.2校验矩阵.............................................................................................53.2伴随式与译码.................................................................................................63.2.1码的距离及纠检错能力......................................................................63.2.2伴随式与译码......................................................................................6第4章推导过程..........................................................................................................74.1编码过程.........................................................................................................74.2译码过程.........................................................................................................9第5章仿真程序及结果分析....................................................................................115.1仿真程序.......................................................................................................115.2仿真结果图...................................................................................................135.3结果分析.......................................................................................................15参考文献......................................................................................................................16总结..............................................................................................................................1702011101110前言近年来,随着计算机、卫星通信及高速数据网的飞速发展,数据的交换、处理和存储技术得到了广泛的应用,人们对数据传输和存储系统的可靠性提出了越来越高的要求。因此,如何控制差错、提高数据传输和存储的可靠性,成为现代数字通信系统设计的重要课题。目前,绝大多数的数字计算机和数字通信系统中广泛采用二进制形式的码。而线性分组码具有编译码简单,封闭性好等特点,采用差错控制编码技术是提高数字通信可靠性的有效方法,是目前较为流行的差错控制编码技术。对线性分组码的讨论都在有限域GF(2)上进行,域中元素为{0,1},域中元素计算为模二加法和模二乘法。分组码是一组固定长度的码组,可表示为(n,k),通常它用于前向纠错。在分组码中,监督位被加到信息位之后,形成新的码。在编码时,k个信息位被编为n位码组长度,而n-k个监督位的作用就是实现检错与纠错。对于长度为n的二进制线性分组码,它有种2n可能的码组,从2n种码组中,可以选择M=2k个码组(kn)组成一种码。这样,一个k比特信息的线性分组码可以映射到一个长度为n码组上,该码组是从M=2k个码组构成的码集中选出来的,这样剩下的码组就可以对这个分组码进行检错或纠错。第1章设计目标要设计一个(6,3)线性分组码的编译码程序,最基本的是要具备对输入的信息码进行编码,让它具有抗干扰的能力。同时,还要让它具有对接收到的整个码组中提取信息码组的功能。但是,在实际的通信系统中,由于信道传输特性不理想以及加性噪声的影响,接收到的信息中不可避免地会发生错误,影响通信系统的传输可靠性,因而,本设计还要让该程序具有纠正错误的能力,当接收到的码组中有一位码,发生错误时可以检测到这一位错码,并且可以纠正这一位错码,并且让系统从纠正后的码组中提取正确的信息码组。针对给定的矩阵Q=完成如下的工作:031完成对任意信息序列的编码2根据生成矩阵,形成监督矩阵;3根据得到的监督矩阵,得到伴随式,并根据它进行译码;4验证工作的正确性。第2章MATLAB简介MATLAB是很实用的数学软件它在数学类科技应用软件中在数值运算方面首屈一指。MATLAB可以进行运算、绘制函数和数据、实现算法、创建用户界面、连接接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、金融建模设计与分析等领域。MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且mathwork也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用。第3章基本原理3.1线性分组码的编码3.1.1生成矩阵线性分组码(n,k)中许用码字(组)为2k个。定义线性分组码的加法为模二加法,乘法为二进制乘法。即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,3)分组码的例子来说明如何具体构造这种线性码。设分组码(n,k)中,k=3,为能纠正一位误码,要求r≥3。现取r=4,则n=k04c1c2···ck+r=7。该例子中,信息组为(c6c5c4),码字为(c6c5c4c3c2c1c0).当已知信息组时,按以下规则得到四个校验元,即c3=c6+c4c2=c6+c5+c4(3-1)c1=c6+c5c0=c5+c4这组方程称为校验方程。(7,3)线性分组码有23(8)个许用码字或合法码字,另有27-23个禁用码字。发送方发送的是许用码字,若接收方收到的是禁用码字,则说明传输中发生了错误。为了深化对线性分组码的理论分析,可将其与线性空间联系起来。由于每个码字都是一个二进制的n重,及二进制n维线性空间Vn中的一个矢量,因此码字又称为码矢。线性分组码的一个重要参数是码率r=k/n,它说明在一个码字中信息位所占的比重,r越大,说明信息位所占比重越大,码的传输信息的有效性越高。由于(n,k)线性分组,线性分组码的2k个码字组成了n维线性空间Vn的一个K维子空间。因此这2k个码字完全可由k个线性无关的矢量所组成。设此k个矢量为c1,c2,…,ck,有生成矩阵形式为G=(3-2)(n,k)码字中的任一码字ci,均可由这组基底的线性组合生成,即ci=mi·G=[mn-1mn-2…mn-k]·G式中,mi=[mn-1mn-2…mn-k]是k个信息元组成的信息组。表3-1(7,3)线性分组码信息组码字000000000005001001110101001001110110111010100100110101101001111011010011111110100对于表3-1给出的(7,3)线性分组码,可将写成矩阵形式[c6c5c4c3c2c1c0]=[c6c5c4]·101110011100100111001故(7,3)码的生成矩阵为G=101110011100100111001可以看到,从(7,3)码的8个码字中,挑选出k=3个线性无关的码字(1001110)(0100111),(00111101)作为码的一组基底,用c=m·G计算得码字。一个系统码的生成矩阵G,其左边k行k列应是一个k阶单位方阵Ik,因此生成矩阵G表示为G=[IkP](3-3)式中,P是一个k×(n-k)阶矩阵。3.1.2校验矩阵表3-1所示的(7,3)线性分组码的四个校验元由式(3-1)所示的线性方程组决定的。把(3-1)移相,有c6+c4+c3=0c6+c5+c4+c2=0c6+c1+c5=0(3-4)c5+c4+c0=0061000110110001100101110001101上式的矩阵形式为1000110110001100101
本文标题:基于MATLAB的线性分组码编译码仿真实现设计说明书
链接地址:https://www.777doc.com/doc-1840440 .html