Appearance
物理层:奈奎斯特、香农、编码、传输介质
概念
物理层(physical layer)在传输介质上透明地传输"比特流"——"透明"的意思是:它不管这些比特是什么内容、属于哪个协议,只负责把 0 和 1 原样送过去。
一句话说清它是什么:物理层是"比特与电信号(或光、电磁波)之间的翻译层"——它把 0/1 变成某种可传播的波形,并规定"用多高的电压、多宽的脉冲、什么接口"。
物理层要解决的四件事(四大特性,必背):
| 特性 | 管什么 | 举例 |
|---|---|---|
| 机械特性 | 接口的物理形状、引脚数、排布 | RJ-45 有 8 根针、什么形状 |
| 电气特性 | 电压范围、阻抗、传输速率 | "0 用 |
| 功能特性 | 某电平表示什么含义 | "第 3 脚上的高电平表示'发送'" |
| 规程特性(过程特性) | 各信号线的工作时序**** | 先拉低哪根、再拉高哪根 |
⚠️ "四大特性"里最容易漏的是"规程特性"(也叫过程特性)——它管的是"动作的先后顺序",跟
net/01-architecture.md里"协议三要素的时序"是同一个意思,只是在物理层这里变成了"某根线上的电平先后"。
⚠️ 本章与
net/01-architecture.md的衔接:上一章说"物理层传比特";本章就是"比特怎么变成信号、能传多快、走什么介质"——本章的奈氏与香农两个极限,是整门课唯一的"理论天花板",后面所有层都在这个天花板底下做文章。
原理
一、数据通信的五个基本术语
| 术语 | 含义 | 单位 |
|---|---|---|
| 数据 | 运送信息的实体(如一段 0/1 序列) | — |
| 信号 | 数据的电气或电磁表现 | — |
| 码元(symbol) | 一个固定时长的信号波形,是"一个单位时间内的信号状态" | — |
| 波特率(码元速率) | 每秒传输的码元个数 | Baud |
| 比特率(数据率) | 每秒传输的比特数 | bps |
两者的换算(必背):
其中
| 一个码元的电平数 | 每个码元携带的比特 | 2000 Baud 对应的比特率 |
|---|---|---|
| 2 | 1 bit | 2000 bps |
| 4 | 2 bit | 4000 bps |
| 8 | 3 bit | 6000 bps |
| 16 | 4 bit | 8000 bps |
| 32 | 5 bit | 10000 bps |
⚠️ 三个高频概念坑:
- "波特率"是码元速率,"比特率"是信息速率——两者只有在
时才相等。 - 波特率
比特率只可能在 时取等; 时比特率 波特率(因为一个码元装了多个比特)。 - "带宽"有两个含义:频域上讲"Hz"(信号占用的频率范围);时域上讲"bps"(最高数据率)——题目说"带宽 3 kHz"就用奈氏,说"带宽 10 Mbps"就是数据率。
二、奈奎斯特定理:理想无噪声信道的上限
奈奎斯特定理(Nyquist theorem):在带宽为
其中
读法:
锚点(
| 2 | 6000 bps = 6.00 kbps |
| 4 | 12000 bps = 12.00 kbps |
| 8 | 18000 bps = 18.00 kbps |
| 16 | 24000 bps = 24.00 kbps |
⚠️ 关于"两个奈奎斯特"的辨析(极易混):
- 奈奎斯特定理(信道容量):
——讲"带宽能支持多快"。 - 奈奎斯特采样定理:
——讲"采样频率要多少才不丢信息"。两个定理都姓"奈奎斯特",但一个是通信容量**、一个是采样频率,考试里常被故意放在一起。**
三、香农定理:有噪声信道的上限
香农定理(Shannon theorem):在带宽为
信噪比常用分贝表示:
所以"信噪比 30 dB"就是
锚点:
| SNR(dB) | |||
|---|---|---|---|
| 3000 Hz | 20 | 100 | 19974.63 bps = 19.97 kbps |
| 3000 Hz | 30 | 1000 | 29901.68 bps = 29.90 kbps |
| 3000 Hz | 40 | 10000 | 39863.57 bps = 39.86 kbps |
| 4000 Hz | 30 | 1000 | 39868.91 bps = 39.87 kbps |
⚠️ 奈氏与香农的"分工"必须分清:
对比项 奈奎斯特定理 香农定理 适用条件 理想无噪声 有噪声 看什么 带宽 + 码元电平数 带宽 + 信噪比 和噪声有关吗 无关(假设无噪声) 有关(核心变量) 和电平数有关吗 有关 无关(不关心怎么编码) 结论 提高 能提高速率 提高 或 才能提高速率 两者联合使用的固定答法:"实际数据率
"——香农给的是"物理上不可能超过"的硬天花板,奈氏给的是"给定编码方案能达到"的上限。 本题 时奈氏 24000 bps 香农 29901.68 bps,所以上限是 24000 bps。
四、数字数据的编码:几种必知的编码方式
编码 = 把 0/1 映射成信号波形。 考试常考三种:
text
数据: 1 0 1 1 0 0 1
① NRZ(不归零): 高=1, 低=0
┌──┐ ┌──┐
│ │ ┌──┘ └──┐ ┌──┐
───┘ └──┘ └─────┘ └──
1 0 1 1 0 0 1
★ 简单, 但连续同号时"接收方不知道有几位" -> 无法自同步
② 曼彻斯特编码: 每个比特中间必有一次跳变
1 = 高->低, 0 = 低->高 (或相反, 取决于约定)
┌─┐ ┌─┐ ┌───┐ ┌─┐
│ └─┘ │ │ │ │ └─...
┘ └─┘ └─┘
★ 跳变本身就是时钟 -> 自同步; 但波特率是数据率的 2 倍
③ 差分曼彻斯特: 每个比特中间一定有跳变(仅作时钟),
而"0/1"由其"起始处有无跳变"决定
★ 抗干扰更强; 同样波特率翻倍| 编码 | 自同步 | 波特率 / 数据率 | 效率 | 用途 |
|---|---|---|---|---|
| NRZ(不归零) | 否 | 1 | 100.0% | 简单基带传输 |
| 曼彻斯特 | 是 | 2 | 50.0% | 10BASE-T 以太网 |
| 差分曼彻斯特 | 是 | 2 | 50.0% | 令牌环网 |
| 4B/5B | 配合 NRZI 才有 | 1.25 | 80.0% | 100BASE-TX |
| 8B/10B | 配合 NRZI 才有 | 1.25 | 80.0% | 千兆以太网、PCIe |
⚠️ 三条必考结论:
- 曼彻斯特编码的波特率是数据率的 2 倍——所以 10 Mbps 的 10BASE-T 需要 20 MHz 带宽(这是"10BASE-T 用双绞线只能跑到 10 Mbps"的物理原因)。
- 4B/5B 的效率是 80%(波特率只涨 25%)——所以 100BASE-TX 用 125 MBaud 传 100 Mbps。它是"用一点冗余换足够的跳变密度"的折中(4 位数据映射成 5 位码字,保证不出现长串 0)。
- "效率"= 数据率 ÷ 波特率 =
——NRZ 100%、曼彻斯特 50%、4B/5B 与 8B/10B 都是 80%。
五、PCM:模拟数据怎么变成数字信号
PCM(Pulse Code Modulation,脉冲编码调制)分三步:采样 → 量化 → 编码。
text
① 采样: 按采样定理 f_s >= 2 * f_max 取样
语音带宽 300~3400 Hz -> f_max = 3400 Hz -> 理论 f_s >= 6800 Hz
实用取 f_s = 8000 Hz (留余量, 也照顾滤波器不理想)
② 量化: 把连续幅度切成有限个级别
8 bit -> 2^8 = 256 级
③ 编码: 每个量化值编成 8 位二进制
数据率 = 8000 * 8 = 64000 bps = 64 kbps量化信噪比公式(对满量程正弦波):
| 量化位数 | 量化级数 | 量化信噪比 | 一路的数据率( |
|---|---|---|---|
| 7 bit | 128 | 43.90 dB | 56.0 kbps |
| 8 bit | 256 | 49.92 dB | 64.0 kbps |
| 12 bit | 4096 | 74.00 dB | 96.0 kbps |
| 16 bit | 65536 | 98.08 dB | 128.0 kbps |
⚠️ "每加 1 bit 量化位数,信噪比涨 6 dB"——这就是"16 bit 音频比 8 bit 明显更干净"的定量解释(
dB,涨了 8 倍多)。64 kbps 这个数字(8000 × 8)就是传统电话的"一路"带宽,也是"为什么语音能压到 64 kbps 以下就算压缩"的基准线。
六、传输介质与信道复用
传输介质分两类:
| 类型 | 介质 | 特点 | 典型速率 |
|---|---|---|---|
| 导引型(有线) | 双绞线(UTP/STP) | 便宜、易布线、抗干扰弱(用双绞 + 差分抵消) | Cat5e:1 Gbps/100 m |
| 同轴电缆 | 抗干扰强、带宽大,但笨重、成本高 | 早期以太网、有线电视 | |
| 光纤 | 带宽极大、损耗低、抗电磁干扰、不串音 | 单模可跨数十 km | |
| 非导引型(无线) | 无线电 / 微波 / 红外 | 无需布线,受环境影响大 | Wi-Fi、4G/5G |
光纤两种:
| 类型 | 芯径 | 光源 | 传播方式 | 距离 |
|---|---|---|---|---|
| 单模光纤 | 细(约 8~10 μm) | 激光 | 只有一条光路 | 远(数十 km) |
| 多模光纤 | 粗(50/62.5 μm) | LED | 多条光路同时传播 | 近(几百 m ~ 2 km) |
信道复用(四种,必背名字):
| 方式 | 全称 | 分什么 | 一句话 |
|---|---|---|---|
| FDM | 频分多路复用 | 频率 | 把频带切成几段,各占一段,同时用 |
| TDM | 时分多路复用 | 时间 | 把时间切成时隙,各占一个,轮流用 |
| WDM | 波分多路复用 | 波长 | 光纤上按波长分(本质是"光域的 FDM") |
| CDM | 码分多路复用 | 码型 | 各用户用正交的码,同一频段同时发 |
⚠️ CDM 最容易答错:CDM 的用户是"同时同频"发送的,区分靠"码型正交"(内积为零)——它不是"分频率"也不是"分时间",这与前三种有本质区别。
七、物理层设备:中继器与集线器
| 设备 | 功能 | 局限 |
|---|---|---|
| 中继器(repeater) | 对信号整形、放大、再生后转发 | 只连两个网段;不能隔离冲突域 |
| 集线器(hub) | 多端口的中继器 | 所有端口共享带宽(一个口发,所有口收);不能隔离冲突域 |
⚠️ "为什么集线器效率低":它工作在物理层,不认 MAC 地址——端口 A 发包时,端口 B、C、D 都收到(虽然目标不是它们),于是同一时刻只能有一个端口在发,这就是"共享带宽"。 换成交换机(数据链路层)后,每个口独享带宽。
示例
例 1:C 实现——奈氏容量、香农容量与编码带宽
参数:带宽
= 3000 / 4000 Hz;码元电平数 = 2/4/8/16;信噪比 20/30/40 dB。
#include <stdio.h>
#include <math.h> /* log2 / pow —— Linux 下编译要加 -lm */
int main(void) {
double ws[2] = {3000.0, 4000.0};
int vs[4] = {2, 4, 8, 16};
double shw[4] = {3000.0, 3000.0, 3000.0, 4000.0};
int dbs[4] = {20, 30, 40, 30};
const char *nm[3] = {"NRZ", "Manchester", "4B/5B"};
double k[3] = {1.0, 2.0, 1.25};
double rate[2] = {10.0, 100.0};
int i, j;
printf("奈奎斯特 C = 2W log2(V)\n");
for (i = 0; i < 2; i++) {
for (j = 0; j < 4; j++) {
double c = 2.0 * ws[i] * log2((double)vs[j]);
printf(" W = %5.0f Hz, V = %2d -> C = %9.2f bps = %7.2f kbps\n",
ws[i], vs[j], c, c / 1000.0);
}
}
printf("\n香农 C = W log2(1+S/N)\n");
for (i = 0; i < 4; i++) {
double snr = pow(10.0, dbs[i] / 10.0); /* 由分贝还原 S/N */
double c = shw[i] * log2(1.0 + snr);
printf(" W = %5.0f Hz, SNR = %2d dB (S/N = %.4f) -> C = %9.2f bps = %7.2f kbps\n",
shw[i], dbs[i], snr, c, c / 1000.0);
}
printf("\n编码效率与带宽需求\n");
for (i = 0; i < 3; i++) {
for (j = 0; j < 2; j++) {
/* 波特率 = 数据率 x k, 带宽需求约等于波特率 */
printf(" %-10s %3.0f Mbps -> 波特率 %6.2f MBaud, 带宽 %6.2f MHz, 效率 %5.1f%%\n",
nm[i], rate[j], rate[j] * k[i], rate[j] * k[i], 100.0 / k[i]);
}
}
return 0;
}
c 本站为静态站,不提供在线运行;可复制到本地用 gcc / python 执行
预期输出:
奈奎斯特 C = 2W log2(V)
W = 3000 Hz, V = 2 -> C = 6000.00 bps = 6.00 kbps
W = 3000 Hz, V = 4 -> C = 12000.00 bps = 12.00 kbps
W = 3000 Hz, V = 8 -> C = 18000.00 bps = 18.00 kbps
W = 3000 Hz, V = 16 -> C = 24000.00 bps = 24.00 kbps
W = 4000 Hz, V = 2 -> C = 8000.00 bps = 8.00 kbps
W = 4000 Hz, V = 4 -> C = 16000.00 bps = 16.00 kbps
W = 4000 Hz, V = 8 -> C = 24000.00 bps = 24.00 kbps
W = 4000 Hz, V = 16 -> C = 32000.00 bps = 32.00 kbps
香农 C = W log2(1+S/N)
W = 3000 Hz, SNR = 20 dB (S/N = 100.0000) -> C = 19974.63 bps = 19.97 kbps
W = 3000 Hz, SNR = 30 dB (S/N = 1000.0000) -> C = 29901.68 bps = 29.90 kbps
W = 3000 Hz, SNR = 40 dB (S/N = 10000.0000) -> C = 39863.57 bps = 39.86 kbps
W = 4000 Hz, SNR = 30 dB (S/N = 1000.0000) -> C = 39868.91 bps = 39.87 kbps
编码效率与带宽需求
NRZ 10 Mbps -> 波特率 10.00 MBaud, 带宽 10.00 MHz, 效率 100.0%
NRZ 100 Mbps -> 波特率 100.00 MBaud, 带宽 100.00 MHz, 效率 100.0%
Manchester 10 Mbps -> 波特率 20.00 MBaud, 带宽 20.00 MHz, 效率 50.0%
Manchester 100 Mbps -> 波特率 200.00 MBaud, 带宽 200.00 MHz, 效率 50.0%
4B/5B 10 Mbps -> 波特率 12.50 MBaud, 带宽 12.50 MHz, 效率 80.0%
4B/5B 100 Mbps -> 波特率 125.00 MBaud, 带宽 125.00 MHz, 效率 80.0%⚠️ 三点说明:
- 编码名一律用 ASCII(
NRZ/Manchester/4B/5B)——C 的%-10s按字节补宽度,曼彻斯特是 12 字节,宽度说明符会失效。中文名"曼彻斯特编码"写在正文里即可。 pow(10.0, dbs[i] / 10.0)里的10.0不能写成10——dbs[i] / 10是整数除法,30/10 = 3 侥幸没错,但 25/10 = 2 就错了(凡是"分贝转倍数"一律写成浮点除法)。- 本机无 C 编译器:此段代码逐行人工审查,并用等价的 Python 实现实跑核对,输出 23 行逐字一致(含
log2()/pow()的数值精度)。
例 2:Python——波特率换算、两定理联合、编码与 PCM
import math
def pad(s, w):
"""按"显示宽度"补空格: 中文算 2 列, 否则终端里对不齐"""
return s + ' ' * max(0, w - sum(2 if ord(c) > 0x2000 else 1 for c in s))
print('=== ① 码元与比特: 波特率 vs 比特率 ===')
print(' 规则: 比特率 = 波特率 x log2(V), V = 一个码元的离散电平数')
print(' ' + pad('码元电平数 V', 16) + pad('每码元携带', 14) + '波特率 2000 Baud 时的比特率')
for V in [2, 4, 8, 16, 32]:
k = math.log2(V)
print(' ' + pad(str(V), 16) + pad('%.0f bit' % k, 14) + '%.0f bps' % (2000 * k))
print(' ★ 波特率是码元速率、比特率是信息速率; V > 2 时比特率 > 波特率')
print()
print('=== ② 奈奎斯特定理(理想无噪声低通信道) C = 2W log2 V ===')
for W in [3000, 4000]:
for V in [2, 4, 8, 16]:
c = 2 * W * math.log2(V)
print(' W = %5d Hz, V = %2d -> C = %9.2f bps = %7.2f kbps' % (W, V, c, c / 1000))
print()
print('=== ③ 香农定理(有噪声) C = W log2(1 + S/N) ===')
for W, db in [(3000, 20), (3000, 30), (3000, 40), (4000, 30)]:
snr = 10 ** (db / 10.0)
c = W * math.log2(1 + snr)
print(' W = %5d Hz, SNR = %2d dB (S/N = %.0f) -> C = %9.2f bps = %7.2f kbps'
% (W, db, snr, c, c / 1000))
print(' ★ S/N(dB) = 10 lg(S/N); 30 dB 就是 S/N = 1000')
print()
print('=== ④ 两定理联合: 实际数据率取小 ===')
W, db = 3000, 30
snr = 10 ** (db / 10.0)
sh = W * math.log2(1 + snr)
print(' W = %d Hz, SNR = %d dB -> 香农极限 %.2f bps (固定不变)' % (W, db, sh))
print(' ' + pad('码元电平 V', 12) + pad('奈氏上限', 14) + pad('香农上限', 14) + '实际上限')
for V in [2, 4, 8, 16, 32]:
ny = 2 * W * math.log2(V)
lim = min(ny, sh)
print(' ' + pad(str(V), 12) + pad('%.2f' % ny, 14) + pad('%.2f' % sh, 14)
+ '%.2f (%s)' % (lim, '奈氏' if ny < sh else '香农'))
print(' ★ 信噪比固定时, 一味提高 V 突破不了香农极限 V=32 时奈氏 30000 > 香农 29901.68')
print()
print('=== ⑤ 编码效率与带宽需求 ===')
print(' ' + pad('编码', 18) + pad('波特率/数据率', 16) + pad('效率', 10) + '传 100 Mbps 需要')
for nm, k in [('NRZ(不归零)', 1.0), ('曼彻斯特', 2.0), ('差分曼彻斯特', 2.0),
('4B/5B', 1.25), ('8B/10B', 1.25)]:
print(' ' + pad(nm, 18) + pad('%.2f' % k, 16) + pad('%.1f%%' % (100.0 / k), 10)
+ '%.2f MBaud (带宽 %.2f MHz)' % (100 * k, 100 * k))
print(' ★ 曼彻斯特把波特率翻倍 -> 10 Mbps 要 20 MHz; 4B/5B 只涨 25% -> 100 Mbps 要 125 MHz')
print()
print('=== ⑥ PCM: 模拟语音怎么变成 64 kbps ===')
fmax, fs, n = 3400.0, 8000.0, 8
print(' 语音 f_max = %.0f Hz -> 采样定理要求 f_s >= 2*f_max = %.0f Hz' % (fmax, 2 * fmax))
print(' 实用取 f_s = %.0f Hz; 量化 %d bit -> 级数 2^%d = %d' % (fs, n, n, 2 ** n))
print(' 数据率 = %.0f x %d = %.0f bps = %.0f kbps' % (fs, n, fs * n, fs * n / 1000))
print(' ' + pad('量化位数 n', 12) + pad('量化级数', 12) + pad('量化信噪比', 14) + '数据率(8000 Hz)')
for n2 in [7, 8, 12, 16]:
print(' ' + pad('%d bit' % n2, 12) + pad(str(2 ** n2), 12)
+ pad('%.2f dB' % (6.02 * n2 + 1.76), 14) + '%.1f kbps' % (fs * n2 / 1000))
print(' ★ 每多 1 bit, 量化信噪比涨约 6 dB; 8 bit 一路语音 = 64 kbps')
print()
print('=== ⑦ 信道复用 ===')
mux = [('FDM', '频率', '把频带切成几段, 各占一段, 同时用'),
('TDM', '时间', '把时间切成时隙, 各占一个, 轮流用'),
('WDM', '波长', '光纤上按波长分(光域的 FDM)'),
('CDM', '码型', '各用户用正交的码, 同一频段同时发')]
print(' ' + pad('方式', 8) + pad('分什么', 10) + '一句话要点')
for r in mux:
print(' ' + pad(r[0], 8) + pad(r[1], 10) + r[2])
print(' ★ CDM 是"同时同频", 靠码型正交区分, 与前三种有本质区别')
python 本站为静态站,不提供在线运行;可复制到本地用 gcc / python 执行
输出对照(真实运行结果):
=== ① 码元与比特: 波特率 vs 比特率 ===
规则: 比特率 = 波特率 x log2(V), V = 一个码元的离散电平数
码元电平数 V 每码元携带 波特率 2000 Baud 时的比特率
2 1 bit 2000 bps
4 2 bit 4000 bps
8 3 bit 6000 bps
16 4 bit 8000 bps
32 5 bit 10000 bps
★ 波特率是码元速率、比特率是信息速率; V > 2 时比特率 > 波特率
=== ② 奈奎斯特定理(理想无噪声低通信道) C = 2W log2 V ===
W = 3000 Hz, V = 2 -> C = 6000.00 bps = 6.00 kbps
W = 3000 Hz, V = 4 -> C = 12000.00 bps = 12.00 kbps
W = 3000 Hz, V = 8 -> C = 18000.00 bps = 18.00 kbps
W = 3000 Hz, V = 16 -> C = 24000.00 bps = 24.00 kbps
W = 4000 Hz, V = 2 -> C = 8000.00 bps = 8.00 kbps
W = 4000 Hz, V = 4 -> C = 16000.00 bps = 16.00 kbps
W = 4000 Hz, V = 8 -> C = 24000.00 bps = 24.00 kbps
W = 4000 Hz, V = 16 -> C = 32000.00 bps = 32.00 kbps
=== ③ 香农定理(有噪声) C = W log2(1 + S/N) ===
W = 3000 Hz, SNR = 20 dB (S/N = 100) -> C = 19974.63 bps = 19.97 kbps
W = 3000 Hz, SNR = 30 dB (S/N = 1000) -> C = 29901.68 bps = 29.90 kbps
W = 3000 Hz, SNR = 40 dB (S/N = 10000) -> C = 39863.57 bps = 39.86 kbps
W = 4000 Hz, SNR = 30 dB (S/N = 1000) -> C = 39868.91 bps = 39.87 kbps
★ S/N(dB) = 10 lg(S/N); 30 dB 就是 S/N = 1000
=== ④ 两定理联合: 实际数据率取小 ===
W = 3000 Hz, SNR = 30 dB -> 香农极限 29901.68 bps (固定不变)
码元电平 V 奈氏上限 香农上限 实际上限
2 6000.00 29901.68 6000.00 (奈氏)
4 12000.00 29901.68 12000.00 (奈氏)
8 18000.00 29901.68 18000.00 (奈氏)
16 24000.00 29901.68 24000.00 (奈氏)
32 30000.00 29901.68 29901.68 (香农)
★ 信噪比固定时, 一味提高 V 突破不了香农极限 V=32 时奈氏 30000 > 香农 29901.68
=== ⑤ 编码效率与带宽需求 ===
编码 波特率/数据率 效率 传 100 Mbps 需要
NRZ(不归零) 1.00 100.0% 100.00 MBaud (带宽 100.00 MHz)
曼彻斯特 2.00 50.0% 200.00 MBaud (带宽 200.00 MHz)
差分曼彻斯特 2.00 50.0% 200.00 MBaud (带宽 200.00 MHz)
4B/5B 1.25 80.0% 125.00 MBaud (带宽 125.00 MHz)
8B/10B 1.25 80.0% 125.00 MBaud (带宽 125.00 MHz)
★ 曼彻斯特把波特率翻倍 -> 10 Mbps 要 20 MHz; 4B/5B 只涨 25% -> 100 Mbps 要 125 MHz
=== ⑥ PCM: 模拟语音怎么变成 64 kbps ===
语音 f_max = 3400 Hz -> 采样定理要求 f_s >= 2*f_max = 6800 Hz
实用取 f_s = 8000 Hz; 量化 8 bit -> 级数 2^8 = 256
数据率 = 8000 x 8 = 64000 bps = 64 kbps
量化位数 n 量化级数 量化信噪比 数据率(8000 Hz)
7 bit 128 43.90 dB 56.0 kbps
8 bit 256 49.92 dB 64.0 kbps
12 bit 4096 74.00 dB 96.0 kbps
16 bit 65536 98.08 dB 128.0 kbps
★ 每多 1 bit, 量化信噪比涨约 6 dB; 8 bit 一路语音 = 64 kbps
=== ⑦ 信道复用 ===
方式 分什么 一句话要点
FDM 频率 把频带切成几段, 各占一段, 同时用
TDM 时间 把时间切成时隙, 各占一个, 轮流用
WDM 波长 光纤上按波长分(光域的 FDM)
CDM 码型 各用户用正交的码, 同一频段同时发
★ CDM 是"同时同频", 靠码型正交区分, 与前三种有本质区别七条结论:
- 比特率 = 波特率 ×
: 时两者相等; 时 2000 Baud 能传 10000 bps——"一个码元装几个比特"就是把波特率放大几倍。 - 奈氏与香农是两个不同维度的天花板:奈氏看"带宽 + 电平数",香农看"带宽 + 信噪比"——本锚点下
Hz、SNR = 30 dB 的香农极限是固定的 29901.68 bps。 - 联合使用时"取小":
时奈氏更紧(6000/12000/18000/24000); 时奈氏算出 30000 bps,但香农只有 29901.68 bps,于是上限被香农卡住——"提高电平数不能突破信噪比所允许的极限",这就是那条著名的结论。 - 编码效率决定"要多少带宽":同样传 100 Mbps,NRZ 要 100 MHz、4B/5B 要 125 MHz、曼彻斯特要 200 MHz——这就是"为什么 100BASE-TX 选 4B/5B 而不选曼彻斯特"。
- PCM 的 64 kbps 是"一路语音"的标定值:
;量化位数每加 1 bit,信噪比涨 6.02 dB(8 → 16 bit 涨了 dB)。 - 量化信噪比与"级数"的关系:级数翻一倍(多 1 bit)→ 信噪比涨 6 dB,这是"用比特换动态范围"的定量表述(与
art/09-dip.md里"14 档动态范围 = 16384 级"是同一件事)。 - 四种复用各分一样东西:FDM 分频率、TDM 分时间、WDM 分波长、CDM 分码型;只有 CDM 是"同时同频"。
考点
考点
1. 必背结论
- 物理层任务:在传输介质上透明地传输比特流;"透明"= 不看内容、原样送过去。
- 四大特性:机械特性 / 电气特性 / 功能特性 / 规程特性(过程特性)。
- 五个术语:数据 / 信号 / 码元 / 波特率(Baud)/ 比特率(bps)。
- ★ 核心公式:
( 是码元的离散电平数)。 - ★ 奈奎斯特定理(理想无噪声):
(bps)——" "是码元速率上限,与噪声无关。 - ★ 香农定理(有噪声):
(bps)——与编码方式无关,只看带宽与信噪比。 - 信噪比换算:
;30 dB → 。 - 两者联合:实际数据率
。 - "两个奈奎斯特"要分清:信道容量
vs 采样定理 。 - 编码三型:NRZ(不自同步、效率 100%)/ 曼彻斯特(自同步、效率 50%)/ 差分曼彻斯特(自同步、效率 50%);4B/5B 与 8B/10B 效率都是 80%(波特率 = 1.25 × 数据率)。
- 曼彻斯特的关键数:波特率是数据率的 2 倍 → 10 Mbps 需 20 MBaud(带宽 20 MHz)。
- PCM 三步:采样 → 量化 → 编码;量化信噪比
dB。 - 复用四法:FDM(频率)/ TDM(时间)/ WDM(波长)/ CDM(码型);只有 CDM 同时同频。
- 物理层设备:中继器(两端口再生)/ 集线器(多端口中继器);都工作在物理层,都不能隔离冲突域。
- 光纤:单模(细芯 + 激光 + 一条光路 + 远距离)/ 多模(粗芯 + LED + 多条光路 + 近)。
- 锚点(本章定死):
Hz、 → 奈氏 24000 bps; Hz、SNR = 30 dB → 香农 29901.68 bps;联合上限 = 24000 bps。 - 锚点(编码):传 100 Mbps —— NRZ 100 MBaud / 4B/5B 125 MBaud / 曼彻斯特 200 MBaud。
- 锚点(PCM):语音
Hz → Hz、实用 8000 Hz;8 bit → 256 级 → 64 kbps;量化信噪比 49.92 dB。
2. 高频陷阱
- 把"波特率"与"比特率"当同一个东西:错。波特率是码元速率,比特率是信息速率——只有
时才相等。 - 算比特率时忘记乘
:错。 、波特率 2000 Baud → 比特率 4000 bps,不是 2000 bps。 - 把奈氏与香农的适用条件搞反:错。奈氏是"理想无噪声"、香农是"有噪声"——题目给"信噪比"就必须用香农,给"电平数"就用奈氏。
- 把奈氏公式写成
:错。前面有系数 2( )——漏掉 2 是最常见的公式错。 - 分贝换算写成
:错。必须是 ——30 dB 是 1000 倍,不是 300 倍。 - 算
时用整数除法:错。db / 10在 C 里是整数除法(25 dB 会被算成 2),必须写db / 10.0。 - 认为"提高电平数就能无限提高速率":错。电平数提高受"码间串扰"和"信噪比"双重限制——本例
时奈氏算出 30000 bps,但香农极限只有 29901.68 bps,于是被卡住。 - 把"两个奈奎斯特"混为一个:错。信道容量
与采样定理 是两个不同定理,都姓奈奎斯特但内容无关。 - 认为"曼彻斯特编码效率高":错。它效率只有 50%(波特率是数据率的 2 倍)——它的优点是"自同步",不是"高效"。
- 把 4B/5B 的波特率算成 2 倍数据率:错。4B/5B 是 4 位数据映射成 5 位码,波特率 = 1.25 × 数据率(效率 80%,不是 50%)。
- 认为"集线器能隔离冲突域":错。集线器是物理层设备,所有端口共享带宽、同属一个冲突域——隔离冲突域是交换机(链路层)的功能。
- 把"带宽"的两种含义混用:错。频域上是 Hz,时域上是 bps——题目给 Hz 就用奈氏/香农公式,给 bps 就直接是数据率。
- 认为 PCM 的采样率就是"语音最高频率":错。采样率要
(3400 Hz → 至少 6800 Hz,实用 8000 Hz)——把 8000 写成 3400 就全错了。 - 把 CDM 说成"把频率分给不同用户":错。CDM 的用户同时同频发送,靠"码型正交"区分——分频率是 FDM。
3. 解题模板("物理层计算题")
① 先分类: 题目给的是"理想无噪声"还是"有噪声"?
给"码元电平数 V" -> 用奈氏 C = 2W log2 V
给"信噪比 dB" -> 用香农 C = W log2(1 + S/N)
两个都给 -> 两式都算, 取小
② 分贝换算: S/N = 10^(dB/10) (30 dB -> 1000; 20 dB -> 100; 40 dB -> 10000)
③ 比特率/波特率: 比特率 = 波特率 x log2(V); 反过来 波特率 = 数据率 x k
其中 k 由编码决定: NRZ 1.0 / 曼彻斯特 2.0 / 4B5B 与 8B10B 1.25
④ 编码题: "传 R Mbps 需要多少带宽" -> 波特率 = R x k, 带宽需求约等于波特率
⑤ PCM: f_s >= 2 f_max (语音 3400 -> 8000 Hz); 数据率 = f_s x n
量化信噪比 = 6.02n + 1.76 dB
⑥ 复用题: 认清"分的是什么"—— 频率/时间/波长/码型4. 与相邻章节的接口
net/01-architecture.md(体系结构):本章是上一章"物理层"那一行的展开;上一章的"每层加首部"最底下那一层就是本章的"编码"。net/20-framing.md与net/23-csma.md(数据链路层):"以太网用曼彻斯特编码"直接来自本章——10BASE-T 的 20 MHz 带宽就是本章算出来的。net/24-ethernet.md(以太网与交换机):"集线器 vs 交换机"的差别就是本章最后一节——一个是物理层设备(共享带宽),一个是链路层设备(独享带宽)。silicon/与elec/01-signal.md(主线 L0/L1):"用电压表示 0/1""信号的频率成分""带宽"这些概念在主线里已经打过底子——本章把它们第一次用在"通信能有多快"这个问题上,这也是本站"由硅到 C"把网络放在最后的理由:物理层是整个网络的"硅层"。arch/12-cache.md(Cache)与os/31-disk.md(磁盘):"传输率 = 每道字节 × 转速"与"传输率 = 波特率 × 每码元比特"是同一个乘法结构的两种场景——"单位时间搬运多少信息"的算法到处一样。art/09-dip.md(数字图像处理):"量化位数决定信噪比"与"伽马/位深决定动态范围"是同一件事——都是"用有限的位数表示连续的幅度"。
小结
- 物理层 = 比特与信号之间的翻译层;四大特性:机械 / 电气 / 功能 / 规程。
- 比特率 = 波特率 ×
; 时才相等。 - ★ 奈奎斯特定理(理想无噪声):
;锚点 、 → 24000 bps。 - ★ 香农定理(有噪声):
;30 dB → → 锚点 29901.68 bps。 - 两式联合取小:
受奈氏限制; 时奈氏 30000 > 香农 29901.68,被香农卡住。 - 编码效率:NRZ 100% / 曼彻斯特与差分曼彻斯特 50% / 4B-5B 与 8B-10B 80%;传 100 Mbps 分别需要 100 / 200 / 125 MBaud。
- PCM 三步:采样 → 量化 → 编码;语音 3400 Hz →
Hz(实用 8000)→ 8 bit → 64 kbps;量化信噪比 dB。 - 信道复用:FDM 分频率 / TDM 分时间 / WDM 分波长 / CDM 分码型(只有 CDM 同时同频)。
- 传输介质:双绞线 / 同轴 / 光纤(单模远、多模近)/ 无线。
- 物理层设备:中继器、集线器——都不能隔离冲突域。
下一篇:封装成帧与透明传输
评论(0)
当前浏览器不允许本地存储,评论无法保存。
还没有评论,来说两句。