计算机网络:物理层 - 编码与调制
计算机网络:物理层 - 编码与调制
- 基本概念
- 编码
- 不归零制编码
- 归零制编码
- 曼彻斯特编码
- 差分曼彻斯特编码
- 调制
- 调幅
- 调频
- 调相
- 混合调制
基本概念
在计算机网络中,计算机需要处理和传输用户的文字、图片、音频和视频,他们可以统称为消息数据,是运送消息的实体。我们人类比较熟悉的是十进制数据,而计算机只能处理二进制数据,也就是比特 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. 拟合直线 目标 在本文中,我们将学习 - 如何找到轮廓的不同特征,例如面积&…...
3.3.1_1 检错编码(奇偶校验码)
从这节课开始,我们会探讨数据链路层的差错控制功能,差错控制功能的主要目标是要发现并且解决一个帧内部的位错误,我们需要使用特殊的编码技术去发现帧内部的位错误,当我们发现位错误之后,通常来说有两种解决方案。第一…...
Linux简单的操作
ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...
Spring Boot面试题精选汇总
🤟致敬读者 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉 📘博主相关 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...
【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验
系列回顾: 在上一篇中,我们成功地为应用集成了数据库,并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了!但是,如果你仔细审视那些 API,会发现它们还很“粗糙”:有…...
大数据学习(132)-HIve数据分析
🍋🍋大数据学习🍋🍋 🔥系列专栏: 👑哲学语录: 用力所能及,改变世界。 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言Ǵ…...
LeetCode - 199. 二叉树的右视图
题目 199. 二叉树的右视图 - 力扣(LeetCode) 思路 右视图是指从树的右侧看,对于每一层,只能看到该层最右边的节点。实现思路是: 使用深度优先搜索(DFS)按照"根-右-左"的顺序遍历树记录每个节点的深度对于…...
Linux 内存管理实战精讲:核心原理与面试常考点全解析
Linux 内存管理实战精讲:核心原理与面试常考点全解析 Linux 内核内存管理是系统设计中最复杂但也最核心的模块之一。它不仅支撑着虚拟内存机制、物理内存分配、进程隔离与资源复用,还直接决定系统运行的性能与稳定性。无论你是嵌入式开发者、内核调试工…...
2025年渗透测试面试题总结-腾讯[实习]科恩实验室-安全工程师(题目+回答)
安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。 目录 腾讯[实习]科恩实验室-安全工程师 一、网络与协议 1. TCP三次握手 2. SYN扫描原理 3. HTTPS证书机制 二…...
安卓基础(Java 和 Gradle 版本)
1. 设置项目的 JDK 版本 方法1:通过 Project Structure File → Project Structure... (或按 CtrlAltShiftS) 左侧选择 SDK Location 在 Gradle Settings 部分,设置 Gradle JDK 方法2:通过 Settings File → Settings... (或 CtrlAltS)…...
【无标题】湖北理元理律师事务所:债务优化中的生活保障与法律平衡之道
文/法律实务观察组 在债务重组领域,专业机构的核心价值不仅在于减轻债务数字,更在于帮助债务人在履行义务的同时维持基本生活尊严。湖北理元理律师事务所的服务实践表明,合法债务优化需同步实现三重平衡: 法律刚性(债…...
