Skip to content

数字信号编码方式

2026 大纲 二(一)3 编码与调制 的"编码"一半——数字数据到数字信号的基带编码。"调制"一半(调幅/调频/调相/QAM 与 PCM)在《通信基础》。

一、上限算出来了,可 0 和 1 到底长什么样

上一节给出了信道的容量上限。但那是"最多能塞多少",真要把一串 0 和 1 送上线,还得决定用什么波形代表 0、用什么波形代表 1

这一步不是随便定的,因为它要同时解决三件事,而三件事互相打架:

  1. 时钟同步。收发两端的时钟不可能完全一致,一长串相同的比特里如果波形一动不动,接收方数着数着就会数错位。
  2. 直流分量。很多线路是变压器或电容耦合、天生隔直流,波形的平均电平不为零会让判决门限慢慢漂移失效。
  3. 带宽占用。前两件事的解法都是"多加跳变",而跳变越多、信号变化越快、占的带宽越宽

一句话概括这一节:加跳变换同步,高低各半消直流,代价是带宽。而这个代价是实打实的——曼彻斯特编码会把上一节算出来的那个上限直接砍掉一半。

四种数字信号编码方式对同一段比特流 1 0 0 0 1 0 0 1 1 1 的波形对比:不归零制的电平在整个码元内不变,归零制每个码元后半段都回到零电平,曼彻斯特与差分曼彻斯特则在每个码元中间必有一次跳变

图源:谢希仁《计算机网络》(第 8 版)图 2-2,p45。

二、五种编码的规则与特性

编码方式规则自同步每比特占几个信号单元直流分量抗极性反转典型应用
不归零制 NRZ正电平 = 1,负(低)电平 = 0,整个码元期间电平保持不变1可能有很少单独使用(得另拉时钟线,与"串行为省线"的初衷相悖)
归零制 RZ正脉冲 = 1,负脉冲 = 0,每个码元后半段回到零2早期设备
NRZI逢 1 翻转、逢 0 不变仅对连续 11可能有4B/5B 之后的线路编码
曼彻斯特码元正中间必有跳变,跳变方向携带信息(高→低 = 1,低→高 = 0)210BASE-T 以太网
差分曼彻斯特中间跳变只管同步不携带信息;信息由开始边界是否跳变决定(有 = 0,无 = 1)2令牌环网

五行不必分开记,三条线索就把它们串起来了。

归零制是"用带宽换同步"最朴素的版本,而曼彻斯特是它的改进——同样把码元切成两半,但两半都用来携带信息(靠跳变方向),而不是浪费一半去回零。

"差分"两个字就是差分曼彻斯特与 NRZI 的全部:它们编的不是绝对电平,而是相邻状态之间的差异。绝对量会被极性反转和直流漂移搞乱,差异量不会。

NRZI 只解决了连 1 的问题,对连续 0 依旧无能为力,所以必须搭配 4B/5B 之类的映射来打散连 0 串。

还有一条贯穿全表的通用判据,值得单独拎出来:必然发生的跳变一定不携带信息——因为它不区分任何东西。这一条同时解释了曼彻斯特的边界跳变为何无意义、差分曼彻斯特的中间跳变为何无意义。

自同步也不是"有/无"两档,判据是最坏数据模式下还有没有跳变:不归零制完全没有(连 0 连 1 都失步);NRZI 部分有(连 1 有跳变、连 0 没有,只解决一半问题);归零制/曼彻斯特/差分曼彻斯特完全有(每码元内必有跳变,与数据无关)。

抗极性反转也不等于抗噪声。 差分曼彻斯特与 NRZI 抗的是极性反转(两根线接反、直流基准漂移)这类系统性误差;噪声大到把电平推过判决门限时,任何编码都会误码。差分编码丢的是"绝对电平的含义",保的是"相邻状态的关系"。

⚠️ 两处约定教材都注明"可反过来定义"。 谢希仁版:曼彻斯特位周期中心向下跳变(高→低)= 1、向上跳变 = 0;差分曼彻斯特开始边界有跳变 = 0、无跳变 = 1。做题第一步先看题面给没给约定,没给就按这套。

⚠️ NRZI 也有两种相反约定。 上面是主流教材与 408 采用的"逢 1 翻转"(英文全称 Invert on ones 就写着这条规则);而 USB 实际用的是反过来的变体——逢 0 翻转、逢 1 不变,所以"USB 用的是 NRZI"这句话容易误导。做题只认题面给的约定。

三、把五种排在一起看

取同一段数据 1 0 1 1 0 0(差分类设前一码元末电平为低),每个格子代表半个码元周期, 高、 低:

数据          1     0     1     1     0     0
NRZ          ▔▔    ▁▁    ▔▔    ▔▔    ▁▁    ▁▁
NRZI         ▔▔    ▔▔    ▁▁    ▔▔    ▔▔    ▔▔
曼彻斯特      ▔▁    ▁▔    ▔▁    ▔▁    ▁▔    ▁▔
差分曼彻斯特   ▁▔    ▁▔    ▔▁    ▁▔    ▁▔    ▁▔

四行摆在一起,几件事一眼就看得出来:不归零制在第 3、4 位(连续两个 1)之间完全没有跳变,接收方在这一段没有任何时钟参考;NRZI 在第 5、6 位(连续两个 0)之间同样毫无跳变;曼彻斯特每个码元中间都有跳变,任何数据模式下都不会失去同步;差分曼彻斯特第 1、2 位的波形完全相同(都是 ▁▔),但一个是 1 一个是 0——因为差分编码看的是与前一码元末电平的关系,不是波形本身长什么样。这是差分类编码最容易翻车的地方。

四、由波形反推:两种方向的动作

真题里这一节的题只有两个方向:已知编码方式读数据,和看波形认编码方式。两个方向各有一套固定动作。

认编码方式

第一问最有分辨力:"码元正中间是否恒有跳变"一刀就把两类分开,分开之后再问第二问即可。

题目若同时给出了数据和两条波形要你辨认,动作更省事:数一数每个比特占几个格子。占 1 格的只可能是 NRZ 或 NRZI,占 2 格的只可能是归零制、曼彻斯特或差分曼彻斯特;再看电平与数据对不对得上(对得上是 NRZ,对不上才是 NRZI),或看中间跳变方向与数据对不对得上(对得上是曼彻斯特,对不上才是差分曼彻斯特)。

曼彻斯特:读数据只看中间跳变的方向

按教材约定,中间高→低 = 1、低→高 = 0。所以拿到一串 LH LH HL HL LH HL HL LH(L 表示前半低、H 表示后半高),逐个码元读跳变方向:LH 是低→高 = 0,HL 是高→低 = 1,直接得 0011 0110

曼彻斯特没有"参考电平"的问题——每个码元自己就能读出来,因为信息在这个码元内部的跳变方向上。

差分曼彻斯特:读数据只看开始边界跳不跳

这是本节最容易做反的一类。中间那次跳变永远不携带信息,看了就会算反;信息在"这个码元的前半电平,相对前一码元的末电平有没有变"。

HL HL LH HL LH LH LH HL 走一遍(设参考电平为高):

码元波形前半电平与前一码元末电平比结论
1HL参考为高 → 未跳变1
2HL前一末为低 → 跳变了0
3LH前一末为低 → 未跳变1
4HL前一末为高 → 未跳变1
5LH前一末为低 → 未跳变1
6LH前一末为高 → 跳变了0
7LH前一末为高 → 跳变了0
8HL前一末为高 → 未跳变1

读出 1011 1001

题目没给起始参考电平怎么办? 从第二个码元起,前一码元的末电平就由波形本身确定了,所以第 2 位往后一定读得出来;选项之间通常从第 2 位就开始分岔,定完后面几位再回头核对第 1 位即可。

由数据画波形:两套次序,不能颠倒

曼彻斯特:① 先定中间的跳变方向(由数据决定);② 再补前后两半的电平。题目没给初始电平时写明"设初始电平为低"即可。

差分曼彻斯特:① 先定前半电平——这一位是 0 就相对前一码元末电平翻转,是 1 就沿用;② 再定后半电平——无条件翻转(中间那次跳变是同步用的,与数据无关)。

拿数据 1 0 1 1 0 0、前一码元末电平为低走一遍:

位序数据开始处该不该跳变前半电平中间必跳变 → 后半电平
11无跳变 → 沿用前一末电平
20有跳变 → 翻转(高→低)
31无跳变 → 沿用(高)
41无跳变 → 沿用(低)
50有跳变 → 翻转(高→低)
60有跳变 → 翻转(高→低)

交互可视化

加载可视化中...

五、自同步的价钱:一半带宽

现在回到本节开头那句"代价是带宽",把它算出来。

关键概念:信号变化速率(码元速率)与数据率是两回事。 不归零制一个比特对应一个信号单元(电平在整个码元内不变),故码元速率 = 比特速率;曼彻斯特一个比特被切成两个半码元、每半个都是独立的信号单元,故码元速率 = 2 × 比特速率。

带宽正比于信号变化速率,所以曼彻斯特占用的带宽是不归零制的两倍——教材的表述是"曼彻斯特编码产生的信号频率比不归零制高"。反过来说,在给定带宽下,曼彻斯特的有效数据率只有不归零制的一半

注意带宽翻倍的根源不是"跳变多了",而是"每个比特被切成两个独立信号单元"。 归零制同样每比特两个单元、同样翻倍,只是它的第二个单元固定回零、白白浪费掉了。

正推:10BASE-T 的带宽。 数据率 10 Mb/s、曼彻斯特编码。

码元速率=2×10×106=20 M Baud

换算系数只由编码方式决定,与数据内容无关。再反用奈氏准则 Bmax=2W

W=20×1062=10 MHz

⚠️ 口径差异:另一种常见说法是"10 Mb/s 曼彻斯特需要 20 MHz",那是把"信号的最高变化频率"直接当作带宽(连发 1 时波形是 20 MHz 的方波)。两个数不矛盾,是两种带宽口径;题目若明说"用奈氏准则"就答 10 MHz。不归零制跑同样的 10 Mb/s,奈氏口径下只需 5 MHz、工程口径下只需 10 MHz——无论哪种口径,比值都是 2

反推:给定信号变化速率上限求数据率。 某链路上限 16 M Baud。不归零制每比特 1 个信号单元,故 R=16×106×1=16 Mb/s;差分曼彻斯特每比特 2 个信号单元,故 R=16×106/2=8 Mb/s。链路的物理能力(每秒能做多少次信号变化)是固定的,编码决定了这些变化里有多少给数据用、多少给同步用——差分曼彻斯特把一半的变化能力交给了同步。

所以百兆以太网换了方案。 按曼彻斯特跑 100 Mb/s 要 200 M Baud,代价太大,于是改用 4B/5B + NRZI:每 4 个数据位映射成 5 个码位(编码表刻意保证不出现太长的连 0 串,补上 NRZI 对连 0 无能为力的那半),再用 NRZI 送出去。开销只有 25%(100 Mb/s 数据对应 125 M Baud 线路速率)而不是 100%。

本节小结

  1. 编码要同时解决时钟同步、直流分量、带宽占用三件事:加跳变换同步、高低各半消直流,代价是带宽。不归零制最省带宽但完全没有自同步;归零制用一半带宽换同步却浪费了那一半;曼彻斯特把两半都用来携带信息。
  2. 一条通用判据:必然发生的跳变一定不携带信息。所以曼彻斯特靠中间跳变的方向携带信息、边界跳变无意义;差分曼彻斯特的中间跳变只管同步、信息在开始边界跳不跳上,并因此额外获得抗极性反转(抗的是系统性误差,不是随机噪声)。NRZI 同属差分思路,但只对连续 1 有同步能力。
  3. 带宽代价的根源是"每比特占几个信号单元":曼彻斯特与差分曼彻斯特占 2 个,故码元速率翻倍、带宽翻倍、有效数据率减半。10 Mb/s 曼彻斯特 → 20 M Baud → 奈氏口径至少 10 MHz。自同步的价钱就是一半的带宽效率,这正是百兆以太网改用 4B/5B + NRZI(开销仅 25%)的原因。

考点速记

本节在真题里被考过的形式,按问法分三类:

① 已知编码方式,由波形读比特串(cn-2013-34、cn-2021-34)。这两道是同一类的两个难度。cn-2013-34 给的是 10BASE-T 网卡收到的波形——先由"10BASE-T"确定它用曼彻斯特,再逐个码元读中间跳变的方向(高→低 = 1、低→高 = 0),直接得出 0011 0110。cn-2021-34 明说是差分曼彻斯特,动作换成只看每个码元开始处跳不跳(跳 = 0、不跳 = 1),中间那次跳变一律无视。

② 由波形辨认编码方式(cn-2015-34)。给同一段数据的两条波形要你认出各是什么。省事的动作是先数每个比特占几个格子:占 1 格只可能是 NRZ 或 NRZI,占 2 格只可能是归零制、曼彻斯特或差分曼彻斯特。分完两类再看电平(或中间跳变方向)与数据对不对得上——对得上的是 NRZ 与曼彻斯特,对不上的才是 NRZI 与差分曼彻斯特。

③ 调制方式的载波特征(cn-2024-34)。问二进制数字调制里哪种需要 2 个不同频率的载波,答 FSK。这道题渲染在本节的练习区,但机制在通信基础第四部分——ASK 靠有无载波、PSK 与 DPSK 靠相位,用的都是同一个频率,只有调频要两个。练习区比本节内容宽属正常,本节负责的是基带编码这一半。

易错差分曼彻斯特只看开始边界,中间那次跳变永远不携带信息。 拿中间跳变去读,八位会全部读反。

易错曼彻斯特的两个方向别记反。 谢希仁版是"中间高→低 = 1、低→高 = 0",而教材本身注明可反过来定义——题面给了约定就用题面的,没给才用这套。差分曼彻斯特同理:"开始边界有跳变 = 0、无跳变 = 1"。

易错波特率与带宽是两个数。 10 Mb/s 曼彻斯特的码元速率是 20 M Baud,奈氏口径下的带宽是 10 MHz——中间隔着 Bmax=2W 这一步除法,别把 20 M 直接当带宽答上去。

易错NRZI 只对连续 1 有自同步能力,连续 0 一样失步。所以"NRZI 具有自同步能力"这种不加限定的说法是错的,它必须搭配 4B/5B 才能用。

教材出处
  • 谢希仁《计算机网络》(第 8 版)p45(图 2-2 及正文):给出四种常用编码方式的波形与规则原文——"不归零制:正电平代表 1,负电平代表 0。归零制:正脉冲代表 1,负脉冲代表 0。曼彻斯特编码:位周期中心的向上跳变代表 0,位周期中心的向下跳变代表 1。但也可反过来定义。差分曼彻斯特编码:在每一位的中心处始终都有跳变。位开始边界有跳变代表 0,而位开始边界没有跳变代表 1";本篇的两处约定与"教材也可反过来定义"的提醒即出自此段。同页并给出带宽与自同步的结论:"从信号波形中可以看出,曼彻斯特编码产生的信号频率比不归零制高。从自同步能力来看,不归零制不能从信号波形本身中提取信号时钟频率(这叫作没有自同步能力),而曼彻斯特编码具有自同步能力。"
  • 同书 p44:说明编码在分类上的位置——"仅仅对基带信号的波形进行变换,使它能够与信道特性相适应。变换后的信号仍然是基带信号。这类调制称为基带调制。由于这种基带调制是把数字信号转换为另一种形式的数字信号,因此大家更愿意把这种过程称为编码"。
  • 同书 p92(3.3.3 使用集线器的星形拓扑):给出 10BASE-T 的命名含义——"'10' 代表 10 Mbit/s 的数据率,BASE 表示连接线上的信号是基带信号,T 代表双绞线",可与本篇"曼彻斯特用于 10BASE-T"相互印证。

相关知识

通信基础(信道/信号/调制)奈奎斯特定理与香农定理信道复用技术以太网与 IEEE 802.3

真题练习