欢迎来到天天文库
浏览记录
ID:33882523
大小:226.77 KB
页数:11页
时间:2019-03-01
《12081220金雨鑫实验1(按照模版修改版)》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实电孑验科披丈学报告学生姓名:金雨鑫学号:12081220指导教师:吴端坡实验地点:第1教研楼108实验时间:第10~12节一.实验室名称:计算机通信与网络实验室二、实验项目名称:Codingonerrordectectingalgorithms(C++)三、实验学时:3学时四、实验原理:1.CRC即循坏冗余校验码(CyclicRedunckmcyCheck[l]):是数据通信领域中最常用的一种差错校骑码,其特征是信息字段和校验字段的长度可以任意选定。循环冗余检查(CRC)是一种数据传输检错功能,对数据进
2、行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似的算法,以保证数据传输的正确性和完整性。2.循环冗余校验码(CRC)的基本原理是:在K位信息码后再拼接R位的校验码,整个编码长度为N位,因此,这种编码也叫(N,K)码。对于一个给定的(N,K)码,可以证明存在一个最高次幕为N-K=R的多项式0x)o根据G(x)可以牛成K位信息的校验码,而G(x)叫做这个CRC码的生成多项式。校验码的具体生成过程为:假设要发送的信息用多项式C(X)表示,将C(x)左移R位(可表示成C(x)*xR),这样C(x)的右
3、边就会空岀R位,这就是校验码的位置。用C(x)恢R除以生成多项式G(x)得到的余数就是校验码。3.任意一个由二进制位串组成的代码都可以和一个系数仅为O和T取值的多项式——对应。例如:代码1010111对应的多项式为x6+x4+x2+x+l,而多项式为x5+x3+x2+x+l对应的代码lOllllo4.奇偶校验(ParityCheck)是一种校验代码传输正确性的方法。根据被传输的一组二进制代码的数位中的个数是奇数或偶数来进行校验。采用奇数的称为奇校验,反之,称为偶校验。采用何种校验是事先规定好的。通常专门设
4、置一个奇偶校验位,用它使这组代码中“1”的个数为奇数或偶数。若用奇校验,则当接收端收到这组代码时,校验“1”的个数是否为奇数,从而确定传输代码的正确性。五、实验目的:1.认识学习CRC原理,并掌握CRC16-IBM的编写方法。2•学习奇偶校验的原理,并会用C代码编写。六、实验内容:1.CyclicredundancycheckUsingthepolynomialsbelowtoencoderandomgenerateddatastream(40-100bits).ShowtheFEC,andencoded
5、dataframe.CRC-4x4+x+lITUG.704CRC-16xl6+xl5+x2+lIBMSDLCCRC-32x32+x26+x23+…+x2+ZI匕RAR,IEEE802LAN/FDDI,IEEEx+11394,PPP-FCSFortheerrorpatterlistedbelow,whattheconclusiondoesthereceiverget?Canthereceiverfindtheerrors?CaseNoerrorOneerrorTwoerrorsRandomerrorsErr
6、orpattern0000……00001000..…000100....001Randomerrorpattern2.ParitycheckUsingevenoroddparitycheckonrandomgenerateddatastream(8-20bits).Showencodeddataframe.Fortheerrorpatterlistedbelow,whattheconclusiondoesthereceiverget?Canthereceiverfindtheerrors?CaseNoer
7、rorOneerrorTwoerrorsErrorpattern000000001000.....000100•…001七、实验器材(设备、元器件):笔记本1台,八、实验步骤:#include#includeusingnamespacestd;#definePOLYOxAOOl//8005的二进制倒过来写就是A001不同的计算机存储数据的时候可能会不一样类似于大端和小端typedefunsignedcharuint8_t;typedefunsignedshortuin
8、tl6_t;typedefunsignedintuint32_t;uintl6_tgen_crc16(uint8_tconst*buffer,uintl6_tlen){uintl6_ti,j;uint8_tdata;uintl6_tcrc=0;for(j=0;jvlen;j++){data=buffer
9、jj;for(i=0;iv&i++){crc=((dataA(uint8_t)crc)&1)?((crc»1)APOLY):
此文档下载收益归作者所有