循环码产生电路设计1.引言在线性分组码中,有一种重要的码称为循环码。循环码是线性分组码中最重要的一种子类,是目前研究的比较成熟的一类码。循环码具有许多特殊的代数性质,这些性质有助于按照要求的纠错能力系统地构造这类码,并且简化译码算法,并且目前发现的大部分线性码与循环码有密切关系。循环码还有易于实现的特点,很容易用带反馈的移位寄存器实现其硬件。循环码是在严密的代数学理论基础上建立起来的。这种编码和解码设备都不太复杂,而且纠错的能力较强。循环码除了具有线性码的一般性质外,还具有循环性。循环性是指任一码组循环一位以后,认为该码中的一个码组。正是由于循环码具有码的代数结构清晰、性能较好、编译码简单和易于实现的特点,因此在目前的计算机纠错系统中所使用的线性分组码几乎都是循环码。它不但可以纠正独立的随机错误,也可用于检错突发错误并且非常有效。(n,k)循环码能够检测长为n-k或更短的任何突发错误,包括首尾相接突发错误。n-k+1位长的突发错误不能被检出所占的概率最大是错误!未找到引用源。,如果ln-k+1,则不能检测长为l的突发错误所占据的比值最大为)(2kn。2.设计要求(1)用simulink对系统建模。(2)写出其生成多式。(3)对所设计的系统性能进行仿真分析。(4)对其应用举例阐述。3.设计原理3.1循环码多项式为了利用代数理论研究循环码,可以将码组用代数多项是来表示,这个多项式被称为码多项式,对于许用循环码A=(0121aaaann),可以将它的码多项式表示为:T(x)=012211axaxaxaxaiinnnn对于二进制码组,多项式的每个系数不是0就是1,x仅是码元位置的标志。因此,这里并不关心x的取值。3.2循环码的生成多项式和生成矩阵(全0码字除外)称为生成多项式,用g(x)表示。可以证明生成多项式g(x)具有以下特性:1)g(x)是一个常数项为1的r=n-k次多项式;2)g(x)是1nx的一个因式;3)该循环码中其它码多项式都是g(x)的倍式。为了保证构成的生成矩阵G的各行线性不相关,通常用g(x)来构造生成矩阵,这时,生成矩阵G可以表示为:)()()()()(21xgxgxxgxxgxxGkk其中011)(axaxaxxgrrr,因此,一旦生成多项式g(x)确定以后,该循环码的生成矩阵就可以确定,进而该循环码的所有码字就可以确定。3.3循环码的编、译码方法在编码时,首先需要根据给定循环码的参数确定生成多项式g(x),也就是从1nx的因子中选一个(n-k)次多项式作为g(x);然后,利用循环码的编码特点,即所有循环码多项式A(x)都可以被g(x)整除,来定义生成多项式g(x)。根据上述原理可以得到一个较简单的系统循环码编码方法:设要产生(n,k)循环码,m(x)表示信息多项式,则其次数必小于k,而)(xmxkn的次数必小于n,用)(xmxkn除以g(x),可得余数r(x),r(x)的次数必小于(n-k),将r(x)加到信息位后作监督位,就得到了系统循环码。下面就将以上各步处理加以解释。(1)用)(xmxkn。这一运算实际上是把信息码后附加上(n-k)个“0”。例如,信息码为110,它相当于m(x)=2x+x。当n-k=7-3=4时,)(xmxkn=6x+5x,它相当于1100000。而希望的到得系统循环码多项式应当是A(x)=)(xmxkn+r(x)。(2)求r(x)。由于循环码多项式A(x)都可以被g(x)整除,也就是:)()()()()()()()()()(xgxrxgxmxxgxrxmxxQxgxAknkn因此,用)(xmxkn除以g(x),就得到商Q(x)和余式r(x),即)()()()()(xgxrxQxgxmxkn)。这样就得到了r(x)。(3)编码输出系统循环码多项式A(x)为:)()()(xrxmxxAkn例如,对于(7,3)循环码,若选用xxxxg24)(+1,信息码110时,则:11)1(1)()(24222456xxxxxxxxxxxxgxmxkn上式相当于:10111101111101111100000这时的编码输出为:1100101。在译码时,对于接收端译码的要求通常有两个:检错与纠错。达到检错目的的译码十分简单,通过判断接收到的码组多项式B(x)是否能被生成多项式g(x)整除作为依据。当传输中未发生错误时,也就是接收的码组与发送的码组相同,即A(x)=B(x),则接收的码组B(x)必能被g(x)整除;若传输中发生了错误,则A(x)≠B(x),B(x)不能被g(x)整除。因此,可以根据余项是否为零来判断码组中有无错码。需要指出的是,有错码的接收码组也有可能被g(x)整除,这时的错码就不能检出了。这种错误被称为不可检错误,不可检错误中的错码数必将超过这种编码的检错能力。在接收端为纠错而采用的译码方法自然比检错要复杂许多,因此,对纠错码的研究大都集中在译码算法上。我们知道,校正子与错误图样之间存在某种对应关系。如同其它线性分组码,循环编码和译码可以分三步进行:1)由接收到的码多项式B(x)计算校正子(伴随式)多项式S(x);2)由校正子S(x)确定错误图样E(x);3)将错误图样E(x)与B(x)相加,纠正错误。4.循环码的电路设计4.1循环码的simulink仿真建立模型方框图,针对本文中所设计(7,3)循环码,通过simulink仿真,仿真模型如下图所示,图1.simulink模型方框图abcd输入输出循环码的编码器原理图假设输入码为101,码多项式为xxxxg24)(+1,设置参数如下:图2.仿真模型图4.2循环码的应用(1)循环码在微机网络系统中的应用。(2)循环码在CDMA中的应用。(3)循环码在数字通信中的应用。(4)循环码在前向纠错中的应用。(5)循环码在铁路通讯系统中的应用。5.个人总结回顾起此次循环码设计电路课程设计,我仍感慨颇多。的确,在整整一星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西。不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到一些专业性的问题,毕竟第一次做的,难免会遇到过各种各样的问题。通过和老师同学的交流和沟通,并且在自己的理解上加以实践才得以解决。同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说循环码怎样生成和构成矩阵。通过这次课程设计之后,我以后一定要把所学过的知识重新温故,才能真正贯彻教学知识,深刻掌握并应用于实践。参考文献[1]樊昌信,曹丽娜.循环码.通信原理.2009,5(10):340~346.[2]达新宇.simulink系统建模与仿真.通信原理实验与课程设计.2005,1:264~291.