(考研湖科大教书匠计算机网络)第二章物理层-第三、四节:传输方式和编码与调制

news2024/11/13 9:32:29

文章目录

  • 一:传输方式
    • (1)串行传输和并行传输
    • (2)同步传输和异步传输
    • (3)单工、半双工和全双工
  • 二:编码与调制
    • (1)通信相关基础知识
      • ①:消息、数据、信号和信道
      • ②:编码和调制
      • ③:码元
      • ④:传输媒体和信道的关系
    • (2)编码方法
      • ①:非归零编码
      • ②:归零编码
      • ③:曼彻斯特编码
      • ④:差分曼彻斯特编码
    • (3)调制方法
      • ①:基本调制方法
      • ②:正交振幅调制QAM

本节对应视频

  • 【计算机网络微课堂(有字幕无背景音乐版)】:2.3 传输方式:对应“一:传输方式”
    【计算机网络微课堂(有字幕无背景音乐版)】:2.4 编码与调制:对应“二:编码与调制”

一:传输方式

(1)串行传输和并行传输

串行传输:数据是按照1个比特接着1个比特依次发送的,因此发送端和接收端之间只需要一条数据传输线路即可

  • 特点:速度慢、费用低、适合远距离传输。例如计算机网络传输数据时采用串行传输的方式

并行传输:一次发送 n n n个比特而不是1个比特,因此发送端和接收端之间需要 n n n条传输线路

  • 特点:速度快、费用高、适合近距离传输。例如CPU与内存之间传输数据时采用并行传输的方式

在这里插入图片描述

(2)同步传输和异步传输

同步传输:数据块以稳定的比特流传输,字节之间没有间隔

在这里插入图片描述

接收端在每个比特信号的中间时刻进行检测,以判别接收到的是比特0还是1

在这里插入图片描述

由于不同设备的时钟频率存在一定差异,所以不可能做到完全同步。在传输大量数据时,所产生的判别误差经过累积会导致接收端对比特信号的判别错位
在这里插入图片描述

因此,需要采取一定方法使收发双方的时钟保持同步。实现方法主要有如下两种

  • 外同步:在收发双方之间添加一条单独的时钟信号线,发送端在发送数据时,另外再发送一路时钟同步信号,接收端则按时钟同步信号的节奏来接收数据
  • 内同步:发送端将时钟同步信号编码到发送数据中一并传输,例如下面会说到的曼彻斯特编码

异步传输:以字节为独立传输单位,字节之间的时间间隔不是固定的,接收端仅在每个字节的起始处对字节内的比特实现同步。因此,通常要在每个字节的前后分别加上起始位和结束位

在这里插入图片描述

注意是字节之间异步但字节中的每个比特仍要同步

(3)单工、半双工和全双工

单工通信:又称之为单向通信,通信双方仅有一个数据传输方向,需要一条信道。例如无线广播

半双工通信:又称之为双向交替通信,通信双方可以相互传输数据,但不能同时进行,需要两条信道。例如对讲机

全双工通信:又称之为双向同时通信,通信双方可以同时发送和接收信息,需要两条信道(每个方向各一条)。例如电话

在这里插入图片描述

二:编码与调制

(1)通信相关基础知识

①:消息、数据、信号和信道

消息、数据和信号:在计算机中,用户接触到的文字、图片、音频、视频等统称为消息(message),而发送这些消息的实体称之为数据(data)。人类比较熟悉十进制数据,但计算机只能处理二进制数据,也即比特0和1,所以网卡会把比特0和1变换成相应的电信号(signal)发送到网线,因此信号是数据的电磁表现形式

在这里插入图片描述

信号可以分为数字信号模拟信号两种形式

  • 数字信号:幅度的取值是离散的,幅值表示被限制在有限个数值之内
  • 模型信号:在时域上数学形式为连续函数的信号

在这里插入图片描述

由信源发出的原始信号称之为基带信号

在这里插入图片描述

基带信号又分为数字基带信号(例如CPU和内存之间传输的信号)和模拟基带信号(例如麦克风收到声音后产生的音频信号)两种

在这里插入图片描述

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

在这里插入图片描述

②:编码和调制

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

  • 编码:是指在不改变信号性质的前提下仅对数字基带信号的波形进行变化,编码后产生的信号仍然为数字信号,可以在数字信道中传输。例如曼彻斯特编码

  • 调制:是指把数字基带信号的频率范围搬移到较高频段并转化为模拟信号,调制后产生的信号为模拟信号,可以在模拟信道中传输。例如WiFi使用补码键控,直接序列扩频、正交频分复用等调制方法

模拟基带信号的编码和调制

  • 编码:典型应用是对音频信号进行编码的脉码调制PCM,也即将模拟信号通过采样、量化和编码三个步骤进行数字化
  • 调制:典型应用是将语音数据加载到模拟的载波信号中传输,例如传统电话;另一个是频分复用FDM技术,可以充分利用带宽资源

在这里插入图片描述

③:码元

码元:在使用时间域的波形表示数字信号时,代表不同离散数值的基本波形称之为码元,码元是构成该信号的一段波形

例如下图是一段调频信号,绿色背景和蓝色背景分别是构成该信号的一个基本波形,我们称其为码元,它们分别可以表示比特0或1

在这里插入图片描述

④:传输媒体和信道的关系

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

  • 对于单工传输:传输媒体中只包含一个信道,要么是发送信道要么是接收信道
    在这里插入图片描述

  • 对于半双工或全双工传输:传输媒体中要包含两个信道,一个是发送信道另外一个是接收信道
    在这里插入图片描述

(2)编码方法

①:非归零编码

非归零编码:用正电平表示1、负电平表示0,非归零编码在其整个码元时间内,不会出现零电平

在这里插入图片描述

非归零编码存在很大缺陷,如下图,接收端无法判断一个码元的开始和结束。所以双方需要额外一个传输线来传输同步信号,但是在计算机网络中,宁愿用额外的传输线来传输数据信号,也不愿意传输同步信号

在这里插入图片描述

②:归零编码

归零编码:用正电平表示1、负电平表示0,每个码元在传输结束之后信号必须归零,所以接收方只需要在信号归零后进行采样即可,不需要单独的时钟信号

在这里插入图片描述

实际上,归零编码相当于把时钟信号用归零的方式编码在了数据之内,降这种信号称之为自同步信号。虽然不需要额外的传输线来传输同步信号,但归零编码中大部分的数据带宽都用来传输归零了,所以有些浪费

③:曼彻斯特编码

曼彻斯特编码:在每个码元的中间时刻信号都会发生跳变,每个跳变前高后低表示比特1(负跳变)、前低后高(正跳变)表示比特0,当然也可以采用与之相反的规定

在这里插入图片描述

可以看到,码元跳变的中间时刻即表示数据又表示时钟信号

④:差分曼彻斯特编码

差分曼彻斯特编码:与曼彻斯特编码不同的是,差分曼彻斯特编码跳变仅表示时钟信号,通过码元开始处电平是否发生变化来表示数据。例如可以规定,如果一个码元前半部分和上一个码元后半部分相同(未发生跳变)则表示比特1,反之(发生跳变)则表示比特0

在这里插入图片描述

(3)调制方法

①:基本调制方法

基本调制方法:使用基本调制方法,1个码元只能包含1个比特信息

  • 调幅(AM):无载波输出表示比特0;有载波输出表示比特1
  • 调频(FM):频率f1表示比特0;频率f2表示比特1
  • 调相(PM):初始相位0度表示比特0;初始相位180度表示比特1

在这里插入图片描述

②:正交振幅调制QAM

  • 由于频率是相位随时间的变化率,也即频率和相位相关,因此只能调制频率和相位两个中的一个

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

以QAM16为例进行说明:此种方法调制出的波形可以有12种相位,每种相位有1或2种振幅可选择。如下,在星座图中画出该调制方法所产生的码元

  • 振幅 r r r:码元与圆心之间的连线距离
  • 相位 ϕ \phi ϕ:连线与横轴之间的夹角

在这里插入图片描述

下图是QAM16可调制出的16种码元,每个码元可以对应4个比特,对应关系需要采用格雷码,即任意两个相邻码元只有1个比特不同

在这里插入图片描述

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

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

相关文章

linux实战笔记整理(1.24)

后台挂起程序: 如果报错:nohup: ignoring input and appending output to nohup.out,则在指令最后加一个&让程序自己运行:nohup command增加rm 提醒:(重要的命令问三遍): 操作: …

为tableview添加带控件的单元格如复选框checkbox与combbox单元格

我们常常会有这样的需求,为QTableView增加复选框checkbox和选择下拉框combbox,毕竟依靠键盘输入不是很好约束其规范性。下面我们逐个来介绍。完成之后的效果如下: 一、准备TableView 1、数据准备 数据大家可以随意准备,有的话…

[C语言]柔性数组

目录 1.柔性数组 2.柔性数组的特点 3.柔性数组的使用 1.柔性数组 柔性数组存在于结构体中,当结构体最后一个成员元素为一个未知大小的数组,则称其为柔性数组。 struct s {int a;char arr[];//柔性数组 }; 2.柔性数组的特点 1. 结构中的柔性数…

八、python-高级语法篇(黑马程序猿-python学习记录)

黑马程序猿的python学习视频:https://www.bilibili.com/video/BV1qW4y1a7fU/ 目录 1. 什么是闭包 2. 闭包的优缺点 3. nonlocal关键字的作用 4. 简单闭包 5. 使用nonlocal关键字修改外部函数的值 6. 使用闭包实现ATM小案例 7. 装饰器概念 8. 装饰器的一般写法 9. 装…

Vue-Router详解

1、前端路由的发展历程 1.1、认识前端路由 路由其实是网络工程中的一个术语: 在架构一个网络时,非常重要的两个设备就是路由器和交换机。当然,目前在我们生活中路由器也是越来越被大家所熟知,因为我们生活中都会用到路由器&…

算法:树状数组详解(c++实现 求解动态数组区间和问题)

文章目录引入树状数组c完整代码引入 什么是树状数组??? 解决数据压缩里的累积频率(Cumulative Frequency)的计算问题,现多用于高效计算数列的前缀和, 区间和,这样的问题可以使用树…

Day8 spring 注解开发

1 前言使用注解类代替xml配置,使用注解代理xml中的标签2 标签2.1 用于Bean(类)上的常见注解2.1.1 Component步骤:在xml中配置包扫描,使得spring知道在哪些类上加上Component在特定类上加上Component测试/*** author : msf* date : 2023/1/24*…

#I. 哆啦A梦的时光机(bfs经典习题)

题目说明有一天,大雄和他的伙伴们想穿越时空进行探险,可是时光机却出了一点故障,只能进行有限的时空穿越操作。大雄他们需要从现在出发,到达一个目标时间点进行探险,结束后再返回到现在,他们希望尽可能减少…

Linux——网络编程概述

Q:为什么要网络编程?A:进程间的通信是依赖于Linux内核的,只能适用于单机,而要实现联机,就要用网络编程,网络编程是面向多台设备间的通信网络编程两个重要概念:IP地址和端口&#xff…

微服务拆分之道

背景 微服务在最近几年大行其道,很多公司的研发人员都在考虑微服务架构,同时,随着 Docker 容器技术和自动化运维等相关技术发展,微服务变得更容易管理,这给了微服务架构良好的发展机会。 在做微服务的路上&#xff0…

JavaWeb | JDBC相关API详解 1(含源码阅读)

本专栏主要是记录学习完JavaSE后学习JavaWeb部分的一些知识点总结以及遇到的一些问题等,如果刚开始学习Java的小伙伴可以点击下方连接查看专栏 本专栏地址:🔥JDBC Java入门篇: 🔥Java基础学习篇 Java进阶学习篇&#x…

5、常量与变量

目录 1.数值型变量 (1)整型常量 (2)实型常量 2.字符型常量 (1)字符常量 (2) 字符串常量 3. ASCII表 4. 转义符号 5.符号常量 6. 整型变量 (1)有符号基本整型 (2)无符号基…

JavaScript Break 和 Continue 语句

文章目录JavaScript Break 和 Continue 语句Break 语句Continue 语句JavaScript 标签笔记列表JavaScript Break 和 Continue 语句 break 语句用于跳出循环。 continue 用于跳过循环中的一个迭代。 Break 语句 我们已经在本教程之前的章节中见到过 break 语句。它用于跳出 swi…

final的一个重要用途-宏变量和未初始化问题

/*** author 张家琛* version 1.0* date 2023/1/24 20:23*/ public class FinalDemo {public static void main(String[] args) {final var a5;System.out.println(a);} } 对于上面的程序来说,变量a其实根本就不存在,这段代码本质上执行的是转换成的&am…

MyBatis知识点笔记

目录 mybatis mapper-locations的作用? mybatis configuration log-impl 作用? resultType和resultMap的区别? 参数 useGeneratedKeys ,keyColumn,keyProperty作用和用法 取值方式#和$区别 动态标签有哪些 MyBat…

字节青训前端笔记 | Vite 入门

本节课,讲师将前置介绍有关前端工程基本知识,同时讲解前端构建工具及解决问题,进而引出作为前端构建工具的 Vite 是什么及其在开发过程中的应用。 为什么使用构建工具 前端是有一系列资源组成的,js 代码,css样式&…

ESP32 Micropython编程(Thonny)04---- 人体感应模块

本人持续分享更多关于嵌入式和单片机的知识,如果大家喜欢,别忘点个赞加个关注哦,让我们一起共同进步 最近使用到人体感应模块HC-SR501,这个模块使用十分简单,看下面代码就可以看出了,而且应用广泛&#xff…

Java 优先级队列(堆)

目录1. 优先级队列(堆)的概念2. 建立大根堆(向下调整算法)3. 堆插入元素(向上调整算法)4. 堆删除元素(向下调整算法)5. 优先级队列PriorityQueue的特性6. 优先级队列PriorityQueue的…

单向环形链表和约瑟夫问题

单向环形链表和约瑟夫问题 Josephu 问题为&#xff1a;设编号为1&#xff0c;2&#xff0c;… n的n个人围坐一圈&#xff0c;约定编号为k&#xff08;1<k<n&#xff09;的人从1开始报数&#xff0c;数到m 的那个人出列&#xff0c;它的下一位又从1开始报数&#xff0c;数…

ubuntu压缩、归档 tar zip gzip的介绍

不同文件需要使用不同的工具进行压缩和解压&#xff0c;可以使用file文件查看是什么类型的文件 file 文件名如图&#xff0c;在第二行看到这个文件是gzip类型的。 文件&#xff1a;gzip 工具&#xff1a;gunzip gunzip是 gnu unzip的缩写。用来解压gzip压缩包。 解压命令 …