好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

金雨鑫实验1(按照模版修改版)(共11页).doc

11页
  • 卖家[上传人]:文库****9
  • 文档编号:211761713
  • 上传时间:2021-11-17
  • 文档格式:DOC
  • 文档大小:146.50KB
  • / 11 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 精选优质文档-----倾情为你奉上杭 州 电 子 科 技 大 学实 验 报 告学生姓名:金雨鑫 学 号: 指导教师:吴端坡实验地点:第1教研楼108 实验时间:第10~12节一、实验室名称: 计算机通信与网络实验室二、实验项目名称:Coding on error dectecting algorithms(C++)三、实验学时:3学时四、实验原理:1. CRC即(CyclicRedundancyCheck[1]):是数据通信领域中最常用的一种差错校验码,其特征是信息字段和校验字段的长度可以任意选定循环冗余检查(CRC)是一种数据传输检错功能,对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似的算法,以保证数据传输的正确性和完整性2. 循环冗余校验码(CRC)的基本原理是:在K位信息码后再拼接R位的校验码,整个编码长度为N位,因此,这种编码也叫(N,K)码对于一个给定的(N,K)码,可以证明存在一个为N-K=R的多项式G(x)根据G(x)可以生成K位信息的校验码,而G(x)叫做这个CRC码的生成多项式 校验码的具体生成过程为:假设要发送的信息用多项式C(X)表示,将C(x)左移R位(可表示成C(x)*xR),这样C(x)的右边就会空出R位,这就是校验码的位置。

      用 C(x)*xR除以生成多项式G(x)得到的余数就是校验码3. 任意一个由二进制位串组成的代码都可以和一个系数仅为‘0’和‘1’取值的多项式一一对应例如:代码对应的为x6+x4+x2+x+1,而多项式为x5+x3+x2+x+1对应的代码4. 奇(ParityCheck)是一种校验代码传输正确性的方法根据被传输的一组的数位中“1”的个数是奇数或偶数来进行校验采用奇数的称为,反之,称为采用何种校验是事先规定好的通常专门设置一个,用它使这组代码中“1”的个数为奇数或偶数若用,则当接收端收到这组代码时,校验“1”的个数是否为奇数,从而确定传输代码的正确性五、实验目的:1.认识学习CRC原理,并掌握CRC16-IBM的编写方法2.学习奇偶校验的原理,并会用C代码编写六、实验内容:1. Cyclic redundancy checkUsing the polynomials below to encode random generated data stream (40-100bits). Show the FEC, and encoded data frame.CRC-4x4+x+1ITU G.704CRC-16x16+x15+x2+1IBM SDLCCRC-32x32+x26+x23+...+x2+x+1ZIP, RAR, IEEE 802 LAN/FDDI, IEEE 1394, PPP-FCSFor the error patter listed below, what the conclusion does the receiver get? Can the receiver find the errors?CaseError patternNo error0000……0000One error1000…..000Two errors100….001Random errorsRandom error pattern2. Parity check Using even or odd parity check on random generated data stream (8-20bits).Show encoded data frame.For the error patter listed below, what the conclusion does the receiver get? Can the receiver find the errors?CaseError patternNo error0000……0000One error1000…..000Two errors100….001七、实验器材(设备、元器件): 笔记本1台, 八、实验步骤:#include #include using namespace std;#define POLY 0xA001 //8005的二进制倒过来写就是A001 不同的计算机存储数据的时候可能会不一样 类似于大端和小端 typedef unsigned char uint8_t;typedef unsigned short uint16_t;typedef unsigned int uint32_t;uint16_t gen_crc16 (uint8_t const * buffer, uint16_t len){ uint16_t i, j; uint8_t data; uint16_t crc=0; for (j = 0; j> 1) ^ POLY): (crc >> 1); data >>= 1; } } return crc;}char* hex_byte(unsigned char c){ static unsigned char buf[9]={0}; char i; for(i=0;i<8;i++) { buf[i]=((c>>(7-i))&1)+0; } return (char*)buf;}void hex_print(unsigned char* c,int len){ int i; for(i=0;i>8; printf("%s ",hex_byte(c)); c=dat&0xff; printf("%s ",hex_byte(c));}unsigned char data[512]={a,b,c,d};unsigned char ALL_ZERO[512]={0};#define DATA_LEN 4#define DATA_TST dataint main(){ uint16_t crc16; printf("原始数据:\t"); hex_print(DATA_TST,DATA_LEN); printf("CRC-16: \t"); crc16=gen_crc16(DATA_TST,DATA_LEN); hex_print_ushort(crc16); printf("(0x%x)\n",crc16); DATA_TST[DATA_LEN+1]=crc16>>8; DATA_TST[DATA_LEN]=crc16&0xff; printf("\n要发送的数据:\t"); hex_print(DATA_TST,DATA_LEN+2); printf("\n如果没有错误:\n"); printf("核对结果: \t"); crc16=gen_crc16(DATA_TST,DATA_LEN+2); hex_print_ushort(crc16); printf("\n\n如果第一位数据反转了 \n"); DATA_TST[0]=DATA_TST[0]^0x80; printf("错误数据: \t"); hex_print(DATA_TST,DATA_LEN+2); printf("校验后 \t"); crc16=gen_crc16(DATA_TST,DATA_LEN+2); hex_print_ushort(crc16); return 0;}奇偶校验:#include#include#include#include#include #include #define NO_ERROR 1#define ONE_ERROR 2#define TWO_ERROR 3#define Parity 0#define check 1int flag_parity;//判断奇偶校验void ByteToBit(char* out,const char* in,int bits);char Parity_check(char *message_output,int length,int mode);int main(){ int channel_way =0; int len_d=5,k,f,message_number;//被除数长度设置 int length; //messages length char message_input[1000]=""; char message[8]={NULL};// data that produced by chance char message_output[1000] = {NULL}; fflush(stdin); //任意输入数据 printf("please input the message!\n"); gets(message); printf("A need to send this message:%s\n",message); length = strlen(message); ByteToBit(message_output,message,length*8); for(k = 0;k

      点击阅读更多内容
      相关文档
      高等学校学生手册.doc 2025年区教育系统招聘编外教师储备人才事业单位考试押题.docx 2025年秋季青岛版三年级数学上册认识轴对称现象教学课件.pptx 2025年秋季青岛版三年级数学上册用乘法估算解决问题教学课件.pptx 2025年秋季青岛版三年级数学上册两、三位数乘一位数的笔算(不进位)教学课件.pptx 2025年秋季青岛版三年级数学上册1200张纸有多厚教学设计范文.docx 2025年秋季青岛版三年级数学上册多位数除以一位数教学课件.pptx 2025年秋季青岛版三年级数学上册认识平移、旋转现象教学课件.pptx 2025年秋季青岛版三年级数学上册多位数乘一位数教学设计范本.docx 2025年秋季青岛版三年级数学上册认识平移与旋转教学设计范文.docx 2025年秋季青岛版三年级数学上册乘数中间有0或末尾有0的乘法教学课件.pptx 2025年秋季青岛版三年级数学上册两位数乘一位数的笔算(进位)教学课件.pptx 2025年秋季青岛版三年级数学上册《两、三位数乘一位数的笔算(不进位)》教学设计与意图.docx 2025年秋季青岛版三年级数学上册我学会了吗教学课件.pptx 2025年连云港市妇幼保健院招聘专业技术人员考试笔试试题.docx 2025年深圳市大鹏新区发展和财政局招聘考试笔试试卷.docx 2025年绵阳市梓潼县财政投资评审中心招聘考试试题.docx 2025年来宾市妇幼保健院招聘考试笔试试题.docx 2025年无极县教育系统招聘教师考试笔试试卷.docx 2025年灵山县第三中学调配教师考试笔试试题.docx
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.