计算机网络——物理层-编码与调制(数字基带信号、模拟基带信号、码元、常用编码、基本调制方法、混合调制)

news2024/10/6 20:30:26

目录

编码与调制

数字基带信号

模拟基带信号

码元

常用编码

不归零编码

归零编码 

曼彻斯特编码

差分曼彻斯特编码

编码习题

基本调制方法

调幅

调频

调相

混合调制

QAM-16


编码与调制

在计算机网络中,计算机需要处理和传输用户的文字、图片、音频和视频,他们可以统称为消息。

数据是运送消息的实体,我们人类比较熟悉的是十进制数据,而计算机只能处理二进制数据,也就是比特0和比特1。

计算机中的网卡,将比特0和比特1,变换成相应的电信号发送到网线。也就是说,信号是数据的电磁表现。

由信源发出的原始电信号,称为基带信号 。

基带信号又可分为两类:

  • 一类是数字基带信号,例如计算机内部CPU与内存之间传输的信号。
  • 另一类是模拟基带信号,例如麦克风收到声音后产生的音频信号。

数字基带信号

信号需要在信道中进行传输,信道可分为数字信道和模拟信道两种。

在不改变信号性质的前提下,仅对数字基带信号的波形进行变换,称为编码。

编码后产生的信号仍为数字信号,可以在数字信道中传输,例如以太网使用曼彻斯特编码,4B/5B,8B/10B等。

编码把数字基带信号的频率范围搬移到较高的频段,并转换为模拟信号,称为调制。

调制后产生的信号是模拟信号,可以在模拟信号中传输,例如Wifi使用补码键控,直接序列扩频,正交频分复用等调制方法。

模拟基带信号

对于模拟基带信号的处理,也有编码和调制两种方法。

对模拟基带信号进行编码的典型应用,是对音频信号进行编码的脉码调制PCM,也就是将模拟音频信号通过采样、量化、编码这三个步骤进行数字化。

对模拟信号进行调制的典型应用,是将语音数据加载到模拟的载波信号中传输。例如传统的电话。

另一个是频分复用FDM技术,可以充分利用带宽资源。

码元

接下来我们介绍码元的概念:

在使用时间域的波形表示数字信号时,代表不同离散数值的基本波形,称为码元。

简单来说,码元就是构成信号的一段波形。
例如这是一个调频信号:

图示这两段波形,是构成该信号的基本波形,我们可称其为码元。它们可以表示比特0,也可以表示比特1。

可见该信号由两种码元构成 。

注意传输媒体与信道的关系,

严格来说,传输媒体和信道不能直接划等号。

对于单工传输,传输媒体中只包含一个信道,要么是发送信道,要么是接收信道。

而对于半双工和全双工传输,传输媒体中要包含两个信道,一个是发送信道,另一个是接收信道。

如果使用信道复用技术,一条传输媒体还可以包含多个信道。 

在计算机网络中,常见的是将数字基带信号,通过编码或调制的方法在相应信道进行传输。

常用编码

下面介绍几种常用编码,这是待传输的比特流:

不归零编码

这是采用不归零编码产生的该比特流的相应信号,正电平表示比特1,负电平表示比特0。

这是零电平:

所谓不归零,就是指在整个码元时间内电平不会出现零电平。

例如该码元在其时间内全部是正电平

而该码元在其时间内全部是负电平

那么就有一个问题了:接收端如何判断出是两个码元还是三个码元。

这需要发送方的发送与接收方的接收做到严格的同步,需要额外一根传输线来传输时钟信号,接收方按时钟信号的节拍来逐个接收码元。

然而对于计算机网络,宁愿利用这根传输线来传输数据信号,而不是要传输时钟信号。

因此由于不归零编码存在同步问题,计算机网络中的数据传输不采用这类编码。

归零编码 

这是归零编码,分别有正电平、零电平、负电平:

很明显每个码元传输结束后,信号都要“归零”,所以接收方只要在信号归零后,进行采样即可,不需要单独的时钟信号。

实际上归零编码相当于把时钟信号用归零方式编码在了数据之内,这称为“自同步”信号。

但是归零编码中,大部分的数据带宽都用来传输归零而浪费掉了。

也就是说,归零编码的优点是自同步,但缺点是编码效率低。

曼彻斯特编码

这是曼彻斯特编码,如图所示

在每个码元时间的中间时刻,信号都会发生跳变;例如负跳变表示比特1,正跳变表示比特0。

码元中间时刻的跳变既表示时钟,又表示数据。

传统以太网使用的就是曼彻斯特编码。

差分曼彻斯特编码

这是差分曼彻斯特编码,如图所示

在每个码元时间的中间时刻,信号都会发生跳变。

与曼彻斯的编码不同,跳变仅表示时钟。

而用码元开始处电平是否发生变化,来表示数据,如图所示:

依据码元开始处电平是否发生变化,来表示比特0或比特1。

接下来我们做一个有关编码的练习题

编码习题

若下图为10BaseT网卡接收到的信号波形,则该网卡收到的比特串是:

A.0011 0110        B.1010 1101        C.0101 0010        D.1100 0101

10BaseT中的10表示带宽为10Mb/s,Base表示基带传输,T表示双绞线。

10BaseT这种以太网使用曼彻斯特编码。

根据曼彻斯特编码的特点,也就是每个码元在其中间时刻发生跳变,可以划分出所给信号中的各码元,至于正跳变表示1还是0,负跳变表示0还是1,没有具体规定,可以自行假设。

我们假设正跳变表示1,负跳变表示0,最终会发现没有一个答案是符合的,那说明我们的假设有错误。

那么应该是正跳变表示0,负跳变表示1,写出个码元所表示的比特,就很容易可以看出正确答案应为A。

下面介绍基本调制方法

基本调制方法

这是待传输的数字基带信号:

也就是来自信源的原始数字信号,我们要使用模拟信道来传输。

因此,需要将数字基带信号通过调制方法,调制成可以在模拟信道中传输的模拟信号。

调幅

这是调幅(AM)所产生的模拟信号:

无载波输出,表示比特0;有载波输出,表示比特一 

调频

这是调频(FM)所产生的模拟信号:

频率f1的波形表示比特0,频率f2的波形表示比特1

调相

这是调向(PM)所产生的模拟信号:

 初相位为0度的波形表示比特0;初相位为180度的波形表示比特1

很明显,使用基本调制方法,一个码元只能表示,或者说包含一个比特信息。
那么,如何能使一个码元包含更多的比特呢 ?

混合调制

可以采用混合调制的方法。

因为频率和相位是相关的,也就是说频率是相位随时间的变化率,所以一次只能调制频率和相位两个中的一个

通常情况下,相位和振幅可以结合起来一起调制,称为正交振幅调制QAM

QAM-16

我们来看属于正交振幅调制的QAM-16。

这种调制方法所调制出的波形,可以有12种相位,每种相位有一或两种振幅可选。
我们可在星座图中,画出该调制方法所产生的码元,该点就表示其中的一个码元:

它与圆心连线的距离可看作是振幅,连线与横坐标的夹角可看作是相位

这是QAM-16可调制出的16种码元:

思考两个问题:

  •  每个码元可以包含几个比特
  • 每个码元与4个比特的对应关系能否随便定义

如图所示,这是我们随便定义的每个码元所对应的4个比特:

假设A B C D E是接收端接收到的5个码元,这5个码元原本都是表示4个比特0的:

由于传输过程中产生失真,导致他们在星座图中并未落在理想的位置。

接收端可能会将码元A B C解调为0000,这是正确的;

也可能将码元D解调为0001,有一个错位;

也可能将码元E解调为1111,四位全错。

这就说明,每个码元与四个比特的对应关系,不能随便定义。

每个码元与4个比特的对应关系,应该采用格雷码,也就是任意两个相邻码元只有一个比特不同。

如图所示:


END 


学习自:湖科大——计算机网络微课堂

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

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

相关文章

JavaScript学习_01——JavaScript简介

JavaScript简介 JavaScript介绍 JavaScript是一种轻量级的脚本语言。所谓“脚本语言”,指的是它不具备开发操作系统的能力,而是只用来编写控制其他大型应用程序的“脚本”。 JavaScript 是一种嵌入式(embedded)语言。它本身提供…

ubuntu中cuda12.1配置(之前存在11.1版本的cuda)(同时配置两个版本)

ubuntu中cuda12.1配置 由于YOLOv8项目中Pytorch版本需要cuda12.1版本 在官网下载12.1版本的deb包 官网地址 sudo dpkg -i cuda-keyring_1.0-1_all.deb sudo apt-get update sudo apt-get -y install cuda然后需要修改bashrc文件(隐藏文件) 添加 exp…

C#,数值计算——插值和外推,BaryRat_interp的计算方法与源程序

1 文本格式 using System; namespace Legalsoft.Truffer { /// <summary> /// 重心有理插值对象 /// Barycentric rational interpolation object. /// After constructing the object, /// call interp for interpolated values. /// Note t…

供应商选择和评估:如何寻找合适的供应商并与其合作

如果供应商不能按时交货或产品质量低劣&#xff0c;制造商的生产计划就会延误&#xff1b;客户交货将被延迟&#xff0c;商品可能被退回&#xff0c;你的公司声誉也将受损。 要在当今竞争激烈的市场中取得成功&#xff0c;你需要一流的、价格合理且来源可靠的原材料和服务&…

Leetcode刷题详解——岛屿数量

1. 题目链接&#xff1a;200. 岛屿数量 2. 题目描述&#xff1a; 给你一个由 1&#xff08;陆地&#xff09;和 0&#xff08;水&#xff09;组成的的二维网格&#xff0c;请你计算网格中岛屿的数量。 岛屿总是被水包围&#xff0c;并且每座岛屿只能由水平方向和/或竖直方向上…

php快速排序法

快速排序是一种常用的排序算法&#xff0c;也是最快的排序算法之一。其基本思想是通过一趟排序将待排序的数据分割成两部分&#xff0c;其中一部分的所有数据都比另一部分的所有数据小&#xff0c;然后再对这两部分分别进行快速排序&#xff0c;递归地重复这个过程&#xff0c;…

wpf devexpress post 更改数据库

这个教程示范如何使用GridControl编辑数据&#xff0c;和保存更改到数据库。这个教程基于前一个篇。 Items Source Wizard 当 CRUD (Create, Read, Update, Delete) 启动选项时添加Post data功能 Items Source Wizard 生成如下代码&#xff1a; 1、设置 TableView.ShowUpdat…

滚雪球学Java(09-1):Java中的算术运算符,你真的掌握了吗?

咦咦咦&#xff0c;各位小可爱&#xff0c;我是你们的好伙伴——bug菌&#xff0c;今天又来给大家普及Java SE相关知识点了&#xff0c;别躲起来啊&#xff0c;听我讲干货还不快点赞&#xff0c;赞多了我就有动力讲得更嗨啦&#xff01;所以呀&#xff0c;养成先点赞后阅读的好…

力扣第84 题柱状图中最大的矩形 C++ 单调栈 Java

题目 84. 柱状图中最大的矩形 困难 相关标签 栈 数组 单调栈 给定 n 个非负整数&#xff0c;用来表示柱状图中各个柱子的高度。每个柱子彼此相邻&#xff0c;且宽度为 1 。 求在该柱状图中&#xff0c;能够勾勒出来的矩形的最大面积。 示例 1: 输入&#xff1a;heigh…

人工智能基础_机器学习032_多项式回归升维_原理理解---人工智能工作笔记0072

现在开始我们来看多项式回归,首先理解多维 原来我们学习的使用线性回归,其实就是一条直线对吧,那个是一维的,我们之前学的全部都是一维的对吧,是一维的,然后是多远的,因为有多个x1,x2,x3,x4... 但是比如我们有一个数据集,是上面这种,的如果用一条直线很难拟合,那么 这个时候,…

贪吃蛇游戏和俄罗斯方块

一、创建新项目 创建一个新的项目&#xff0c;并命名。 创建一个名为images的文件夹用来存放游戏相关图片。 然后再在项目的src文件下创建一个com.xxx.view的包用来存放所有的图形界面类&#xff0c; 创建一个com.xxx.controller的包用来存放启动的入口类(控制类) package …

多svn仓库一键更新脚本分享

之前分享过多git仓库一键更新脚本&#xff0c;本期就分享下svn仓库的一键更新脚本 1、首先需要设置svn为可执行命令行 打开SVN安装程序&#xff0c;选择modify&#xff0c;然后点击 command client tools&#xff0c;安装命令行工具 2、update脚本 echo 开始更新SVN目录&…

Uniapp-小程序自定义导航栏

一、项目背景 制作小程序页面时候发现原生导航栏有一定的高度是没有背景渲染的会出现这种情况 但是我们需要的是 二、原因 小程序的原生导航栏存在。一般可以使用 纯色填充顶部栏 可以直接使用navigationBarBackgroundColor完成 在style中添加 "navigationBarBackgrou…

一文图解爬虫_姊妹篇(spider)

—引导语 爬虫&#xff0c;没有一个时代比当前更重视它。一个好的爬虫似乎可以洞穿整个互联网&#xff0c;“来装满自己的胃”。 接上一篇&#xff1a;一文图解爬虫&#xff08;spider&#xff09; 博主已初步对爬虫的“五脏六腑”进行了解剖。虽然俗称“爬虫”&#xff0c;但窃…

[C国演义] 第十九章

第十九章 回文子串最长回文子串 子串, 等价于 子数组, 都要求连续 回文子串 力扣链接 子串 ⇒ 状态表示 子串 ⇒ 状态转移方程 初始化 : 全都初始化为 false 遍历顺序 返回结果 : 此时的dp表中, 已经是每个区间能否是回文子串的结果了 ⇒ 我们要统计所有的回文子串的…

PDF文件标题修改方法

目录 一、PDF文件的标题和名称 二、标题修改方法 1.浏览器打开PDF Editor Free网站 2.点击Free Oline 3.选择第三个从本地上传PDF附件 4.将附件上传&#xff0c;两种方法都可以​编辑 5.等待加载&#xff0c;附件大的情况下会有些慢&#xff0c;耐心等待即可 6. 导入文…

PyG(torch_geometric)的MessagePassing详解

1. 提出MessagePassing的目的 MessagePassing是图神经网络&#xff08;Graph Neural Networks&#xff0c;GNNs&#xff09;的一个基础组件&#xff0c;它被设计用来处理图形数据的问题。在图形数据中&#xff0c;数据点&#xff08;节点&#xff09;之间的关系&#xff08;边…

openGauss学习笔记-123 openGauss 数据库管理-设置账本数据库-账本数据库概述

文章目录 openGauss学习笔记-123 openGauss 数据库管理-设置账本数据库-账本数据库概述123.1 背景信息123.2 操作步骤 openGauss学习笔记-123 openGauss 数据库管理-设置账本数据库-账本数据库概述 123.1 背景信息 账本数据库融合了区块链思想&#xff0c;将用户操作记录至两…

服务号转订阅号如何操作

服务号和订阅号有什么区别&#xff1f;服务号转为订阅号有哪些作用&#xff1f;一、文章推送的篇数不同服务号在文章的推送篇数上是有所限制的&#xff08;每月推4次&#xff09;订阅号则每天可推送一篇文章。二、定义不同服务号主要是为关注用户提供服务使用的&#xff1b;订阅…

【仿真动画】ABB IRB 8700 机器人搬运(ruckig在线轨迹生成)动画欣赏

场景 动画 一、IRB 8700简介 二、动画脚本重点分析 2.1 sim.moveToPose 通过在两个 poses 之间执行插值&#xff0c;使用 Ruckig 在线轨迹生成器生成对象运动数据。该函数可以通过处理 4 个运动变量&#xff08;x、y、z 和两个姿势之间的角度&#xff09;或单个运动变量&#…