计算机网络之曼彻斯特编码和差分曼彻斯特编码

2024-06-06 09:36

本文主要是介绍计算机网络之曼彻斯特编码和差分曼彻斯特编码,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

前言

曼彻斯特编码

定义

策略

思路

差分曼彻斯特编码

定义

策略

思路

结束语


前言

今天是坚持写博客的第十九天,很高兴自己又坚持了一天,今天想送给自己一句李白《行路难》当中的诗词,希望我自己和大家都可以铭记于心,相互勉励:行路难,行路难,多歧路,今安在?长风破浪会有时,直挂云帆济沧海。

我们今天来讲计算机网络当中的曼彻斯特编码和差分曼彻斯特编码。


曼彻斯特编码

定义

曼彻斯特编码是目前应用最为广泛的一种编码方式,用于在数据通信中同步信号和时钟信号,解决同步问题。主要特点是每比特的中间有一次电平跳转,两次电平跳转的间隔可以是T/2或T,利用电平跳转可产生首发双方的同步信号。但是缺点是效率低,占用带宽大。

其中比特“0”的编码是从高电平到低电平;比特“1”的编码是从低电平到高电平。

曼彻斯特编码的规则如下:

  1. 每比特的周期T分为前T/2和后T/2两部分。
  2. 前T/2传送该比特的反码,后T/2传送该比特的原码。

策略

假设我们现在有一段二进制编码0100110,我们要使用曼彻斯特编码的方式将其表示出来,我们可以遵循以下步骤:遇到“0”时从高处出发,遇到“1”时从低处出发。

因此我们可以很快得出解题思路与图解。

思路

解题思路如下(配合图解看可能理解起来会更加容易):

  1. 首先第一个是“0”,从高处(高电平)出发到低处(低电平)。
  2. 第二个是“1”,从低处(低电平)出发到高处(高电平)。
  3. 第三个是“0”,从高处(高电平)出发到低处(低电平)。
  4. 第四个是“0”,依旧是从高处(高电平)出发到低处(低电平)。
  5. 第五个是“1”,从低处(低电平)出发到高处(高电平)。
  6. 以此类推,我们可以得到如下的图解:

如果遇到连续两个编码或者多个编码相同,比如“00”,那么在第一个“0”到低处后,我们需要立即回到高处,进行对下一个“0”的编码,“11”也同理,第一个“1”到高处后需要立即到低处进行下一个编码。


差分曼彻斯特编码

定义

差分曼彻斯特编码与曼彻斯特编码类似,但它关注的是相邻比特之间的电平变化,而不是每个比特周期内的电平变化。规则如下:

  1. 没比特的中间跳变仅用于同步。
  2. 根据每比特的开始便捷是否跳转来决定该比特的值。
  3. 每比特的开始处如果发生电平跳变,这传输“0”,否则传输“1”。

策略

我们仍然使用编码0100110,我们要使用差分曼彻斯特编码的方式将其表示出来,我们可以遵循以下步骤:如果下一个是“1”那么交界处的“线段”不变,如果下一个是“0”吗,饿交界处的“线段”变化。

因此我们也可以快速得到如下思路和图解。

思路

解题思路如下(配合图解看可能理解起来会更加容易):

  1. 第一个是“0”,不受影响,先从高处(高电平)出发到低处(低电平)。
  2. 第二个是“1”,因为此时“即将”到来的是“1”,因此交界处的“线段”不变。
  3. 第三个是“0”,此时“即将”到来的是“0”,因此交界处的“线段”变。
  4. 第四个是“0”,此时“即将”到来的是“0”,因此交界处的“线段”变。
  5. 第五个是“1”,此时“即将”到来的是“1”,因此交界处的“线段”不变。
  6. 第六个是“1”,此时“即将”到来的是“1”,因此交界处的“线段”不变。
  7. 以此类推,我们可以得出如下图解:


简化下来记忆,其实可以遵循“遇到1延长,遇到0上升/下降”的口诀,这样可以方便记忆,而不至于走错路。


结束语

今天对曼彻斯特编码和差分曼彻斯特编码的讲解就到这里,希望对大家有所帮助,如果对您有帮助,希望您可以留下点赞、关注和收藏,这对我很重要,谢谢!

这篇关于计算机网络之曼彻斯特编码和差分曼彻斯特编码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1035740

相关文章

基于Go语言实现Base62编码的三种方式以及对比分析

《基于Go语言实现Base62编码的三种方式以及对比分析》Base62编码是一种在字符编码中使用62个字符的编码方式,在计算机科学中,,Go语言是一种静态类型、编译型语言,它由Google开发并开源,... 目录一、标准库现状与解决方案1. 标准库对比表2. 解决方案完整实现代码(含边界处理)二、关键实现细

解决IDEA报错:编码GBK的不可映射字符问题

《解决IDEA报错:编码GBK的不可映射字符问题》:本文主要介绍解决IDEA报错:编码GBK的不可映射字符问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录IDEA报错:编码GBK的不可映射字符终端软件问题描述原因分析解决方案方法1:将命令改为方法2:右下jav

Python使用自带的base64库进行base64编码和解码

《Python使用自带的base64库进行base64编码和解码》在Python中,处理数据的编码和解码是数据传输和存储中非常普遍的需求,其中,Base64是一种常用的编码方案,本文我将详细介绍如何使... 目录引言使用python的base64库进行编码和解码编码函数解码函数Base64编码的应用场景注意

VSCode中C/C++编码乱码问题的两种解决方法

《VSCode中C/C++编码乱码问题的两种解决方法》在中国地区,Windows系统中的cmd和PowerShell默认编码是GBK,但VSCode默认使用UTF-8编码,这种编码不一致会导致在VSC... 目录问题方法一:通过 Code Runner 插件调整编码配置步骤方法二:在 PowerShell

Python如何实现读取csv文件时忽略文件的编码格式

《Python如何实现读取csv文件时忽略文件的编码格式》我们再日常读取csv文件的时候经常会发现csv文件的格式有多种,所以这篇文章为大家介绍了Python如何实现读取csv文件时忽略文件的编码格式... 目录1、背景介绍2、库的安装3、核心代码4、完整代码1、背景介绍我们再日常读取csv文件的时候经常

poj 3159 (spfa差分约束最短路) poj 1201

poj 3159: 题意: 每次给出b比a多不多于c个糖果,求n最多比1多多少个糖果。 解析: 差分约束。 这个博客讲差分约束讲的比较好: http://www.cnblogs.com/void/archive/2011/08/26/2153928.html 套个spfa。 代码: #include <iostream>#include <cstdio>#i

poj 3169 spfa 差分约束

题意: 给n只牛,这些牛有些关系。 ml个关系:fr 与 to 牛间的距离要小于等于 cost。 md个关系:fr 与 to 牛间的距离要大于等于 cost。 隐含关系: d[ i ] <= d[ i + 1 ] 解析: 用以上关系建图,求1-n间最短路即可。 新学了一种建图的方法。。。。。。 代码: #include <iostream>#include

C++ | Leetcode C++题解之第393题UTF-8编码验证

题目: 题解: class Solution {public:static const int MASK1 = 1 << 7;static const int MASK2 = (1 << 7) + (1 << 6);bool isValid(int num) {return (num & MASK2) == MASK1;}int getBytes(int num) {if ((num &

POJ 1364差分约束

给出n个变量,m个约束公式 Sa + Sa+1 + .... + Sa+b < ki or > ki ,叫你判断是否存在着解满足这m组约束公式。 Sa + Sa+1   +   .+ Sa+b =  Sum[a+b] - Sum[a-1]  . 注意加入源点n+1 。 public class Main {public static void main(Strin

C语言 | Leetcode C语言题解之第393题UTF-8编码验证

题目: 题解: static const int MASK1 = 1 << 7;static const int MASK2 = (1 << 7) + (1 << 6);bool isValid(int num) {return (num & MASK2) == MASK1;}int getBytes(int num) {if ((num & MASK1) == 0) {return