【计算机网络 | 第8篇】编码与调制

在这里插入图片描述

文章目录

  • 通信系统中的编码与调制:从信道基础到信号传输技术
    • 一、信道与通信电路🍂
    • 二、三种基本通信方式📖
      • 1. 单向通信(单工通信)
      • 2. 双向交替通信(半双工通信)
      • 3. 双向同时通信(全双工通信)
    • 三、编码与调制:让信号适配信道的关键技术🥝
      • 1. 基带调制(编码)
      • 2. 带通调制
    • 四、常用编码方式:将二进制数据转化为电信号🥝
      • 1. 不归零制(NRZ)
      • 2. 归零制(RZ)
      • 3. 曼彻斯特编码
      • 4. 差分曼彻斯特编码
    • 五、基本的带通调制方法📖
      • 1. 幅度调制(调幅AM)
      • 2. 频率调制(调频FM)
      • 3. 相位调制(调相PM)
    • 六、混合调制方法:QAM正交振幅调制🍂

通信系统中的编码与调制:从信道基础到信号传输技术

一、信道与通信电路🍂

要理解通信系统,首先得明确信道和通信电路的概念。

  • 信道:是通信系统中单向传输信息的物理通道,如同城市中的单行道,强调信息传输的方向性。比如一条电话线就包含两条信道:一条用于发送语音,另一条用于接收语音。
  • 通信电路由发送信道和接收信道组成的双向通道,通常指物理连接的线路(如网线、光纤),可能包含多个信道。如果把电路比作"道路",那么信道就是"道路"上的"车道",一条道路可以有多个车道供不同方向的"车辆"(信息)通行。

二、三种基本通信方式📖

根据通信双方的信息交互方向,通信方式可分为以下三类:

1. 单向通信(单工通信)

信息仅能单方向传输,无反向交互。例如电视台向观众发送节目信号,观众无法反馈;红绿灯向车辆传递指令,车辆也无法回传信息。这种通信方式只需一条信道,适合单向信息流场景。

2. 双向交替通信(半双工通信)

通信双方可轮流发送和接收,但不能同时进行。就像使用对讲机时,A按下按钮说话,B只能等待;B按下按钮回应时,A也需等待。早期的以太网也采用这种方式,同一时间只能有一个设备发送数据,其他设备需等待。它需要2条独立信道(发送+接收),但设备需共享同一频段,同一时间只使用一条。

3. 双向同时通信(全双工通信)

通信双方可同时发送和接收信息。现在的网卡普遍支持全双工模式,允许数据双向同时传输。它需要两条独立信道(发送+接收),且需隔离技术防止干扰,传输效率最高。现代通信系统(如5G、光纤网络)大多采用全双工,不过在资源受限的场景(如低功耗物联网设备)仍可能使用半双工,我们日常使用的手机就采用这种通信方式。

三、编码与调制:让信号适配信道的关键技术🥝

 在通信系统中,来自信源的原始信号(如计算机发送的数据)通常被称为基带信号。这类信号频率范围低,主要集中在0Hz附近的低频段(甚至包含直流分量),直接表示信息,如二进制数据(0/1)、文字文件或图像像素值。

但基带信号在实际传输中存在一个关键问题:许多信道无法直接传输低频或直流分量。例如,电话线对低频信号的衰减极大,无线信道则需要高频电磁波才能有效传播。为解决这一矛盾,就需要对基带信号进行调制——将信号"改造"以适应信道特性。

根据调制目的和方法的不同,调制可分为两类:基带调制和带通调制

1. 基带调制(编码)

仅对数字基带信号的波形进行变换,使其更适配信道特性,但不改变信号的频率范围。调制后的信号仍然是数字信号。本质上是将数字信号转换为另一种形式的数字信号,比如将二进制比特流转换为不同电平或脉冲序列,因此也被称为编码。通过编码可以消除低频干扰或者避免直流分量。

基带调制就如同"翻译"——将一种语言(信号形式)转换为另一种语言(适配信道的信号形式),但内容不变。

在这里插入图片描述

2. 带通调制

使用载波信号(高频正弦波)对基带信号进行调制,将低频的数字基带信号的频谱"搬移"到高频段,并转换为模拟信号,形成带通信号。其核心作用是让信号能在无线电波、光纤等模拟信道中传输,而且高频信号可通过滤波器隔离噪声,提高抗干扰能力。
在这里插入图片描述

消息发送全程示意图:
在这里插入图片描述

四、常用编码方式:将二进制数据转化为电信号🥝

在数字通信中,二进制数据(0和1)需要通过特定的编码方式转化为电信号,以便在物理信道中传输。常见的编码方式包括不归零制(NRZ)、归零制(RZ)、曼彻斯特编码和差分曼彻斯特编码,它们在信号形式、同步能力和带宽需求上各有特点,适用于不同的通信场景。

1. 不归零制(NRZ)

这是最简单的编码方式,电平直接表示比特值:高电平为1,低电平为0。信号在整个位周期内保持恒定电平,仅在相邻比特不同时发生跳变(如1后接0)

  • 优点:实现简单,无冗余跳变,占用带宽较低
  • 缺点:没有自同步能力,如果连续传输多个相同码元(如"1111"),信号波形无跳变,接收端无法通过波形自身恢复时钟信号,需额外的时钟线辅助同步;长时间传输相同电平可能导致信号偏移(如直流偏置)

在这里插入图片描述

2. 归零制(RZ)

每个比特周期内,信号在中间时刻归零:正脉冲(高→零)表示1,负脉冲(低→零)表示0,每个位周期内,信号在末尾必须回到零电平

  • 优点:相比NRZ,信号跳变更多,有助于提升同步能力
  • 缺点:由于每个位周期包含脉冲和归零过程,信号频率是NRZ的两倍;且在电路设计上,需设计额外的电路控制归零,编码效率低

在这里插入图片描述

3. 曼彻斯特编码

其原理是每个位周期的中心位置发生跳变,向上跳变表示"0",向下跳变表示"1"(或相反定义)

  • 优点:自同步能力很强,每个位周期必然包含一次跳变,接收端可通过检测跳变位置恢复时钟信号,无需额外同步线;跳变平衡了正负电平,避免信号偏移
  • 缺点:信号频率是NRZ的两倍,通过牺牲带宽换取了自同步能力。10Mb/s传统以太网就采用这种编码方式

在这里插入图片描述

4. 差分曼彻斯特编码

每位周期中心始终跳变(无论数据是0还是1),数据由位边界决定,位开始处有跳变表示"0",无跳变表示"1"

  • 优点:自同步能力更强,中心跳变确保时钟恢复,边界跳变携带数据信息;相比曼彻斯特编码,对电压波动不敏感(仅关注跳变方向而非绝对电平)

在这里插入图片描述

 需要注意的是,如果只给一段波形,不提供编码方式,也不提供对应的比特流,则无法识别是曼彻斯特编码还是差分曼彻斯特编码。所以相关题目一般是:给波形+比特流问编码方式 或 给编码方式+波形问比特流

举例:像下面这幅图,就给一段波形,你是无法区分它到底是曼彻斯特编码还是差分曼彻斯特编码👏
在这里插入图片描述

五、基本的带通调制方法📖

调制方式主要有以下三种:

1. 幅度调制(调幅AM)

 用基带信号控制载波的幅度(如传统广播),让载波的振幅随基带数字信号的变化而变化。例如,有载波输出表示1,无载波输出表示0。这种方式也叫幅移键控(ASK)。

2. 频率调制(调频FM)

 用基带信号控制载波的频率(如FM收音机),让载波的频率随基带数字信号的变化而变化。例如,用频率f1表示1,用另一个频率f2表示0。也叫频移键控(FSK)。

3. 相位调制(调相PM)

 用基带信号控制载波的相位(如Wi-Fi中的QPSK调制),让载波的初相位随基带数字信号的变化而变化。例如,0相位表示0,180度相位表示1。也叫相移键控(PSK)。

在这些调制方式中,若设计k个幅值、k个频率或k个相位值,则1码元=log₂k bit。

在这里插入图片描述

六、混合调制方法:QAM正交振幅调制🍂

频率和相位是相关的,频率是相位随时间的变化率,频率变化会导致相位变化。正交振幅调制是将相位和振幅一起调制,形成叠加信号。

比如设计m种振幅,n种相位,将幅度调制(AM)和相位调制(PM)两两复合,可得到z=mn种信号,则1码元=log₂(mn) bit,这种调制方式称为QAM-z


如果我的内容对你有帮助,请 点赞 评论 收藏 。创作不易,大家的支持就是我坚持下去的动力!
在这里插入图片描述

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

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

相关文章

当AI遇上终端:Gemini CLI的技术魔法与架构奥秘

"代码不仅仅是指令的集合,更是思想的载体。当AI与终端相遇,会碰撞出怎样的火花?" 在这个AI技术日新月异的时代,Google推出的Gemini CLI无疑是一颗璀璨的明星。它不仅仅是一个命令行工具,更是一个将人工智能无…

ViLU: Learning Vision-Language Uncertainties for Failure Prediction

研究方向:Image Captioning1. 论文介绍本文提出ViLU(Vision-Language Uncertainties),一个用于学习视觉语言不确定性量化(UQ)和检测视觉语言模型故障的事后框架。使用VLMs进行量化(UQ&#xff0…

数据集笔记:百度地图高德地图坐标互转

1 为什么会有高德坐标系和百度坐标系?根据《测绘法》和国家保密法规,在中国大陆范围内的地理坐标数据必须做加密处理,不允许直接使用 WGS84(openstreetmap)所以出现了GCJ-02 和 BD-09高德、腾讯、谷歌中国都遵循 GCJ-0…

SkyWalking高效线程上下文管理机制:确保调用链中traceId来自同一个请求

SkyWalking Agent 能确保获取到“正确”的 traceId,其核心在于它建立并维护了一套高效的线程上下文管理机制。这套机制确保了即使在复杂的多线程、异步环境下,也能将正确的上下文(包含 traceId)与当前正在执行的代码逻辑关联起来。 其工作原理可以概括为下图所示的流程: …

Kafka-Eagle安装

目录Eagle环境安装Mysql环境准备Kafka环境准备Eagle安装Kafka-Eagle框架可以监控Kafka集群的整体运行情况,在生产环境中经常使用 Eagle环境安装 Mysql环境准备 Eagle的安装依赖于Mysql,Mysql主要用来存储可视化展示的数据 将mysql文件夹及里面所有内…

Matlab系列(005) 一 归一化

目录1、前言2、什么是归一化?3、为什么要进行归一化4、归一化方法详解与Matlab实现5、总结1、前言 ​   归一化技术是数据预处理的核心环节,本文将深度解析主流归一化方法,提供可复现Matlab代码,并探讨其在各领域中的应用场景。…

【K8s】整体认识K8s之namespace

命名空间将资源划分为相互隔离的组。kubectl get namespace/ns系统默认创建四个namespace,分别是default、kube-node-lease、kube-public、kube-system。default 没有指明使用其它命名空间的对象所使用的默认命名空间、kube-system 系统创建对象所使用的命名空间。…

rust语言 (1.88) egui (0.32.1) 学习笔记(逐行注释)(十八) 使用表格

使用表格egui_extras::TableBuilder // Cargo.toml [dependencies] eframe "0.32.1" egui "0.32.1" egui_extras "0.32.1"egui_extras::Column::auto() 列宽根据内容自动计算.resizable(true) 允许用户手动拖动调整列宽 fn main() -> efra…

【C#】构造函数实用场景总结

文章目录前言一、构造函数是什么?二、构造函数的用法1.初始化对象,避免无效状态2 初始化静态成员3 构造函数重载4.构造函数链5. 单例模式,多次实例化保持一个对象6. 依赖注入7. 初始化只读对象前言 构造函数是我们平常编程里经常能碰到的老伙…

LLM预训练架构全解析:从零构建一个语言世界的“操作系统”

导读:作为开发者,我们每天都在import或#include各种库,我们信任这些由无数代码构成的底层依赖。那么,当我们调用一个LLM时,它所依赖的那个更底层的、无形的**“语言操作系统”**,又是如何被“编译”出来的&…

Linux服务测试题(DNS,NFS,DHCP,HTTP)

一,实验拓扑:二,需求APPSRV:主机名:appsrv.example.comip地址:192.168.100.10网关:192.168.100.254网卡为NAT模式STORAGESRV:主机名:storagesrv.example.comip地址&#…

DevOps 简介及就业前景

DevOps 简介及就业前景 目录 DevOps简介核心概念重难点解析具体场景使用就业前景学习路径最佳实践 DevOps简介 什么是DevOps DevOps是Development(开发)和Operations(运维)的组合词,是一种软件开发和IT运维的文化…

《CF1120D Power Tree》

题目描述 给定一棵有 n 个顶点的有根树,树的根为顶点 1。每个顶点都有一个非负的价格。树的叶子是指度为 1 且不是根的顶点。 Arkady 和 Vasily 在树上玩一个奇怪的游戏。游戏分为三个阶段。第一阶段,Arkady 购买树上的一些非空顶点集合。第二阶段&…

CPTS-Agile (Werkzeug / Flask Debug)

枚举 nmap -sC -sV -T4 -Pn -n -p- 10.10.11.203进行常规的网页枚举和测试发现报错信息,‘Werkzeug / Flask Debug’ 测试Export导出功能发现存在路径遍历查看这篇文章 https://book.hacktricks.wiki/zh/network-services-pentesting/pentesting-web/werkzeug.html#…

【网络运维】Shell 脚本编程:while 循环与 until 循环

Shell 脚本编程:while 循环与 until 循环 循环结构简介 循环语句是 Shell 脚本中用于重复执行一条或一组指令的重要工具,直到满足特定条件时停止执行。Shell 脚本中常见的循环语句包括 while、until、for 和 select。本文将重点介绍 while 和 until 两种…

LLM 中评价指标与训练概要介绍

在【LLM】LLM 中增量解码与模型推理解读一文中对 LLM 常见名词进行了介绍,本文会对 LLM 中评价指标与训练概要进行介绍,本文并未介绍训练实操细节,未来有机会再了解~ 一、LLM 如何停止输出 在看 LLM 评价指标前,先看…

Java 20 新特性及具体应用

目录 1. 模式匹配 for switch(预览特性) 2. 记录模式(预览特性) 3. 外部函数与内存 API(预览特性) 4. 矢量 API(孵化器特性) 5. 作用域值(预览特性) 6. …

【STM32】CubeMX(十一):FreeRTOS任务挂起与解挂

这篇文章是 STM32 HAL FreeRTOS 下的任务挂起与恢复机制, 结合 CubeMX 图示与代码,构建了一个 FreeRTOS 控制示例。 本篇目标:创建两个任务: 一个控制蓝灯闪烁(myTask01) 另一个监控按键(Start…

图片预加载:提升Web性能的关键

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》、《前端求职突破计划》 🍚 蓝桥云课签约作者、…

大模型压缩三剑客:量化、剪枝与知识蒸馏全解析

在人工智能飞速发展的今天,大语言模型(LLM)如通义千问、GPT 等已成为推动智能应用的核心引擎。然而,这些模型动辄数十亿甚至上千亿参数,带来了高昂的计算成本和部署门槛。如何在不显著牺牲性能的前提下,让大…