<<计算机网络>>差错控制---奇偶效验码/循环冗余码ORC/海明码

简介: <<计算机网络>>差错控制---奇偶效验码/循环冗余码ORC/海明码

检错编码

1.奇偶效验码


2eaf5413460e4e859d0e3cc7425997f2.jpg

从图我们可以看出


1.奇偶效验码由两部分组成 分别是一位校验元(也就是一个校验码)和n-1个信息原


2.奇偶效验码分为奇效验码和偶效验码,使用那种要根据最前面加上校验元1后一共有几个1


               奇效验码有奇数个1 偶校验码有偶数个1  


数据经过转换发送过去的就是在前面加入了一个1的数据,如果采用的是奇效验码的方式,则接收方会判断1的个数是否为奇数;偶数一样!!


因此----当数据中改变了两个数字,奇效验码原本是001101传送过去变成了110010,接收方并不会检测出错误,因为1的个数还是奇数!!!so  检测的成功率只有50%!!一个拉跨的效验码!!


2.循环冗余码CRC

书上概念很乱,但它却很简单,你只需要知道怎么求码,接收方怎么检验是否有问题就可以!!


首先先要知道:循环冗余码需要一个生成多项式(这个不用管是什么,题中会给)


做题步骤: 1. 加0 ------ 需要发送的数据有n位则在数据的最后加上n-1个0


2. 将已经加0的数据 除以 生成多项式


3. 得到除后的余数 将第一步加上的0,改成这个余数即可,就是我们真正需要发送的数据


例题:假设发送的数据是1101   0110  11 ,采用ORC校验,生成多项式为1001  1  ,则最终发送的数据是?计算机怎么检验的?


解答:


1. 加0    数据变成1101  0110  1100  00


2.除以多项式,1101  0110  1100  00 / 1001  1   ,计算得到余数是1110


3.替换    所以发送到数据是1101  0110  1111 10


计算机检验:将数据除以 生成多项式,如果没有余数,则数据正确,如果有余数,则错误


检测并纠错编码

3. 海明码


海明码是比较难的一种,不仅可以检错还能纠错!


首先你要知道:海明码发现双比特错,纠正单比特错


                         工作原理:动一下则牵扯全身!!


一个数据变成经过海明码变成最终发送的数据一共需要三部


假设要发送的数据为  101101


第一步:确定校验码位数


一个公式解决:2^r >= k + r + 1  ( r 就是校验码位数; k 是发送数据的个数)


带入 k = 6  ,求出 r = 4


第二步:确定校验码和数据的位置


校验码的位置都在2的n次方位,转化成二进制也就是只有一个1的地方


数据则在其他的位置, 我们看图


3e4f339bdefd4309929e54078e7c789b.png


第三步:求出校验码的值


方法:看对应位的效验码的1  数据位的这个地方是否有1,与其数据为按位与运算结果为0


P1 ^ D1 ^ D2 ^ D4 ^ D5 == 0   ➡  P1 = 0


P2 ^ D1 ^ D3 ^ D4 ^ D5 == 0   ➡  P2 = 0


P3 ^ D2 ^D3 ^D4 == 0             ➡  P3 = 0


P4 ^D5 ^D6 == 0                     ➡   P4 =1


将这些值填入表中的对应位置,因此得到的  发送过去的码就是0010 0111 01


检验???方法一样


将校验码与对应的位进行按位与,如果结果都为0 则正确,如果都为1 则错误!!但是海明码还可以纠错!比如第五位除错,接收端收到的是0010 1111 01


令所有要校验的位异或运算:


P1 ^ D1 ^ D2 ^ D4 ^ D5 == 0   ➡  P1 = 1


P2 ^ D1 ^ D3 ^ D4 ^ D5 == 0   ➡  P2 = 0


P3 ^ D2 ^D3 ^D4 == 0             ➡  P3 = 1


P4 ^D5 ^D6 == 0                     ➡   P4 =0


1010==5,所以就得到了第五位错了  !!是不是很神奇??  


相关文章
|
8月前
|
机器学习/深度学习 存储 自然语言处理
深度学习入门:循环神经网络------RNN概述,词嵌入层,循环网络层及案例实践!(万字详解!)
深度学习入门:循环神经网络------RNN概述,词嵌入层,循环网络层及案例实践!(万字详解!)
|
网络协议 C语言 网络架构
计算机网络——数据链路层-点对点协议(组成部分、PPP帧格式、透明传输、差错检测、工作状态)
计算机网络——数据链路层-点对点协议(组成部分、PPP帧格式、透明传输、差错检测、工作状态)
560 7
|
缓存
计算机网络——数据链路层-可靠传输的实现机制:回退N帧协议GBN(无差错情况、累积确认、有差错情况、发送窗口尺寸)
计算机网络——数据链路层-可靠传输的实现机制:回退N帧协议GBN(无差错情况、累积确认、有差错情况、发送窗口尺寸)
410 0
计算机网络——数据链路层-可靠传输的实现机制:回退N帧协议GBN(无差错情况、累积确认、有差错情况、发送窗口尺寸)
|
机器学习/深度学习 算法
m基于GA-GRU遗传优化门控循环单元网络的电力负荷数据预测算法matlab仿真
在MATLAB 2022a中,一个基于遗传算法优化的GRU网络展示显著优化效果。优化前后的电力负荷预测图表显示了改进的预测准确性和效率。GRU,作为RNN的一种形式,解决了长期依赖问题,而遗传算法用于优化其超参数,如学习率和隐藏层单元数。核心MATLAB程序执行超过30分钟,通过迭代和适应度评估寻找最佳超参数,最终构建优化的GRU模型进行负荷预测,结果显示预测误差和模型性能的提升。
353 4
|
机器学习/深度学习 算法
m基于PSO-GRU粒子群优化长门控循环单元网络的电力负荷数据预测算法matlab仿真
摘要: 在MATLAB 2022a中,对比了电力负荷预测算法优化前后的效果。优化前为"Ttttttt111222",优化后为"Tttttttt333444",明显改进体现为"Tttttttttt5555"。该算法结合了粒子群优化(PSO)和长门控循环单元(GRU)网络,利用PSO优化GRU的超参数,提升预测准确性和稳定性。PSO模仿鸟群行为寻找最优解,而GRU通过更新门和重置门处理长期依赖问题。核心MATLAB程序展示了训练和预测过程,包括使用'adam'优化器和超参数调整,最终评估并保存预测结果。
166 0
|
机器学习/深度学习 PyTorch 算法框架/工具
【从零开始学习深度学习】35. 门控循环神经网络之门控循环单元(gated recurrent unit,GRU)介绍、Pytorch实现GRU并进行训练预测
【从零开始学习深度学习】35. 门控循环神经网络之门控循环单元(gated recurrent unit,GRU)介绍、Pytorch实现GRU并进行训练预测
|
算法
计算机网络——数据链路层-差错检测(奇偶校验、循环冗余校验CRC)
计算机网络——数据链路层-差错检测(奇偶校验、循环冗余校验CRC)
916 0
|
7月前
|
安全 搜索推荐 网络安全
HTTPS协议是**一种通过计算机网络进行安全通信的传输协议
HTTPS协议是**一种通过计算机网络进行安全通信的传输协议
167 11
|
7月前
|
存储 缓存 网络协议
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点,GET、POST的区别,Cookie与Session
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点、状态码、报文格式,GET、POST的区别,DNS的解析过程、数字证书、Cookie与Session,对称加密和非对称加密
|
7月前
|
网络协议 算法 网络性能优化
计算机网络常见面试题(一):TCP/IP五层模型、TCP三次握手、四次挥手,TCP传输可靠性保障、ARQ协议
计算机网络常见面试题(一):TCP/IP五层模型、应用层常见的协议、TCP与UDP的区别,TCP三次握手、四次挥手,TCP传输可靠性保障、ARQ协议、ARP协议

热门文章

最新文章