计算机网络:物理层 - 编码与调制
计算机网络:物理层 - 编码与调制
- 基本概念
- 编码
- 不归零制编码
- 归零制编码
- 曼彻斯特编码
- 差分曼彻斯特编码
- 调制
- 调幅
- 调频
- 调相
- 混合调制
基本概念
在计算机网络中,计算机需要处理和传输用户的文字、图片、音频和视频,他们可以统称为消息数据,是运送消息的实体。我们人类比较熟悉的是十进制数据,而计算机只能处理二进制数据,也就是比特 0 和 1。
计算机中的网卡将 0 和 1 变换成相应的电信号发送到网线,也就是说信号是数据的电磁表现,由信源发出的原始电信号称为基带信号。
基带信号又可分为两类:
- 数字基带信号:例如计算机内部 CPU 与内存之间传输的信号
- 模拟基带信号:例如麦克风收到声音后产生的音频信号
信号需要在信道中进行传输。信道可分为数字信道和模拟信道两种,在不改变信号性质的前提下,仅对数字基带信号的波形进行变换,称为编码。编码后产生的信号仍为数字信号,可以在数字信道中传输。
把数字基带信号的频率范围搬移到较高的频段并转换为模拟信号,称为调制。调制后产生的信号是模拟信号可以在模拟信道中传输。
简单来说:
编码是将数字信号转换成另外一种数字信号,使其更适应信道的传输特性
调制是把数字信号转化为模拟信号,做频谱的搬移,增加信号抗干扰性
接下来我们介绍码元的概念:
在使用时间域的波形表示数字信号时,代表不同离散数值的基本波形,称为码元。简单来说,码元就是构成信号的一段波形。例如这是一个调频信号:

红色这一段波形是构成该信号的一个基本波形,我们可称其为码元,它表示比特0。蓝色这一段波形是构成该信号的另一个基本波形,也称为码元,它表示比特1。可见该信号由两种码元构成,该信号中的所有波形,都由这两种波形排列而成。
在计算机网络中常见的是将数字基带信号通过编码或调制的方法在相应信道进行传输。
编码
不归零制编码

这是采用不归零编码产生的该比特流的相应信号,正电平表示比特 1,负电平表示比特 0。
所谓不归零,就是指在整个码元时间内,电平不会出现零电平,例如表示比特 1 的码元在其时间内全部是正电平,而表示比特 1 的码元在其时间内全部是负电平。
请大家思考一下这个问题:

接收端如何判断出红色区域是两个码元,而橙色区域是三个码元?这需要发送方的发送与接收方的接收做到严格的同步。这就需要额外一根传输线来传输时钟信号,接收方按时钟信号的节拍来逐个接收码源。然而对于计算机网络,宁愿利用这个传输线来传输数据信号,而不是要传输时钟信号。因此,由于不归零编码存在同步问题,计算机网络中的数据传输不采用这类编码。
归零制编码

归零制编码,正电平表示比特 1,负电平表示比特 0。很明显,每个码元传输结束后,信号都要归零,所以接收方只要在信号归零后进行采样即可,不需要单独的时钟信号。
实际上,归零编码相当于把时钟信号编码在了数据之内,这称为自同步信号。但是归零编码中大部分的数据带宽都用来传输归零而浪费掉了。也就是说,归零编码的优点是自同步,但缺点是编码效率低。
曼彻斯特编码

这是曼彻斯特编码。如图所示,在每个码元时间的中间时刻,信号都会发生跳变。负跳变表示比特1,正跳变表示比特0。码元中间时刻的跳变既表示时钟,又表示数据。接收端根据每个码元中间都有跳变这一规则,来判断多长是一个码元。传统以太网使用的就是曼彻斯特编码。
差分曼彻斯特编码

这是差分曼彻斯特编码。如图所示,在每个码元时间的中间时刻,信号都会发生跳变,与曼彻斯的编码不同,跳变仅表示时钟,而用码元开始处电平是否发生变化来表示数据。如图所示,每个码元的开始处,如果发生了跳变就是比特0,没发生跳变就是比特1。
调制
下面我们介绍基本调制方法。

这是数字基带信号,也就是来自信源的原始数字信号。
我们要使用模拟信道来传输,因此需要将数字基带信号通过调制方法调制成可以在模拟信道中传输的模拟信号。
调幅

这是调幅所产生的模拟信号,无载波输出表示比特0,有载波输出表示比特 1。
调频

这是调频所产生的模拟信号,一种频率的波形表示比特0,另外一种频率的波形表示比特1。
调相

这是调相所产生的模拟信号,根据每个码元的初始相位不同,来区分比特0和比特1。
混合调制

很明显使用基本调制方法,一个码元只能表示一个比特信息,那么如何能使一个码元包含更多的比特呢?可以采用混合调制的方法。
因为频率和相位是相关的,也就是说频率是相位随时间的变化率,所以一次只能调至频率和相位两个中的一个。
通常情况下,相位和振幅可以结合起来一起调制,称为正交振幅调制QAM。我们来看属于正交振幅调制的 QIM16:

这种调制方法所调制出的波形可以有 12 种相位,每种相位有一或两种振幅可选。我们可坐标中画出该调制方法所产生的码元。一个点就表示其中的一个码元,它与圆心连线的距离可看作是振幅连线,与横坐标的夹角可看作是相位。
请大家思考一下,每个码元可以包含几个比特呢?由于 QM 16 可以调制出 16 种码元,也就是 16 种波形,则每种码元可以对应表示 4 个比特。
每个码元与四个比特的对应关系采用了格雷马:

格雷码中,任意两个坐标之间,只有一位比特不同,可以减小传输过程中导致的误差。最后接收方就可以根据波形的相位和振幅,来判断一个码元表示哪四个比特了。
相关文章:
计算机网络:物理层 - 编码与调制
计算机网络:物理层 - 编码与调制 基本概念编码不归零制编码归零制编码曼彻斯特编码差分曼彻斯特编码 调制调幅调频调相混合调制 基本概念 在计算机网络中,计算机需要处理和传输用户的文字、图片、音频和视频,他们可以统称为消息数据…...
《量子计算:揭开未来科技新篇章》
随着科技的不断发展,量子计算作为一项颠覆性的技术逐渐走进人们的视野,引发了广泛的关注和探讨。本文将围绕量子计算的技术进展、技术原理、行业应用案例、未来趋势预测以及学习路线等方向,深入探讨这一领域的前沿动态和未来发展趋势。 量子…...
机器人机械手加装SycoTec 4060 ER-S电主轴高精密铣削加工
随着科技的不断发展,机器人技术正逐渐渗透到各个领域,展现出前所未有的潜力和应用价值。作为机器人技术的核心组成部分之一,机器人机械手以其高精度、高效率和高稳定性的优势,在机械加工、装配、检测等领域中发挥着举足轻重的作用…...
docker 共享内存不足问题
在启动容器时增加共享内存大小: 您可以通过在docker run命令中添加--shm-size参数来指定更大的共享内存大小。例如,如果您需要32GB的共享内存,可以这样做: docker run --shm-size32g -it your-docker-image 这里的your-docker-im…...
英语口语 3.27
keep It straight :竖着放 turn it to the side:横过来放 i get my shit done:shit(everything)任何事情 我都会去做的 that‘s what’s up 可以的可以的 thats cool zodiac sign :生肖 座 i sense that :我感受到了 talent”艺人 influencer:有影响力的人 …...
pytest之统一接口请求封装
pytest之统一接口请求封装 pytest的requests_util.pyrequests_util.py 接口自动化测试框架的封装yaml文件如何实现接口关联封装yaml文件如何实现动态参数的处理yaml文件如何实现文件上传有参数化时候,怎么实现断言yaml的数据量大怎么处理接口自动化框架的扩展&#…...
使用npm仓库的优先级以及.npmrc配置文件的使用
使用npm仓库的优先级以及.npmrc配置文件的使用 概念如何设置 registry(包管理仓库)1. 设置项目配置文件2. 设置用户配置文件3. 设置全局配置文件4. .npmrc文件可以配置的常见选项 概念 npm(Node Package Manager)是一个Node.js的…...
Netty源码剖析——ChannelHandlerContext 篇(三十七)
ChannelHandlerContext 作用及设计 ChannelHandlerContext 继承了出站方法调用接口和入站方法调用接口 ChannelOutboundInvoker 和 ChannelInboundInvoker 部分源码 这两个invoker就是针对入站或出站方法来的,就是在入站或出站 handler 的外层再包装一层,…...
5.92 BCC工具之bitesize.py解读
一,工具简介 bitesize工具按进程名称显示请求块大小的I/O分布。 它通过监视磁盘上的读取和写入操作,记录每个操作的大小。再将跟踪到的 I/O 操作按照大小分组,通常是以 2 的幂次方(如 4K、8K、16K 等)进行划分,并统计每个大小范围内的 I/O 操作数量。 二,代码示例 #…...
jupyter notebook导出含中文的pdf(LaTex安装和Pandoc、MiKTex安装)
用jupyter notebook导出pdf时,因为报错信息,需要用到Tex nbconvert failed: xelatex not found on PATH, if you have not installed xelatex you may need to do so. Find further instructions at https://nbconvert.readthedocs.io/en/latest/install…...
压力测试(QPS)及测试工具Locust
压力测试: 通常指的是确定接口或服务能够处理的最大请求量(吞吐量)和并发用户数,同时保持合理的响应时间和稳定性。 性能目标 最大吞吐量:系统每秒可以处理的请求数。最大并发用户数:系统可以同时支持的…...
canal: 连接kafka (docker)
一、确保mysql binlog开启并使用ROW作为日志格式 docker 启动mysql 5.7配置文件 my.cnf [mysqld] log-binmysql-bin # 开启 binlog binlog-formatROW # 选择 ROW 模式 server-id1一定要确保上述两个值一个为ROW,一个为ON 二、下载canal的run.sh https://github.c…...
45 对接海康视频九宫格的实现
前言 这里主要是 来看一下 海康视频 的一个九宫格播放的需求 然后 在实际使用的过程中产生了一些问题, 比如 增加一个视频, 应该只增量请求这一个视频的服务, 而一些实现下是全量请求了 整个视频列表的服务 另外 就是全屏播放, 如果是 自己写样式来实现 全屏播放, 可能需要 …...
二-容量管理之容量水位
容量水位概念 容量水位(Capacity Level)是指一个系统或服务所使用资源的程度、范围和可承受能力,通常以百分比表示。在容量管理中,容量水位是非常重要的指标,用于衡量系统或服务的健康状况、资源利用率以及未来容量需求。 容量水位通常是根据一些关键指标进行计算,例如…...
计算机网络——数据链路层(差错控制)
计算机网络——数据链路层(差错控制) 差错从何而来数据链路层的差错控制检错编码奇偶校验码循环冗余校验(CRC)FCS 纠错编码海明码海明距离纠错流程确定校验码的位数r确定校验码和数据位置 求出校验码的值检错并纠错 我们今年天来继…...
【搜索引擎1】Ubuntu通过deb方式安装ElasticSearch和Kibana、ik中文分词插件
1、官网下载文件 版本为官网最新版本,ElasticSearch与Kibana版本必须保持一致 ElasticSearch下载地址:Download Elasticsearch | Elastic Kibana下载地址:Past Releases of Elastic Stack Software | Elastic 下载选择DEB文件 ik插件下载…...
1.0 html(1)
html 一、基本介绍 1、定义:html是一种超文本标记语言,也是一种标识性语言(不是编程语言) 标记:记号(绰号) 超文本:就是页面内容可以包含图片、链接,音乐,…...
基于SpringBoot和Leaflet的行政区划地图掩膜效果实战
目录 前言 一、掩膜小知识 1、GIS掩膜的实现原理 2、图层掩膜流程 二、使用插件 1、leaflet-mask介绍 2、核心代码解释 三、完整实例实现 1、后台逻辑实现 2、省级行政区划查询实现 3、行政区划定位及掩膜实现 4、成果展示 总结 前言 在之前的博客提过按空间矢量…...
【机器学习之---数学】马尔科夫链
every blog every motto: You can do more than you think. https://blog.csdn.net/weixin_39190382?typeblog 0. 前言 马尔科夫 1. 概念 1.1 引言 马尔可夫链在许多领域都有应用,包括物理学、生物学、工程学、经济学和计算机科学等。在计算机科学中࿰…...
教程3_图像的轮廓
目录 目标 1. 特征矩 2、轮廓质心 3. 轮廓面积 4. 轮廓周长 5. 轮廓近似 6. 轮廓凸包 7. 边界矩形 7.1.直角矩形 7.2. 旋转矩形 8. 最小闭合圈 9. 拟合一个椭圆 10. 拟合直线 目标 在本文中,我们将学习 - 如何找到轮廓的不同特征,例如面积&…...
LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明
LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造,完美适配AGV和无人叉车。同时,集成以太网与语音合成技术,为各类高级系统(如MES、调度系统、库位管理、立库等)提供高效便捷的语音交互体验。 L…...
【Linux】shell脚本忽略错误继续执行
在 shell 脚本中,可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行,可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令,并忽略错误 rm somefile…...
基于FPGA的PID算法学习———实现PID比例控制算法
基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容:参考网站: PID算法控制 PID即:Proportional(比例)、Integral(积分&…...
转转集团旗下首家二手多品类循环仓店“超级转转”开业
6月9日,国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解,“超级…...
Matlab | matlab常用命令总结
常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...
浅谈不同二分算法的查找情况
二分算法原理比较简单,但是实际的算法模板却有很多,这一切都源于二分查找问题中的复杂情况和二分算法的边界处理,以下是博主对一些二分算法查找的情况分析。 需要说明的是,以下二分算法都是基于有序序列为升序有序的情况…...
在Ubuntu24上采用Wine打开SourceInsight
1. 安装wine sudo apt install wine 2. 安装32位库支持,SourceInsight是32位程序 sudo dpkg --add-architecture i386 sudo apt update sudo apt install wine32:i386 3. 验证安装 wine --version 4. 安装必要的字体和库(解决显示问题) sudo apt install fonts-wqy…...
动态 Web 开发技术入门篇
一、HTTP 协议核心 1.1 HTTP 基础 协议全称 :HyperText Transfer Protocol(超文本传输协议) 默认端口 :HTTP 使用 80 端口,HTTPS 使用 443 端口。 请求方法 : GET :用于获取资源,…...
Python Ovito统计金刚石结构数量
大家好,我是小马老师。 本文介绍python ovito方法统计金刚石结构的方法。 Ovito Identify diamond structure命令可以识别和统计金刚石结构,但是无法直接输出结构的变化情况。 本文使用python调用ovito包的方法,可以持续统计各步的金刚石结构,具体代码如下: from ovito…...
NPOI Excel用OLE对象的形式插入文件附件以及插入图片
static void Main(string[] args) {XlsWithObjData();Console.WriteLine("输出完成"); }static void XlsWithObjData() {// 创建工作簿和单元格,只有HSSFWorkbook,XSSFWorkbook不可以HSSFWorkbook workbook new HSSFWorkbook();HSSFSheet sheet (HSSFSheet)workboo…...
