摘要本报告详细给出了循环码的定义以及由生成多项式求解生成矩阵和系统生成矩阵的过程,并在Matlab环境下写出了循环码的编码器和解码器代码,实现了编码和译码功能。在计算机通信信息码中循环码是线性分组码的一个重要子集,是目前研究得最成熟的一类码。它有许多特殊的代数性质,它使计算机通信以一种以数据通信形式出现,实现了在计算机与计算机之间或计算机与终端设备之间进行有效的与正确地信息传递,它使得现代通信的可靠性与有效性实现了质的飞跃循环码还有易于实现的特点,很容易用带反馈的移位寄存器实现其硬件。关键字:循环码;编码;译码;Matlab。目录前言................................................................................................................................................4一循环码概念及其编译码原理介绍.............................................................................................51.1线性生成码.......................................................................................................................51.1.1线性生成码的原理...............................................................................................51.1.2生成矩阵和校验矩阵...........................................................................................51.2(n,k)循环码...................................................................................................................61.2.1(n,k)循环码概念...............................................................................................61.2.2循环码编码原理...................................................................................................71.2.3循环码纠错原理...................................................................................................81.2.4编码过程及实现.................................................................................................101.2.5译码过程及实现.................................................................................................11二、(15,7)循环码程序设计.......................................................................................................142.1(15,7)循环码编码仿真模块.......................................................................................142.2(15,7)循环码译码仿真模块.......................................................................................152.3高斯信道下(15,7)循环码的误码性能.....................................................................16三、设计与仿真.............................................................................................................................173.1(15,7)循环码的编码...................................................................................................173.3(15,7)循环码的译码.................................................................................................183.4(15,7)循环码在高斯信道下的误码性能.................................................................19总结..............................................................................................................................................20参考文献.........................................................................................................................................21附录..............................................................................................................................................22致谢..............................................................................................................................................28前言在通信软件中大多数采用循环码进行数据差错控制。了解循环码的数学原理,掌握硬件实现电路,运用简单快速的软件方法,对于各种通信软件编程员(包括单片机、系统机)有很高的实用价值。在计算机通信信息码中循环码是线性分组码的一个重要子集,是目前研究得最成熟的一类码。它有许多特殊的代数性质,它使计算机通信以一种以数据通信形式出现,实现了在计算机与计算机之间或计算机与终端设备之间进行有效的与正确地信息传递,它使得现代通信的可靠性与有效性实现了质的飞跃。一循环码概念及其编译码原理介绍1.1线性生成码1.1.1线性生成码的原理线性分组码的构成方式是把信息序列分成每k个码元一段,并由这k个码元按一定规则产生r个校验位,组成长度为n=k+r的码字,用(n,k)表示信息码元与校验位之间为线性关系。一个[n,k]线性分组码,是把从信源输出的以k个码元为一组的信息组m,通过信道编码器后,变成长度为n≥k的码组(码字)c作为[n,k]线性分组码的一个码字。设GF(q)是一个含有q个元素的有限数域,若每位码元的取值有q种(取自GF(q)),则信息组m共有种不同的状态,因此,需要个码字c。而长为n的数组共有个,二进制时(q=2)共有个。显然,个n维向量组成有限域GF(q)上的一个n维线性空间V,编码就是要在这个n维线性空间中选出个向量作为合法码字,其余的-个向量为禁用码字。如果选出的个作为合法码字的向量的集合构成了V的一个k维线性子空间,则称它是一个q进制[n,k]线性分组码。如果值取自GF(q)上的[n,k]分组码的个码字的集合C,便构成了有限域GF(q)上的n维线性空间V的一个k维线性子空间,则称C是一个q进制[n,k]线性分组码。1.1.2生成矩阵和校验矩阵生成矩阵:G称为生成矩阵,因为可以用它产生整个码组A,即有kqkqnqn2nqkqnqkqkqkq0110001101001011001001111000QGkI生成矩阵的性质:具有[IkQ]形式的生成矩阵称为典型生成矩阵。由典型生成矩阵得出的码组A中,信息位的位置不变,监督位附加于其后。这种形式的码组称为系统码。矩阵G的各行也必须是线性无关的。如果已有k个线性无关的码组,则可以将其用来作为生成矩阵G,并由它生成其余码组。监督矩阵:监督矩阵可用来校验和纠错。1.2(n,k)循环码1.2.1(n,k)循环码概念在实际应用中,数据传输一般采用系统码的编码方式,即在发送的信息序列之后附加上特定位数序列的冗余位,该冗余位称为所发送的信息序列的监督位。监督位一般是由所发送的信息序列经过恰当的变化而产生。若监督位由信息序列经过线性组合得到,则称得到的系统码为线性分组码。循环码是线性分组码的一个重要子类,具有严密的代数学理论。循环码“线性”是指任意两个循环码模2相加所得的新码仍为循环码。循环码具有线性码的一般性质(即封闭性.指一种线性分组码的任意两个码组之和仍是该分组码的另一个码组)外,还具有循环性,即循环码中任一码组循环一位(将最右端码元移至左端,或反之)以后,仍为该码组中的一个码组。(n,k)循环码表示其中信息位为k,监督位为n-k位。若一个循环码的所有码字多项式都是一个次数最低的非零首一多项式g(x)的倍式,则g(x)生成该码,并称g(x)为该码的生成元或生成多项式。若在GF(2)上的(n,k)循环码中,存在唯一的n-k次首一多项式使得每一个码多项式c(x)都是g(x)的倍式,且每一低于或等于n-1次的g(x)的倍式,一定是码多项式。(n,k)循rPIH001101101011011001110G34560123456aaaaaaaaaaaA011011011...0...0...0...0...00...0...ggggggggggggknknknknknknkkkhhh...hhhhhhh...0...0...0......00...0...1021010环码的生成多项式g(x)一定是的因式:;反之,若g(x)为n-k次,且除尽,则此g(x)一定生成一个(n,k)循环码。对于一般的(n,k)循环码,设其生成多项式为,由于、…等k个码多项式必线性无关,故可用它们组成码的一组基底,而与这些码多项式相对应的k个线性无关的码向量就构成除生成矩阵G,即G(x)=若g(x)是(n,k)循环码的生成多项式,有,h(x)是k次多项式,称为校验多项式。令,则H=为(n-k)xn阶矩阵,称为码的校验矩阵。可以证明,。1.2.2循环码编码原理有信息码构成信息多项式011)(mxmxmkk,其中最高幂次为k-1;用knx乘以信息多