循环码产生电路引言:循环码是线性分组码的一个重要子集,是目前研究得最成熟的一类码。循环码计数器是汉明距离为1的计数器,因而必然是偶数进制计数器。用它构成的计数电路由于不会出现毛刺干扰,具有可靠性高等优点而受到重视。同时,它还有许多特殊的代数性质,这些性质有助于按所要求的纠错能力系统地构造这类码,且易于实现;同时循环码的性能也较好,具有较强的检错和纠错能力。由于此类编码的重要性,所以对循环码编码器的研究始终没有停止过。循环码又叫格雷码,任何两个相邻的循环码只有一位数字不同,当数据变换时,变换的数字数少,出现竞争冒险和出错的可能性会大大减小,所以循环码具有可靠性高的优点,在通信、军事等领域中应用非常广泛。在数字电子技术教学中,常用卡诺图化简多变量逻辑函数,画卡诺图时要用循环码。由于循环码的各位没有权值,所以书写和编制循环码比普通二进制码困难。设计目的:通过matlab仿真进一步深化对通信原理知识的学习。设计任务:1、用simulink对系统建模2、对接收的2DPSK信号进行接收判决,给出经过各器件后的仿真波形及判决结果。3、对其应用进行举例。4、对解调原理进行分析。设计分析:循环码具有许多特殊的代数性质,这些性质有助于按照要求的纠错能力系统地构造这类码,并且简化译码算法,并且目前发现的大部分线性码与循环码有密切关系。循环码还有易于实现的特点,很容易用带反馈的移位寄存器实现其硬件。循环码是在严密的代数学理论基础上建立起来的。通过对循环码多项式,生成多项式和生成矩阵,及编、译码方法等进行分析设计。仿真软件:matlab设计过程:1.循环码多项式为了利用代数理论研究循环码,可以将码组用代数多项是来表示,这个多项式被称为码多项式,对于许用循环码A=(0121aaaann),可以将它的码多项式表示为:T(x)=012211axaxaxaxaiinnnn对于二进制码组,多项式的每个系数不是0就是1,x仅是码元位置的标志。因此,这里并不关心x的取值。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.循环码的编、译码方法在编码时,首先需要根据给定循环码的参数确定生成多项式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上式相当于:101110101111101111100000这时的编码输出为: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.循环码的simulink建模及仿真建立模型方框图,针对本文中所设计(7,3)循环码,通过simulink仿真,仿真模型如下图所示simulink模型方框图假设输入码为011,码多项式为xxxxg24)(+1,设置参数如下:仿真模型图应用:通过对循环码的编译码技术的了解,并对分析其信道误码率。随着数字技术的高速发展,循环码纠错技术已经广泛应用于各种通信系统中。解码技术采用微处理器或数字信号处理器,实现简单,纠错能力强,可以降低误码率,保证数据传输的可靠性,大大提高通信质量。循环码是线性分组码的一个重要子集,是目前研究最成熟的一类码。循环码计数器是汉明码距离为1的计数器,因而必然是偶数进制计数器。用它构成的计数电路由于不会出现毛刺干扰,具有可靠性高等优点而受到重视,同时,它还有许多特殊的代数性质,这些性质有助于按所要求的纠错能力系统地构造这类码,且易于实现;同时循环码的性能也较好,具有较强的检错能力和纠错能力。由于此类编码的重要性,所以对循环码编码器的研究始终没有停止过。总结:Simulink已经成为在动态系统建模和仿真方面应用最广泛的软件包之一。他的魅力在于强大的功能和简便的操作。作为MATLAB的重要组成部分,simulink具有相对独立功能和使用方法。确切的说,它是对动态系统进行建模,仿真和分析的一个软件包,它支持线性和非线性系统,连续时间系统,离散时间系统等,而且系统可以是多进程的。进过几天的课程设计学习,了解到循环码产生电路的设计方法以及各种循环码的用途及特点,知道什么样的电路用什么样的编码,学会了使用simulink建模,运行simulink,建立组成模型,进行系统仿真,得到我们需要的仿真结果。在查询多本书的情况下,终于完成这门课程设计,收获颇丰。参考文献:[1]刘敏通信仿真与应用工程师工具软件应用系列,国防工业出版社,2001.1[2]梵唱信曹丽娜.通信原理(第6版),国防工业出版社。2009.5[3]周宦银,朱玲赞.循环码编码方法研究[J].现代电子技术,2006.4