本文共 3009 字,大约阅读时间需要 10 分钟。
基于matlab的循环码实验报告.doc
基于MATLAB循环码编码方法的应用叶俊(指导老师,刘丹平副教授)(重庆大学通信工程学院中国重庆400000)摘要任何两个相邻的循环码只有一位数字不同,因此循环码具有可靠性高的优点,在现代通信系统中应用广泛。本文主要介绍了循环码的编码和译码的基本编码原理,纠错能力及其在MATLAB中的实现及应用。关键词循环码编码MATLABTHEAPPLICATIONOFCYCLICCODINGONMATLABYEJUNTUTORLIUDANPINGCOLLEGEOFCOMMUNICATIONENGINEERING,CHONGQINGUNIVERSITYCHINACHINGQING400000ABSTRACTANYTWOADJACENTCYCLICCODEONLYONENUMBERISDIFFERENT,SOTHECYCLICCODEHASTHEADVANTAGESOFHIGHRELIABILITY,WHICHISWIDELYUSEDINMODERNCOMMUNICATIONSYSTEMTHISARTICLEMAINLYINTRODUCEDTHEBASICCODINGPRINCIPLEOFCYCLICCODECODINGANDDECODING,ERRORCORRECTIONABILITYANDITSIMPLEMENTATIONANDAPPLICATIONINMATLABKEYWORDSCYCLICCODECODINGMATLAB1循环码原理及其基本特点11循环码基本概念及其特点设C使某线性分组码的码字集合,如果N,K对任,它的循环移位CCCN,,021也属于C,则称该131码为循环码。(N,K)该码在结构上有另外的限制,即一个码字任意循环移位的结果仍是一个有效码字。其特点是1)循环码是线性分组码的一种,所以它具有线性分组的码的一般特性,且具有循环性,纠错能力强。2)循环码是一种无权码,循环码编排的特点为相邻的两个数码之间符合卡诺中的邻接条件,即相邻数码间只有一位码元不同,因此它具有一个很好的优点是它满足邻接条件,没有瞬时错误(在数码变换过程中,在速度上会有快有慢,中间经过其他一些数码形式,即为瞬时错误)。3)码字的循环特性,循环码中任一许用码经过循环移位后,所得到的码组仍然是许用码组。4)可以用反馈移位寄存器很容易实现编码和伴随式的计算。21循环码编码原理在一个GF2域上的N,K循环码中,一定存在唯一的一个次数最低的NK次首一码多项式GXXNKGNK1XNK1G1X1,使所有码多项式都是GX的倍式,且所有小于N次的GX的倍式都是码多项式。N,K循环码的生成多项式GX一定是XN1的因式,即一定存在一个多项式HX,满足XN1=GXHX或GX|XN1反之,如果GX是XN1的(NK)次因式,GX一定是某N,K循环码的生成多项式。即CX=MXGX及GX|CX上述定理告诉了构造N,K循环码的方法如下否①对XN1在二元域中等效于对XN1实行因式分解,找出其中的(NK)次因式。②以找出的(NK)次因式为循环码生成多项式GX,与信息多项式MX相乘,即得码多项式CXMXGX。31编码过程流程图2译码原理及其实现译码原理及其步骤1)有接收到的YX计算伴了随式SX。2)根据伴随式SX找出对应的估值错误图样。3)计算CXYXEX,得估计码字。若CXCX,则译码正确,否则错误。由于GX的次数为NK次,GX除EX后得余式(即伴随式)的最高次数为NK1次,故SX共有2NK个可能的表达式,每一个表达式对应一个错误格式。可以知道7,4)循环码的SX共有2748个可能的表达式,可根据错误图样表来纠正7,4)循环码中的一位错误。解码过程流程图纠错能力及其接收向量由于循环码是一种线性分组码,所以其纠检错能力与线性分组码相当。而线性分组码的最小距离可用来衡量码的抗干扰能力,那么一个码的最小距离就与它的纠检错能力有关。定理对于任一个(N,K)线性分组码,若要在码字内(1)检测个错误,要求码的最小距离E;1D(2)纠正个错误,要求码的最小距离T;(3)纠正个错误同时检测个错误,TE()T则要求;1TD循环码的译码分检错译码与纠错译码两类。在初始化由RX确定SX错误未找到引用源。SX0,无误码误码由SX确定错误图样EX纠错XREXC存储CX无记忆信道上,对码字C,差错图案和接收向量E的多项式描述为RXXR定义的伴随多项式为S1210MODRXSXSSGRX由于所,OD0GAC以XXES由此可见,则一定有差错产生,或0说满足的差错图样MODXGXE产生,它满足。0E循环码的检错译码即是计算并判断是否为0XS3实验分析实验测试结果理想状态下,对信号随机的提取,编码器输入为1000001110001000,通过ENCODE函数后,因为加入了监督码,信号变得复杂密集,编码输出为1011000101001110110001011000通过译码输出为1000001110001000,与编码输入一致。说明循环码的检错和纠错能力性能好。输出多项式为GXXAXA2XA3A6A5XA4XA3X2A3XA2XX3以RANDINT函数重新做一个输入信号并进行编码,结果与上例相似,输入与输出一致。由上面所有的图可以发现,编码器输入信号并不完全相同,因为对信号的提取是随机的,所以码元也是随机的,信号经过编码器后,因为要加入监督码,所以波形变得更加密集了。信号经过译码后,波形和编码器输入信号大致相同,说明循环码的检错和纠错能力可以。4实验程序1、循环码编码与解码MATLAB源程序(实验以(7,4)循环码进行分析)M3N2M1KNMMSGRANDINTK4,1,2SUBPLOT2,2,1STEMMSGTITLE 编码器输入信号 PCYCLPOLYN,KCODEENCODEMSG,N,K, CYCLIC ,PSUBPLOT2,2,2STEMCODERECODEDECODECODE,N,K, CYCLIC ,PSUBPLOT2,2,3STEMRECODETITLE 译码器输出信号 T10011XRECODENLENGTHXFXFFTXDF100/NN0N/2FNDFSUBPLOT2,2,4PLOTF,ABSFXN12/NGRIDTITLE 频谱图 5总结我们小组在分配到循环码这个专题报告后,我们在组长的组织下大家先是自己了解相关内容,然后再聚集在一起进行讨论和对专题进行分析,确定任务后根据大家的兴趣以及现所掌握的知识进行任务的分配,我所承担的任务就是弄清楚循环码的译码和编码原理及其相关方法,最后做好PPT发给组长进行综合整理。刘老师这种独特的教学方式把被动的课堂浇灌知识改变为让我们主动的去搜索知识,这点很重要,可以很好地培养我们的自学能力,而且还可以培养我们的合作协调意识,在这次专题报告中,我也确实学习了很多,而且印象深刻,因为是自己主动学习的。开始并没有注意到运用循环码时可用简便的MATLAB功能函数,不知道怎么进行纠错编码及解码,然后查找资料,收集了与循环码相关的函数(部分如下)1)ENCODE函数功能编码函数说明用指定的方法完成纠错编码。其中MSG代表信息码元,是一个K列矩阵,N是编码后的码字长度;K是信息位的长度
转载地址:http://saowx.baihongyu.com/