Appearance
数字信号编码方式
2026 大纲 二(一)3 编码与调制 的"编码"一半——数字数据到数字信号的基带编码。"调制"一半(调幅/调频/调相/QAM 与 PCM)在《通信基础》。
一、上限算出来了,可 0 和 1 到底长什么样
上一节给出了信道的容量上限。但那是"最多能塞多少",真要把一串 0 和 1 送上线,还得决定用什么波形代表 0、用什么波形代表 1。
这一步不是随便定的,因为它要同时解决三件事,而三件事互相打架:
- 时钟同步。收发两端的时钟不可能完全一致,一长串相同的比特里如果波形一动不动,接收方数着数着就会数错位。
- 直流分量。很多线路是变压器或电容耦合、天生隔直流,波形的平均电平不为零会让判决门限慢慢漂移失效。
- 带宽占用。前两件事的解法都是"多加跳变",而跳变越多、信号变化越快、占的带宽越宽。
一句话概括这一节:加跳变换同步,高低各半消直流,代价是带宽。而这个代价是实打实的——曼彻斯特编码会把上一节算出来的那个上限直接砍掉一半。

图源:谢希仁《计算机网络》(第 8 版)图 2-2,p45。
二、五种编码的规则与特性
| 编码方式 | 规则 | 自同步 | 每比特占几个信号单元 | 直流分量 | 抗极性反转 | 典型应用 |
|---|---|---|---|---|---|---|
| 不归零制 NRZ | 正电平 = 1,负(低)电平 = 0,整个码元期间电平保持不变 | 无 | 1 | 可能有 | 否 | 很少单独使用(得另拉时钟线,与"串行为省线"的初衷相悖) |
| 归零制 RZ | 正脉冲 = 1,负脉冲 = 0,每个码元后半段回到零 | 有 | 2 | 有 | 否 | 早期设备 |
| NRZI | 逢 1 翻转、逢 0 不变 | 仅对连续 1 | 1 | 可能有 | 是 | 4B/5B 之后的线路编码 |
| 曼彻斯特 | 码元正中间必有跳变,跳变方向携带信息(高→低 = 1,低→高 = 0) | 有 | 2 | 无 | 否 | 10BASE-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 走一遍(设参考电平为高):
| 码元 | 波形 | 前半电平 | 与前一码元末电平比 | 结论 |
|---|---|---|---|---|
| 1 | HL | 高 | 参考为高 → 未跳变 | 1 |
| 2 | HL | 高 | 前一末为低 → 跳变了 | 0 |
| 3 | LH | 低 | 前一末为低 → 未跳变 | 1 |
| 4 | HL | 高 | 前一末为高 → 未跳变 | 1 |
| 5 | LH | 低 | 前一末为低 → 未跳变 | 1 |
| 6 | LH | 低 | 前一末为高 → 跳变了 | 0 |
| 7 | LH | 低 | 前一末为高 → 跳变了 | 0 |
| 8 | HL | 高 | 前一末为高 → 未跳变 | 1 |
读出 1011 1001。
题目没给起始参考电平怎么办? 从第二个码元起,前一码元的末电平就由波形本身确定了,所以第 2 位往后一定读得出来;选项之间通常从第 2 位就开始分岔,定完后面几位再回头核对第 1 位即可。
由数据画波形:两套次序,不能颠倒
曼彻斯特:① 先定中间的跳变方向(由数据决定);② 再补前后两半的电平。题目没给初始电平时写明"设初始电平为低"即可。
差分曼彻斯特:① 先定前半电平——这一位是 0 就相对前一码元末电平翻转,是 1 就沿用;② 再定后半电平——无条件翻转(中间那次跳变是同步用的,与数据无关)。
拿数据 1 0 1 1 0 0、前一码元末电平为低走一遍:
| 位序 | 数据 | 开始处该不该跳变 | 前半电平 | 中间必跳变 → 后半电平 |
|---|---|---|---|---|
| 1 | 1 | 无跳变 → 沿用前一末电平 | 低 | 高 |
| 2 | 0 | 有跳变 → 翻转(高→低) | 低 | 高 |
| 3 | 1 | 无跳变 → 沿用(高) | 高 | 低 |
| 4 | 1 | 无跳变 → 沿用(低) | 低 | 高 |
| 5 | 0 | 有跳变 → 翻转(高→低) | 低 | 高 |
| 6 | 0 | 有跳变 → 翻转(高→低) | 低 | 高 |
交互可视化
五、自同步的价钱:一半带宽
现在回到本节开头那句"代价是带宽",把它算出来。
关键概念:信号变化速率(码元速率)与数据率是两回事。 不归零制一个比特对应一个信号单元(电平在整个码元内不变),故码元速率 = 比特速率;曼彻斯特一个比特被切成两个半码元、每半个都是独立的信号单元,故码元速率 = 2 × 比特速率。
带宽正比于信号变化速率,所以曼彻斯特占用的带宽是不归零制的两倍——教材的表述是"曼彻斯特编码产生的信号频率比不归零制高"。反过来说,在给定带宽下,曼彻斯特的有效数据率只有不归零制的一半。
注意带宽翻倍的根源不是"跳变多了",而是"每个比特被切成两个独立信号单元"。 归零制同样每比特两个单元、同样翻倍,只是它的第二个单元固定回零、白白浪费掉了。
正推:10BASE-T 的带宽。 数据率 10 Mb/s、曼彻斯特编码。
换算系数只由编码方式决定,与数据内容无关。再反用奈氏准则
⚠️ 口径差异:另一种常见说法是"10 Mb/s 曼彻斯特需要 20 MHz",那是把"信号的最高变化频率"直接当作带宽(连发 1 时波形是 20 MHz 的方波)。两个数不矛盾,是两种带宽口径;题目若明说"用奈氏准则"就答 10 MHz。不归零制跑同样的 10 Mb/s,奈氏口径下只需 5 MHz、工程口径下只需 10 MHz——无论哪种口径,比值都是 2。
反推:给定信号变化速率上限求数据率。 某链路上限 16 M Baud。不归零制每比特 1 个信号单元,故
所以百兆以太网换了方案。 按曼彻斯特跑 100 Mb/s 要 200 M Baud,代价太大,于是改用 4B/5B + NRZI:每 4 个数据位映射成 5 个码位(编码表刻意保证不出现太长的连 0 串,补上 NRZI 对连 0 无能为力的那半),再用 NRZI 送出去。开销只有 25%(100 Mb/s 数据对应 125 M Baud 线路速率)而不是 100%。
本节小结
- 编码要同时解决时钟同步、直流分量、带宽占用三件事:加跳变换同步、高低各半消直流,代价是带宽。不归零制最省带宽但完全没有自同步;归零制用一半带宽换同步却浪费了那一半;曼彻斯特把两半都用来携带信息。
- 一条通用判据:必然发生的跳变一定不携带信息。所以曼彻斯特靠中间跳变的方向携带信息、边界跳变无意义;差分曼彻斯特的中间跳变只管同步、信息在开始边界跳不跳上,并因此额外获得抗极性反转(抗的是系统性误差,不是随机噪声)。NRZI 同属差分思路,但只对连续 1 有同步能力。
- 带宽代价的根源是"每比特占几个信号单元":曼彻斯特与差分曼彻斯特占 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——中间隔着
这一步除法,别把 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