【计算机网络复习 数据链路层】3.3.2 差错控制(纠错编码)

差错控制(纠错编码)

      • 一、海明码
        • 1.1 确定校验码位数r
        • 1.2 确定校验码和数据的位置
        • 1.3 求出校验码的值
        • 1.4 检错并纠错

一、海明码

**海明码:**发现双比特错,纠正单比特错。

1.1 确定校验码位数r

海明不等式:
在这里插入图片描述

r 为冗余信息位,k为信息位

例:要发送的数据:D =101101

数据的位数 k = 6,满足不等式的最小r为4,

也就是D=101101的海明码应该有6+4=10位,其中原数据6位,校验码4位。

1.2 确定校验码和数据的位置

在这里插入图片描述

1.3 求出校验码的值

在这里插入图片描述

令所有要校验的位异或=0

P1⊕D1⊕D2⊕D4⊕D5 = 0 => P1 =0

P2⊕D1⊕D3⊕D4⊕D6 = 0 => P2 = 0

P3⊕D2⊕D3⊕D4 = 0 => P3 = 0

P4⊕D5⊕D6 = 0 => P4 = 1

故101101的海明码位0010011101。

1.4 检错并纠错

在这里插入图片描述

假设第五位出错,因此接收到的数据位0010111101。

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

P1⊕D1⊕D2⊕D4⊕D5 = 1

P2⊕D1⊕D3⊕D4⊕D6 = 0

P3⊕D2⊕D3⊕D4 = 1

P4⊕D5⊕D6 = 0

从P4往P1写:0101 =》 5 ,

二进制序列位0101,恰好对应十进制5,这样就找到了出错的位置,即出错位是第5位。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/483521.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Nature封面重磅!剑桥大学团队揭开老年痴呆背后的罪魁祸首

来源:naturetau蛋白异常是老年痴呆症的重要病因。英国剑桥大学Sjors H. W. Scheres、Michel Goedert等研究人员在Nature上发文,基于不同的蛋白折叠结构对「tau蛋白病」进行分类,荣登Nature封面。听说过阿尔茨海默病吗?没有。老年痴…

linux基础知识——IPC之管道

1.IPC \qquadlinux环境下,进程的地址空间相互独立,每个进程都有各自不同的用户地址空间。任何一个进程的全局变量在另外一个进程中都看不到,所以进程之间不能直接互相访问,进程间要想交换数据只能通过内核,在内核中开辟…

速度比晶体管快1000倍,新型单光子开关登上Nature

来源:机器之心作者:CHARLES Q. CHOI一种新型光学开关每秒钟的运行次数达到 1 万亿次,要比现在商用的顶级硅芯片快100到1000倍,这项研究未来或许可以催生出基于光而不是电的新一代计算机。在如今人们应用最为广泛的计算机架构中&am…

【计算机网络复习 数据链路层】3.4.1 流量控制与可靠传输机制

流量控制与可靠传输机制一、数据链路层的流量控制二、流量控制的方法三、可靠传输、滑动窗口、流量控制一、数据链路层的流量控制 较高的发送速度和较低的接收能力不匹配,会造成传输出错,因此流量控制也是数据链路层的一项重要工作。 数据链路层的流量…

linux的驱动开发——简单驱动程序编写

1.字符设备驱动介绍 \qquad字符设备驱动是linux驱动中,最基本的一类设备驱动,字符设备就是按照一个字节一个字节的方式进行读写操作的设备。读写数据分先后顺序,我们常见的单片机外设,比如led灯、按键、I2C、SPI、LCD等等都属于字…

【计算机网络复习 数据链路层】3.4.2 停止-等待协议

停止-等待协议一、停等协议1.1 无差错情况1.2 有差错控制1.4 停等协议性能分析一、停等协议 1、为什么要有停止-等待协议? 除了比特出差错,底层信道还会出现丢包问题。 丢包: 物理线路故障、设备故障、病毒攻击、路由信息错误等原因&#…

6G目前进展与未来展望

来源:6G俱乐部摘要:随着5G的大规模商用,6G研究也成为了移动通信行业新的研究热点。全球通信发达的国家和地区纷纷出台6G研发规划。面向2030年,如何定义6G,如何支撑6G突破现有技术的束缚,构建全新的能力体系…

一起玩儿物联网人工智能小车(ESP32)——14. 用ESP32的GPIO控制智能小车运动起来(二)

摘要:本文主要讲解如何使用Mixly实现对单一车轮的运动控制。 下面就该用程序控制我们的小车轮子转起来了。打开Mixly软件,然后单击顶部“文件”菜单中的“新建”功能,我们来开启一个新程序的开发工作。 我们的工作同样是先从最简单的开始&am…

linux系统常用命令详解

Linux命令格式:命令选项参数 (大部分命令是这个格式) 注意: 1.命令区分大小写 2.短选项可以合并 长选项不能合并 如 : 短选项 -l -h 可以合并为 -lh 长选项 不能合并 1. ls :列出文件信息,默认为当前目录下…

linux的驱动开发——内核模块的编译

1.编译内核模块的编译器 \qquad编译器:gcc 交叉编译器 2.编写编译内核模块的Makefile \qquad内部编译:内核模块的源文件放在内核源码中进行编译,需要修改内核中的kconfig,Makefile,make menuconfig \qquad静态编译&am…

【计算机网络复习 数据链路层】3.4.3 后退N帧协议(GBN)

后退N帧协议(GBN)一、后退N帧协议中的滑动窗口二、GBN发送方必须响应的三件事三、GBN接收方要做的事四、滑动窗口长度一、后退N帧协议中的滑动窗口 发送窗口:发送方维持一组连续的允许发送的帧的序号。 接收窗口:接收方维持一组连…

AI+Science 是人类两大科研范式的结合,工程化正当时

来源:ScienceAI编辑:ScienceAI近年来,人工智能(AI)快速发展,与此同时,越来越多的自然科学研究开始利用 AI 解决领域问题,比如助力药物研发、癌症疗法、材料发现,以及科研…

Docker 是一个开源的应用容器引擎

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。 Docker中包括三个基本概念…

linux的驱动开发——内核模块如何使用?

1.内核模块的使用 \qquad查看内核模块的信息的命令: modinfo xxx.ko\qquad查看当前内核中已经插入的内核模块 lsmod\qquad将内核模块加载到内核中,和内核形成一个整体,运行 sudo insmod xxx.ko //加载函数会被调用\qquad查看内核日志信…

【计算机网络复习 数据链路层】3.4.4 选择重传协议(SR)

选择重传协议(SR)一、选择重传协议中的滑动窗口二、SR发送方必须响应的三件事三、SR接收方要做的事四、滑动窗口长度五、总结一、选择重传协议中的滑动窗口 二、SR发送方必须响应的三件事 1、上层的调用 从上层收到数据后,SR发送方检查下一…

FZU - 2103 Bin Jing in wonderland

FZU - 2103 Bin & Jing in wonderland 题目大意:有n个礼物,每次得到第i个礼物的概率是p[i],一个人一共得到了k个礼物,然后按编号排序后挑选出r个编号最大的礼物。现在给出r个礼物的编号,问能得到这r个礼物的概率。…

登上Science子刊,神经科学再次启发DNN设计!中科院揭秘介观自组织反向传播机制...

来源:AI科技评论作者:张铁林,徐波论文标题:A Mesoscale Plasticity for Efficient AI Learning在人工智能领域,目前人工神经网络中被广泛使用的反向传播算法(Backpropagation,BP)采用…

【计算机网络复习 数据链路层】3.5.1 信道划分介质访问控制

信道划分介质访问控制一、传输数据使用的两种链路二、介质访问控制2.1 频分多路复用 FDM2.2 时分多路复用 TDM2.3 统计时分复用 STDM2.4 波分多路复用 WDM2.5 码分多路复用 CDM一、传输数据使用的两种链路 点对点链路:两个相邻节点通过一个链路相连,没有…

linux的驱动开发——字符设备驱动

1.字符设备驱动 \qquad字符设备驱动是最基本,最常用的设备。它将千差万别的硬件设备采用统一的接口封装起来,屏蔽了硬件的差异,简化了应用层的操作。 2.描述所有字符设备的结构体 \qquad描述所有字符设备的结构体在linux内核目录下的\includ…

Nature:初步探索限制饮食如何影响肿瘤生长

来源:生物通近年来,有一些证据表明,饮食干预有助于减缓肿瘤的生长。麻省理工学院的一项新研究分析了小鼠的两种不同饮食,揭示了这些饮食是如何影响癌细胞的,并为为什么限制卡路里可以减缓肿瘤生长提供了解释。该研究检…