香农公式:有噪声时,一条线最多能塞多少比特#
视频讲解 https://www.bilibili.com/video/BV1xinz6CEYf/
知识点口径:谢希仁《计算机网络》(第 8 版 2.2.3 信道的极限容量,p46–47)
一句话讲清#
奈氏准则假设"没有噪声",可现实里噪声永远在。香农给了有噪声信道的绝对天花板:
C = W · log₂(1 + S/N)
带宽或信噪比越大,极限速率越高;但只要 W 和 S/N 定了,不管你把编码玩出什么花来,都突不破这个数。
一、从哪来:奈氏准则漏掉了什么#
奈氏准则的前提是"不考虑噪声影响"。这是个理想假设。
现实里,噪声到处都在:
| 噪声来源 | 例子 |
|---|---|
| 热噪声 | 电子在导体里乱窜,任何温度高于绝对零度的导体都有 |
| 串扰 | 相邻线对之间的电磁耦合(双绞线为什么要"绞") |
| 脉冲噪声 | 电机启停、雷击、开关打火 |
| 干扰 | 别的信号、外界电磁场 |
噪声的杀伤方式是"淹没":你发的信号再强,只要噪声足够大,接收端看到的就是一锅粥。
而且噪声是相对的:
信号强,噪声影响就相对小;信号弱,噪声就盖过你。
所以真正决定"能不能认出来"的,不是"信号多强",而是"信号比噪声强多少倍"。
二、信噪比与分贝#
定义:
信噪比 S/N = 信号的平均功率 / 噪声的平均功率
这个比值实际中往往大得离谱(几万、几十万),所以习惯用分贝(dB)表示:
信噪比(dB) = 10 · log₁₀(S/N)
记住这组对照(教材原例):
| S/N | 信噪比(dB) |
|---|---|
| 10 | 10 dB |
| 100 | 20 dB |
| 1000 | 30 dB |
| 10 000 | 40 dB |
反解:看到 dB 想求 S/N,用
S/N = 10^(dB/10)。 30 dB → 10³ = 1000; 注意系数是 10,不是 20(20 是电压/电流的系数,功率比用 10)。
三、香农公式#
C = W · log₂(1 + S/N)(bit/s)
| 符号 | 含义 | 单位 |
|---|---|---|
| C | 信道的极限信息传输速率(信道容量) | bit/s |
| W | 信道的带宽 | Hz |
| S | 信道内所传信号的平均功率 | W |
| N | 信道内部的高斯噪声功率 | W |
| S/N | 信噪比(这是比值,不是 dB 数) | 无量纲 |
三条推论#
① 带宽越大,极限速率越高
但是不是线性的,也不是无限的。因为噪声功率和带宽成正比(N = n₀·W),W 变大噪声也变大:
W → ∞ 时,C → 1.44 · S/n₀ (n₀ 为单位频带内的噪声功率)
不是无穷大。 这是香农公式里最反直觉的一条。
② 信噪比越大,极限速率越高
但也是对数级的:S/N 翻一倍,C 只涨一点点。想把速率翻一倍,S/N 得涨到平方级(比如从 1000 涨到 100 万)。
③ 只要速率低于 C,就一定存在办法实现无差错传输
这是香农公式最了不起的地方——它是个存在性结论:
只要信息传输速率低于信道的极限信息传输速率,就一定可以找到某种办法来实现无差错的传输。
注意:公式只保证"存在",不告诉你那个办法长什么样。为了"找出那个办法",人类研究了几十年,才有 Turbo 码、LDPC 码、Polar 码。这就是编码理论的全部意义。
四、香农公式最狠的一点:里面没有 V#
对比一下:
奈氏(推论): C = 2W · log₂V ← V 在这儿,是你能动手的东西
香农: C = W · log₂(1 + S/N) ← V 消失了
第 1 集里,V 是你能控制的东西——换个调制方式(QPSK → 256QAM)就能改。到了香农公式这儿,V 彻底消失了。
不是 V 不重要,而是 V 再大也抬不高天花板的高度。
这说明什么?
不管你用什么调制方式、什么编码方式,只要带宽 W 和信噪比 S/N 定死了,比特率上限就定死了。
V 不是自由度,V 只是"在一个给定的天花板下面,你选择怎么分配"。天花板本身由 W 和 S/N 决定。
教材里那句总结最准:
香农公式告诫工程人员:在实际有噪声的信道上,不论采用多么复杂的编码技术,都不可能突破信息传输速率的绝对极限。
五、三个知识点怎么串起来#
到这儿三集就闭合了:
第 1 集 码元: 比特率 = 码元速率 × log₂V ← 建立关系
第 2 集 奈氏: 码元速率 ≤ 2W ← 卡住"乘号左边"
第 3 集 香农: 比特率 ≤ W·log₂(1 + S/N) ← 卡住"整个乘积"
实际设计时的流程:
① 已知带宽 W、最差信噪比 S/N
② 先算香农极限 C = W·log₂(1 + S/N) ← 硬天花板,绕不过
③ 目标速率 R 必须 < C
④ 每个码元需要带的比特数 = R / (2W) ← 这里用到奈氏的 2W
⑤ 选调制:log₂V ≥ R / (2W) → 决定用几阶 QAM ← 这里回到第 1 集的 V
注意 ④⑤ 两步:它们把三个知识点全用上了。 这就是"从哪来到哪去"——公式不是用来背的,是用来做设计决策的。
两个天花板取小的:
实际可用上限 ≈ min( 2W·log₂V , W·log₂(1+S/N) )
六、算例:电话线为什么卡在 30 kbit/s#
题目:电话线的频率范围是 300 ~ 3400 Hz(带宽 3100 Hz),信噪比 30 dB,求极限速率。
解:
第一步:dB 转比值
30 dB → S/N = 10^(30/10) = 1000
第二步:代入香农公式
C = 3100 × log₂(1 + 1000)
= 3100 × log₂(1001)
≈ 3100 × 9.97
≈ 30.9 kbit/s
约 30 kbit/s
结论:这条线的极限就是 30 kbit/s 左右。
这解释了一个历史现象#
拨号 Modem 的速度演进:
| 年代 | 速率 | 说明 |
|---|---|---|
| 早期 | 300 / 1200 / 2400 bit/s | 离极限很远,调制技术粗糙 |
| 1990s 中期 | 14.4k / 28.8k / 33.6k bit/s | 慢慢逼近 30 kbit/s 这条线 |
| 1998 年 | 56 kbit/s(V.90) | 看起来突破了香农,其实没有 |
56k 是怎么做到的?
标准拨号要经过两次模数转换(用户端 → 电话网 → ISP 端),每次转换都引入量化噪声。
V.90 的办法:让 ISP 端直接数字接入,只保留用户端一次 A/D 转换 → 等效于噪声少了一层 → 极限从 30 kbit/s 抬到接近 64 kbit/s(8 kHz 采样 × 8 bit),扣掉开销后约 56 kbit/s。
所以 56k 不是"突破了香农",而是"换了一个噪声更小的信道"。 香农公式一步都没被违反。
七、到哪去:人类是怎么提速的#
从 56k 到 5G,只干了三件事——全在这两个公式里:
| 手段 | 公式里的位置 | 具体做法 |
|---|---|---|
| 把带宽 W 弄大 | W | ADSL 从 4 kHz → 1.1 MHz;Wi-Fi 从 20 MHz → 160 MHz;5G 从 100 MHz → 400 MHz |
| 把信噪比 S/N 弄好 | S/N | 光纤替代铜线、缩短中继距离、更好的屏蔽、波束赋形 |
| 把每个码元的比特数弄高 | V(log₂V) | QPSK → 16QAM → 64QAM → 256QAM → 1024QAM |
一条技术演进线,全用两个公式解释#
| 技术 | 关键动作 | 公式解释 |
|---|---|---|
| 拨号 56k | 减少一次 A/D 转换 | 提高 S/N |
| ADSL 8M | 用频分复用把带宽拓到 1.1 MHz | 提高 W |
| VDSL2 100M | 带宽拓到 17 MHz + 缩短铜线 | 提高 W 和 S/N |
| Wi-Fi 6 | 160 MHz 带宽 + 1024QAM + OFDMA | W↑ V↑ |
| 5G | 100/400 MHz 带宽 + 256QAM + MIMO | W↑ V↑,MIMO 相当于多条信道并行 |
MIMO 是个有意思的例外:它不提高单条信道的 C,而是用多根天线开出了多条独立信道,容量直接乘以天线数。但它的理论根基还是香农公式。
八、本集易错点#
- 香农公式里的 S/N 是比值,不是 dB 数。题目给 dB 必须先换算:
S/N = 10^(dB/10)。 - dB 换算是 10 倍,不是 20 倍。30 dB = 1000,不是 101.5。
- log₂(1 + S/N) 的那个 "+1" 不能省。少了它结果会有偏差,考试题里 S/N 常设计成 2ᵏ−1,加上 1 正好凑整。
- 香农公式里没有 V。这说明"调制方式再好也突破不了 W 和 S/N 定下的上限"。
- W 增大不能换来无限速率。W→∞ 时 C → 1.44·S/n₀,因为噪声功率随带宽同步增加。
- 香农给的是"极限值",实际永远达不到。真实系统的速率通常只有极限的 30%~80%(取决于实现水平)。
- 香农公式只说"存在",不说"怎么做"。找到那个"办法"是编码理论的活儿。
- 奈氏准则和香农公式不是二选一。奈氏管码元速率,香农管比特速率,实际系统受两者共同约束。
九、关键表述依据#
| # | 表述 | 依据 |
|---|---|---|
| 1 | 信噪比 = 信号平均功率 / 噪声平均功率 | 谢希仁 2.2.3,p46 |
| 2 | 信噪比(dB) = 10·log₁₀(S/N);S/N=10 → 10 dB,S/N=1000 → 30 dB | 同上,p46 |
| 3 | 香农公式 C = W·log₂(1 + S/N);W 为带宽(Hz),S 为信号平均功率,N 为高斯噪声功率 | 同上,p47 |
| 4 | 信道的带宽或信噪比越大,信息的极限传输速率越高 | 同上 |
| 5 | 只要信息传输速率低于信道极限速率,就一定可以找到某种办法实现无差错传输 | 同上 |
| 6 | 有噪声信道上,不论编码多复杂,都不能突破信息传输速率的绝对极限 | 同上 |
| 7 | W→∞ 时 C → 1.44·S/n₀,并不趋向无限大 | 同上(延伸结论) |
| 8 | 提高信息传输速率的方法:用编码让每个码元携带更多比特 | 同上 |
| 9 | 电话线 3100 Hz、30 dB → C = 3100·log₂(1001) ≈ 30.9 kbit/s | 同上,p47 算例 |
| 10 | ADSL 保留 0~4 kHz 电话频带,另开 10~130 kHz 与 130~1100 kHz 传数据 | 通信常识(教材配套说明) |
| 11 | 高状态数解码要求信噪比达到相应数值 | 谢希仁 2.2.3,p47 |
| 12 | 噪声存在于所有电子设备和通信信道中;噪声影响是相对的 | 同上,p46 |