(7,3)循环码编译码软件设计_第1页
(7,3)循环码编译码软件设计_第2页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要循环码的编码和译码都要用到由一个多项式去除另一个多项式。对于接收端译码的要求通常有两个:检错与纠错。本次课程设计运用C语言设计的软件系统能够实现(7,3)循环码的编码与在无差错和部分差错情况下的译码。关键字:循环码编码译码目录TOC\o"1-5"\h\z\o"CurrentDocument"一、目的及意义1二、设计结果2\o"CurrentDocument"循环码的介绍2循环码的定义22.1.2循环码的特点22.1.3循环码的多项式表示32.1.4(n,k)循环码的生成多项式3\o"CurrentDocument"循环码编码原理6\o"CurrentDocument"循环码译码原理8\o"CurrentDocument"三、设计结果及分析93.1无差错编码仿真结果9初始界面9正确编码界面9无差错编码仿真结果104.部分差错编码图115.离开界面12\o"CurrentDocument"3.2运行结果理论分析13\o"CurrentDocument"软件可行性分析13四、总结14\o"CurrentDocument"参考文献15\o"CurrentDocument"附录16生成矩阵G后,可以通过线型变化,使之成为典型矩阵,这时就可以采用类似监督矩阵H。由于(n,k)是xn+1的因式,因此可令:h(x)=—H。由于(n,k)是xn+1的因式,因此可令:h(x)=—()=xk+hxk-i+•…+hx+1gG丿k-1115)这里h(x)称为监督多项式。监督矩阵为:H(x)=Xn-k-1h*(x)]Xn-k-2h*(x)x-h*(x)

h*(x)h*(x)为h()的逆多项式。二xk+hxk-1+hxk-2hfh12k-1则对于(7,3)循环码,若g(x)=x4+x3+x2+1,贝U:16)h(x)=x7f1=x3+x2+1nh*(x)=x3fxf1(x)=x6+x4+x3「1011000「x5+x3+x2nH=0101100x4+x2+x0010110x3+x+10001011循环码编码原理2.2.1多项式除法电路从前面的分析我们可以看出,循环码的编码和译码都要用到由一个多项式去除另一个多(x)项式,也主要利用电路来实现这种除法运算下面先用一个具体的例子来说明多项式除法电路的工作原理和运算过程。设多项式为g(x)=x4+x3+x2+1,另一多项式m(x)=x6+x(x)x6fx4xf1=x2+x+1+—x4fx3fx2f1x4fx3fx2f1

其中,m(x)为被除式,gO为除式。商式q(x)q(x)=x2+x+1而余式r(x)为r(x)=x+118)19)输出m(x18)19)输出m(x)D一D01DD23图2.g(x)=x4+x3+x2+1的除法电路图中,符号D表示单级移位寄存器,一般可用D触发器组成;㊉——表示模2图中,符号D器,完成模2加法运算。从图中可以看出由四级(等于多项式g(x)的次数)移位寄存器D0,DJD2,D3和三级模2加法器就组成g(x)=x4+x3+x2+1的除法电路。它实际上是一个具有反馈的线性移位寄存器。运算过程如表2所示,从表中可以看出,只有等到第五次移位时才得到上式的首次系数,七位移位后除法运算完毕,这时在DDDD中的存数即为余式01230-X3+0-x2+x+1的系数0011.表2.g(x)=x4+x3+x2+1除法电路运算过程移位脉冲输入m(x)移位后存数输出移位后反馈0000000000011000000002°C)01000000031(X4)1010000004°C)0101000005°C)10011(2)101160(1)11111(x1)101170。)1100余式13商式1011由图3运算过程可以看出,在第一至第四次的移位中,除法电路只是接受输入多项式m(x)中x6,x5,x4,x3的系数,只有在第5个移位脉冲到来以后,才正式开始运算。循环码译码原理对于接收端译码的要求通常有两个:检错与纠错。达到检错目的的译码十分简单,通过判断接收到的码组多项式是否能被生成多项式g(x)整除作为依据。如果除尽,则说明正确传输;如果未除尽,则在寄存器中的内容就是错误图样,根据错误图样可以确定一种逻辑,来确定差错的位置,从而达到纠错的目的。纠错码的译码是该编码能否得到实际应用的关键所在。译码器往往比编码较难实现,对于纠错能力强的纠错码更复杂。而用于检错目的循环码,一般使用ARQ通信方式。检测过程也是将接受到的码组进行除法运算,如果除尽,则说明传输无误;如果未除尽,则表明传输出现差错,要求发送端重发用于这种目的的循环码经常被成为循环冗余校验码,即CRC校验码。CRC校验码由于编码电路、检错电路简单且易于实现,因此得到广泛的应用。在通过MODEM传输文件的协议如ZMODEM、XMODEM协议中均用到了CRC校验技术。在磁盘、光盘介质存储技术中也使用该方法。当码字c通过噪声信道传送时,会受到干扰而产生错误。如果信道产生的错误图样是e,译码器收到的n重接受矢量是y则」表示为:TOC\o"1-5"\h\zy=c+e(20)上式也可以写成多项式形式:y(x)=c(x)+e(x)(21)译码器的任务就是从y(x)中得到e(x),然后求的估值码字d)=y(x)+eO(22)并从中得到信息组m(x)。循环码译码可按以下三个步骤进行:由接收到的y(x),计算伴随式s(x);根据sO伴随式找出对应的估值错误图样e(x);计算c(x)=y(x)+e(x),得到估计码字c(x)。若c(x)=c(x),则译码正确,否则,若c(xLc(x),则译码错误。由于g(x)的次数为n-k次,g(x)除E(x)后得余式(即伴随式)的最高次数为n-k-1次,故s(x)共有2n-k个可能的表达式,每一个表达式对应一个错误格式。可以知道(7,3)循环码的sG)共有23=8个可能的表达式,可以根据错误图样表来纠正(7,3)循环码中意味的错误。

三.设计结果及分析3.1程序运行结果1.初始界面图3.初始化界面程序编译无错误后运行,出现界面如上图所示。2.正确编码界面图4.正确编码界面在C环境下,输入“C”,再输入3位信息位,软件执行后输出7位循环编码。例如输入的是110,系统输出的是1101000.

图5.正确编码界面为检验程序的正确性,再输入一组3位信息位111,系统输出7位循环码为1110010.3.无差错编码仿真结果图6.无差错编码仿真结果图输入“e”,系统将进行译码操作,当输入的译码信息和编码结果一样时,系统就会把正确将信息位从该码组译出来。输入7位为1101000,与编码输入的3个信息位的结果相同,检验无错误。

图7.无差错编码结果图输入7位1110010,输出与译码结果输入111图7.无差错编码结果图4.部分差错编码图图8.—位差错编码图当输入的译码信息与编码的结果错一位码时,系统就会检测出该错误并将其纠正过来,从而译出真确的信息位。输入7位1101010,译码结果为110,译码信息与编码结果出现1位错误,系统自动将错误改正,输出为1101000。

图9.一位差错编码结果图同上图,输入的7位为1110000,译码信息与编码结果出现1位错误,系统自动改正输出7位信息1110010。5.离开界面图10.离开界面软件检验结束,输入“e”,退出运行系统。

3.2运行结果理论分析由循环码性质可知,(7,3)循环码的最小码距d=4,可以检测出小于等于3位错误,纠正1位错误,编码效率为42.8%。设传输正确概率为p,据此设定信道模型存在如下关系:传输正确概率为6-p丄,信息传输错误概率为p二1-6-),每帧仅发生1位错误的概e率为:(P}IP率为:(P}IPE2丿X100%二X100%23)表3.模拟结果PPEPE1PE210-10.5217030.37200971.3010-20.06793470.065903697.0110-30.006979030.006958199.7010-40.000699790.0006995899.9710-50.0000699790.0006995899.97综合上表的模拟结果和理论结果可以看出,通信系统的帧传输具有以下性质:(1)在n—定的情况下,信息帧错误传输概率随着比特误码率的增加而增加,最坏情况下帧错误概率几乎为100%,此时系统失去通信能力。(2)在典型的通信环境下,当比特误码率足够小时,绝大多数信息帧错误时每帧1位错误,因此纠正每帧错误有实用价值。3.3软件可行性分析由上述结果可知,该软件的操作方法为程序通过编译运行后,在C环境下,当输入c后按回车键,然后就会提示输入信息,当输入3位的信息位再按回车键,系统就会输出7位的循环编码。当输入d后按回车键,系统会进行译码的操作,当输入的译码信息和编码结果一样时,系统就会正确将信息位从该码组译出来。当输入的译码信息与编码的结果错一位码时,系统就会检测出该错误并将其纠正过来,从而译出真确的信息位。当输入e后按回车,就会退出系统。由此可知,该系统能够实现(7,3)循环码的编码与在无差错和部分差错情况下的译码,因此该软件具有可行性。四.总结通过本次课设,我对循环码的编码和译码的基本原理有了较深的理解,学到了很多的知识。循环码是线性分组码的一个重要子集,是目前研究得最成熟的一类码。它有许多特殊的代数性质,这些性质有助于按所要求的纠错能力系统地构造这类码,且易于实现;同时循环码的性能也较好,具有较强的检错和纠错能力。我的题目是循环码编译码的软件设计,在这两周中遇到了好多问题,由于以前学习C语言没有用心,编程的过程中出现了很多问题。例如,由于输入法的问题导致程序出现了错误后来,通过同学的帮助,发现并改正了这个错误。最终实现了循环码编译码的软件设计。这次课设让我受益匪浅,让我理解了纠错码的原理和循环冗余码CRC的原理。真正地做到了输入任意的数字信息序列,得出编码结果。还学会了在无差错和部分差错的情况下进行译码。这次设计不仅仅加深了对课程理论知识的了解,并更加熟悉了计算机语言,软件的应用。并让我了解,学习知识不仅仅只在课本上,还有更多更广的渠道获得更宽广的知识。最后感谢老师对我们的精心指导和帮助,感谢同学们对我的帮助。参考文献樊昌信著.通信原理[M].国防工业出版社,1999,10.宋祖顺著.现代通信原理[M].电子工业出版社,2001,2⑶黄亚新,米央著.信息编码技术及其应用大全[M].电子工业出版社,1994.8[4]孙丽华著.信息论与纠错编码[M].电子工业出版社,2005,3⑸Proakis著,张力军译.数字通信(第四版)[M].电子工业出版社,2004,7⑹潘新民著.计算机通信技术[M].电子工业出版社,2003,7[7]贾世楼著.信息论理论基础(第二版).哈尔滨工业大学出版社附录附录循环码编码译码软件设计程序/*(7,3)循环码的编译及纠检错*/#include<stdio.h>#include<math.h>#include<stdlib.h>/*函数声明*/voidBegin();voidCode();voidDecoding();/*主函数*/voidmain(){printf("\nThissoftwaremainfunctioniscarriesonthecodeandthedecodingto(7,3)cycliccode.\n");Begin();}/*进行编码*/voidCode()intinput[3];intoutput[7];intreg[3]={0,0,0};inttemp,i,j,t;printf("Pleaseinputtheinformationcode:");for(i=0;i<3;i++)scanf("%d",&input[i]);for(i=0;i<3;i++){temp=reg[2]+input[i];if(temp==2)temp=0;reg[2]=reg[1]+temp;/*输入3位信息码*//*进行除法操作*//*生成多项式为g(x)=xA4+xA3+xA2+1*/if(reg[2]==2)reg[2]=0;reg[1]=reg[0];reg[0]=temp;}for(i=0;iv3;i++)output[i]=input[i];/*进行编码操作*/for(i=3;i<7;i++){temp=reg[2];for(j=2;j>0;j--)reg[j]=reg[j-1];reg[0]=0;output[i]=temp;}printf("");printf("\n");printf("Theinformationcodeoutputis:\n");for(i=0;i<7;i++)printf("%d",output[i]);/*输出编码结果*/printf("\n");printf("");printf("\n");Begin();}/*译码并进行纠检错*/voidDecoding(){intinput[7],output[7];intreg[4]={0,0,0,0};inttemp,i,d,x,p;printf("\nintputtheinformationcodeofbit7:");for(i=0;i<7;i++)scanf("%d",&input[i]);/*输入接收码组*/for(i=0;i<7;i++)/*进入除法电路*/{temp=reg[2];reg[2]=reg[1]+temp;if(reg[2]==2)reg[2]=0;reg[1]=reg[0];reg[0]=temp+input[i];if(reg[0]==2)reg[0]=0;}p=reg[2]+2*reg[1]+3*reg[0];if(p!=1&&p!=2&&p!=3&&p!=7&&p!=8&&p!=13&&p!=14&&p!=0){/*输入错误位数大于2位*/printf("\"Theerror>=2\"\n");getchar();exit(0);}printf("\n");printf("s(x)=");for(i=3;i>=0;i--)printf("%d",reg[i]);printf("\n");for(i=0;i<7;i++)/*纠正一位错误*/{d=reg[2]*reg[1]*(!reg[0]);output[i]=d+input[i];if(output[i]==2)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论