编码与调制的边界

计算机内部处理的是数字数据,但链路上传输的是信号。发送端必须把数据变成适合信道传播的信号;接收端再从信号中恢复数据。

900

编码通常指把数据变换为数字信号。典型场景是数字数据经过线路编码后,在数字信道上传输。

调制通常指把数据加载到模拟载波上,形成带通信号。典型场景是基带信号不能直接通过某段信道,必须用载波的振幅、频率或相位变化来承载数据。

数据 信号 变换方式
数字数据 数字信号 编码
数字数据 模拟信号 调制
模拟数据 数字信号 编码
模拟数据 模拟信号 调制

常用编码方式

线路编码决定 01 怎样表现为电平变化。常见编码方式如下:

900

不归零制

不归零制 NRZ 在一个码元期间保持某个电平,不回到零电平。它实现简单、带宽利用率较高,编码效率最高。但长时间连续 0 或连续 1 会导致接收端难以从信号中提取时钟。

反向不归零制

反向不归零制 NRZI 不直接用高电平/低电平表示 01,而是用码元边界处是否跳变表示数据。常见约定是:

  • 码元开始处发生跳变表示 1
  • 码元开始处不发生跳变表示 0

NRZI 关注“变不变”,不是关注绝对电平,因此比普通 NRZ 更不怕线路极性反接。但如果数据中长时间连续出现不触发跳变的比特,仍然会缺少同步信息,所以实际系统常配合额外编码使用。

归零制

归零制 RZ 在每个码元期间都会回到零电平。它比不归零制更容易帮助接收端同步,但每个码元内部多了一次电平变化,需要更宽的频带。

曼彻斯特编码

曼彻斯特编码在每个码元中间发生一次跳变,这个跳变既表示数据,也提供时钟同步。

低到高的跳变,和高到低的跳变所表示的是0还是1需要具体问题具体分析。

曼彻斯特编码的优点是自同步能力强,缺点是每个比特至少需要一次中间跳变,所需频带较宽。

差分曼彻斯特编码

差分曼彻斯特编码也在每个码元中间跳变,用中间跳变提供同步;数据由码元开始处是否发生跳变表示。常见约定是:

  • 码元开始处有跳变表示 0
  • 码元开始处无跳变表示 1

它关注是否变化,而不是绝对电平,因此对极性反转不敏感。

这些编码方式不是某一种线缆的固定属性,而是链路层/物理层标准对信号的约定。典型例子是:早期 10Mb/s 以太网使用曼彻斯特编码;令牌环曾使用差分曼彻斯特编码;USB 等系统中常见 NRZI 与位填充配合使用。线缆只提供传输介质,真正决定波形含义的是通信标准。

带通调制

若信道不能直接传输低频分量或直流分量,发送端可以把基带信号调制到较高频率的载波上。带通调制通过改变载波参数承载信息。

900

调制方式 改变什么 直观理解
调幅 AM 振幅 波峰高低变化
调频 FM 频率 波形疏密变化
调相 PM 相位 波形位置发生跳变

基本调制只改变一个参数。为了提高数据率,实际通信常组合多个参数,例如同时改变振幅和相位。

QAM 与星座图

QAM 是正交振幅调制。它把两个相互正交的载波分量组合起来,同时利用振幅和相位承载信息。

900

星座图上的每个点表示一种码元状态。若星座图有 $M$ 个点,则每个码元最多表示:

$$
\log_2 M \text{ bit}
$$

例如 QAM-16 有 $16$ 个点,每个码元可表示:

$$
\log_2 16=4\text{ bit}
$$

格雷码常用于星座点标号。它让相邻星座点的比特编号只差 1 位。这样做不能保证所有差错都只错 1 bit;它降低的是最常见的相邻点误判的代价。噪声较小时,接收点更容易落到相邻星座点,而不是跨越很远落到非相邻点,所以相邻点只差 1 位可以减少平均比特错误数。

码元、波特和速率的关系

$$
R=B\log_2 (m\times n)
$$

其中:

  • $R$ 是数据传输速率,单位 b/s。
  • $B$ 是码元传输速率,单位 Baud。
  • $m$ 是相位数。
  • $n$ 是每个相位的振幅数。

提高数据传输速率有两条路:

  • 提高码元传输速率 $B$。
  • 增加码元状态数 $M$,让每个码元携带更多 bit。

第二条路指的是在同样的码元速率下,把星座点做得更多。例如从 QPSK 的 4 个状态增加到 QAM-16 的 16 个状态,每个码元携带的 bit 数从 $2$ 增加到 $4$。代价是星座点之间更近,接收端更难区分相邻状态,因此对信噪比和调制解调技术要求更高。