计算机网络:物理层 - 编码与调制
计算机网络:物理层 - 编码与调制
- 基本概念
- 编码
- 不归零制编码
- 归零制编码
- 曼彻斯特编码
- 差分曼彻斯特编码
- 调制
- 调幅
- 调频
- 调相
- 混合调制
基本概念
在计算机网络中,计算机需要处理和传输用户的文字、图片、音频和视频,他们可以统称为消息数据,是运送消息的实体。我们人类比较熟悉的是十进制数据,而计算机只能处理二进制数据,也就是比特 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. 拟合直线 目标 在本文中,我们将学习 - 如何找到轮廓的不同特征,例如面积&…...

【Linux】-Linux下的编辑器Vim的模式命令大全及其自主配置方法
目录 1.简单了解vim 2.vim的模式 2.1命令模式 2.2插入模式 2.3底行模式 3.vim各模式下的命令集 3.1正常(命令模式下) 3.1.1光标定位命令 3.1.2 复制粘贴 3.1.3 删除 3.1.4 撤销 3.1.5大小写转换 3.1.6替换 「R」:替换光标所到之处的字符&…...

基于SpringBoot和Vue的车辆管理系统的设计与实现
今天要和大家聊的是一款基于SpringBoot和Vue的车辆管理系统的设计与实现 !!! 有需要的小伙伴可以通过文章末尾名片咨询我哦!!! 💕💕作者:李同学 💕…...

R折线图(自备)
目录 折线图基础 创建散点和折线图 复杂折现加图例 折线图柱状图 数据处理 进行差异检验 基础绘图折线 基础绘图箱线 进行合并 双轴柱状与折线图 数据 折线图基础 创建散点和折线图 rm(list ls()) opar <-par(no.readonlyTRUE)##自带orange数据集 par(mfrowc…...

web学习笔记(四十五)Node.js
目录 1. Node.js 1.1 什么是Node.js 1.2 为什么要学node.js 1.3 node.js的使用场景 1.4 Node.js 环境的安装 1.5 如何查看自己安装的node.js的版本 1.6 常用终端命令 2. fs 文件系统模块 2.1引入fs核心模块 2.2 读取指定文件的内容 2.3 向文件写入指定内容 2.4 创…...

基于Gabor滤波器的指纹图像识别,Matlab实现
博主简介: 专注、专一于Matlab图像处理学习、交流,matlab图像代码代做/项目合作可以联系(QQ:3249726188) 个人主页:Matlab_ImagePro-CSDN博客 原则:代码均由本人编写完成,非中介,提供…...

55、Qt/事件机制相关学习20240326
一、代码实现设置闹钟,到时间后语音提醒用户。示意图如下: 代码: #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget), speecher(new QTextToSpeech(t…...

Clip Converter - 视频在线下载方法
Clip Converter - 视频在线下载方法 1. Video URL to Download2. Continue3. StartReferences YT to MP4 & MP3 Converter! https://www.clipconverter.cc/ Clip Converter is a free online media conversion application, which allows you to reocord, convert and do…...

【No.19】蓝桥杯简单数论上|模运算|快速幂|GCD|LCM|刷题统计|RSA解密|核桃的数量(C++)
简单数论 模运算 定义:模运算为 a 除以 m 的余数,记为 a mod m,有 a mod m a % m模运算是大数运算中的常用操作。如果一个数太大,无法直接输出,或者不需要直接输出,可以把它取模后,缩小数值再…...

区块链安全之DDoS防护的重要性及其实施策略
随着区块链技术的不断发展和广泛应用,其安全问题也日益凸显。其中,分布式拒绝服务(DDoS)攻击是对区块链网络稳定性和效率构成潜在威胁的重要因素之一。本文旨在深入探讨区块链为何需要采取DDoS高防措施,并提出相应的防护策略。 一、区块链面…...

使用Spark单机版环境
在Spark单机版环境中,可通过多种方式进行实战操作。首先,可使用特定算法或数学软件计算圆周率π,并通过SparkPi工具验证结果。其次,在交互式Scala版或Python版Spark Shell中,可以进行简单的计算、打印九九表等操作&…...