第一次作业——生成crc校验码

关于crc校验码的原理,就不详细的说了,感觉心里明白就可,比赛前再看看。
求法大概这样:(自我感觉写得十分清晰)
在这里插入图片描述
给定一个生成多项式g(x)=xn1+xn2+… …+1,这里最高幂次假设是m。
假设g(x) = x4 + x3 + 1,则对应代码为G = 11001,m = 4。

要发送的信息为A
假设A = 1011001,接着将A左移m位(即在A右侧添m个零)得到B 1011001 0000

然后用B模二除G,所得的余数就是校验字段crc校验码。

模2除法的原理

通过上面的计算过程可以看出,做模2除法,其实就是按位异或运算^,把握住这一点,再通过对B不断移位与G做异或,就可以得到最后的结果。

作业题目

在这里插入图片描述
做这个的过程十分之曲折,总而言之就是因为我是菜鸡。还啥也不会,就算看明白了原理,也还是对于算法无从下手。所以坦白说,第一次作业就是在下去网上找了一个down下来的,看的差不多之后稍加改动,老师讲完之后再想想自己

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: CRC校验是一种数据验证机制,用于检测在数据传输过程中是否发生了错误。MATLAB作为一种高级计算语言和数学工具箱,具有强大的数据处理和编程能力,可以用来生成CRC校验。 MATLAB中生成CRC校验可以通过crcgenerator对象实现。首先,需要定义一个生成CRC校验的多项式(通常是标准的Polynomial值,例如CRC-16、CRC-32等),并将其传递给crcgenerator对象。接下来,将待校验的数据传递给crcgenerator对象,对象将返回校验。下面是一个生成CRC校验的示例: %定义Polynomial值(以CRC-16为例) polynomial = [1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1]; %创建crcgenerator对象 gen = crcgenerator(polynomial); %待校验数据 data = [1 2 3 4 5 6]; %生成校验 crc = generate(gen, data); 上述示例中,首先定义了多项式的值,然后创建了一个名为gen的crcgenerator对象,并将多项式值传递给它。接下来,将待校验的数据传递给这个对象,用generate()函数生成校验crc。 在实际应用中,还需要将CRC校验添加到数据包末尾进行传输,接收方可以使用相同的多项式计算出校验,并根据计算出的校验和接收到的校验进行比较,从而判断数据在传输过程中是否发生了错误。 总之,MATLAB提供了一个方便而强大的方法用于生成CRC校验。在数据传输和信号处理等领域,CRC校验的应用非常广泛,掌握MATLAB生成CRC校验的技术,对工程师们具有重要意义。 ### 回答2: CRC校验是一种十分重要的校验方式,它能够检测网络数据传输过程中出现的误,尤其是在数据传输速度较快的情况下,其作用就更为明显。Matlab是一款十分强大的数据处理和计算工具,其内置CRC校验生成函数可以方便地进行CRC校验生成。 在Matlab中,使用crc.generator函数可以生成CRC校验。该函数的输入参数为生成的校验位数和多项式系数。例如: poly = [1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1]; % 多项式系数 gen_crc = crc.generator(poly, 16); % 生成一个16位的CRC校验生成器 data = [1 0 0 1 0 1 0 1 1 0 1 0 0 1]; % 待校验的数据 nbits = 16; % 校验位数 [txData, appData, crcRemainder] = gen_crc(data); % 使用生成器对数据进行校验 得到txData、appData和crcRemainder分别为对数据编后的结果、附加数据和校验余数。 总之,Matlab生成CRC校验的方式较为简单,只需调用crc.generator函数即可,同时需要确定的是校验位数和多项式系数等参数。生成器可用于对数据进行CRC校验生成和检查,让数据传输更为可靠和安全。 ### 回答3: MATLAB是一种强大的工具,可用于生成各种CRC校验。CRC(循环冗余校验)是一种用于检测和纠正数据传输错误的技术。该技术在实时数据传输应用中非常重要,例如在通信、网络和存储设备方面。 生成CRC校验的过程可以分为以下几个步骤: 1.确定CRC字宽度和生成多项式。在MATLAB中,可以使用函数crc.generator来确定字宽度和生成多项式,例如:gen = crc.generator('Polynomial', '0x1021', 'InitialValue', '0xFFFF'); 2.将数据转换为纯二进制格式。需要注意的是,在MATLAB中计算CRC校验时,数据源必须是二进制格式,因此需要将数据源转换为二进制表示,例如:data = [1 0 1 0 1 1 0 0 1 0 0 1]; 3.执行CRC计算。可以使用MATLAB中的函数crc.calculator来计算CRC校验,例如:code = crc.calculator(gen, data); 执行完上述步骤后,即可生成相应的CRC校验。 MATLAB还提供了其他有用的函数和工具,例如crc.detector和crc.generator,用于检测并纠正数据传输错误。此外,MATLAB还提供了丰富的文档和教学资源,以帮助用户了解CRC技术的基础知识和实现方法。 总之,MATLAB是一个非常强大的工具,可以用于生成各种实时数据传输应用中非常重要的CRC校验。它提供了丰富的函数和工具,以及文档和教学资源,可以帮助用户轻松地实现CRC技术的应用。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值