本节摘要:噪声是物理层的常客,而编码是它最讲究的对手——不是把错误藏起来,而是在发送时多带一点冗余、在收端据此把错揪出来。本节讲清码率、纠错与编码增益,再看交织怎么把"成片的错"打散成"零星的错",让纠错忙得过来。
承接 1.2 的信息论,本节把它那条"加冗余保值"的思路烧成实物:信道编码把可靠通信做到接近香农极限,交织再把信道的"坏脾气"喂给编码器之前先理顺脾气。
面临噪声,最省心的直觉是"多加功率硬推"。但第 1.2 章那条香农公式已经划了条底线,再看增大功率还有个更现实的坎——功率贵、线性顶不住、别人还被你干扰。于是信道编码选了另一条几乎白赚的路:在发送总量里多掺一点"多余的注释",收端靠这些注释把噪声咬坏的比特猜回来。
这笔钱花得值不值,看两个数。成本的数叫码率(1 码率=有效数据占发送总量的比例,越低越"费");收益的数叫编码增益(同一误码率下,编码把所需信噪比压低多少 dB)。给你一组直觉:面向一组典型的强编码,往往用百分之二三十的速率代价,就换来好几个 dB 的信噪比进项——而那几个 dB,换成功率是要成倍砸钱的,甚至砸不进去。所以编码是物理层账本上"用小钱换大信噪比"的典型,几乎每个正经系统都绕不开它。
更妙的是它还顺着一个理论方向走到头:卷积码、Turbo 码一路逼近香农极限,LDPC 与 Polar 码在新一代里担纲主力。你想的"怎么在有限信噪比下多抠出可靠性",正是这条编码演进史要回答的同一道题。带着"小钱换信噪比"的直觉进本节,后面那些码名和交织,都是在讲这套换法的不同手艺怎么练。
噪声总能把比特搅错。信道编码的思路是"发送时多写几句冗余,收端据此对个暗号"——一旦哪几位出差错,接收端能根据冗余把正确的猜回来。这就叫纠错。
代价是明摆着的:同样的信息要占更多的符号去发,有效速率打折,这就是码率(1 码率 = 有效数据占发送总量的比例)。可我划算在:投入一点码率,能换来一大截信噪比下限。 所谓编码增益,就是"在达到同样误码率的条件下,编码后所需信噪比比不编码低多少 dB"。这一进项,恰好补在 2.4 主表的可靠性科目上,是物理层账里最甜美的一笔。
编码的演进史就是一部逼近香农极限的接力:卷积码 → Turbo 码把逼近极限变成现实 → LDPC 码以高并行和低复杂度成为 4G/5G 数据信道主力 → Polar 码又在 5G 的信道控制信道拿到席位。今天你手机里几乎每比特用户数据,都由 LDPC 或 Polar 兜底。
编码增益的大小,画在误码率对信噪比的曲线上最直观——差的编码曲线陡一点就塌,好编码把相同误码率的门槛往左推好几个 dB。

读图的方法:在图上框住"你要的那档误码率",看无编码曲线对应到多大的信噪比、强编码曲线对应到多小——两者之差,就是这套编码的白拿进项。差得越多,越省钱。
只有编码还不够。无线信道的衰落常是"一阵一阵"的:要么好一阵,要么坏一阵。坏时间来临时,比特是成串错的,远超单比特纠错的本事。交织就是那根"打散的签筒"——发送前把顺序打乱,接收后再归位,让本来连续的成串错被拆成散落在各处的零星错。零星错再多,编码器也能逐个收拾;成串错再少,编码器也未必咬得动。
一句话:交织的作用是"把信道变老实一点",让编码器想救也救得到。
用一段脚本看码率与冗余的拉扯:
# 码率=有效数据/发送总量; 码率越低冗余越多、纠错越强但速率越伤 def rate_tradeoff(k, n): code_rate = k / n # k有效比特, n发送比特 redundancy = n - k return code_rate, redundancy for k, n in [(1,1),(3,4),(1,2),(1,3)]: r, red = rate_tradeoff(k, n) print(f"码率 {r:.2f} | 冗余占比 {red/n:.0%} | 速率牺牲 {1-r:.0%}")
看出规律:码率从 1 降到 0.33,冗余占比从 0 升到 2/3,换来的是更强纠错,代价是有效速率被砍到三分之二以外的可怜一半。工程上的艺术就在这——挑一个正好够保住可靠性、又不至于把吞吐砍太狠的码率。
还可以从"位置"上再给编码记一功:编码增益之所以敢进主表去补第 2.4 章的可靠性科目,是因为它几乎不碰物理资源的存量——不需要你多挖一段频谱、多立一根天线、多烧一份功率,它只在你已经发出的那部分比特里做文章,用"多写几笔注释"换回一截更可靠的信噪比门槛。这跟第 3.1 章"加天线换增益、加功率换余量"的路数很不一样:那几样都要真金白银地投入物理资源,而编码像是在同一份原料上做深加工。也正因如此,在系统预算吃紧、"加不动站、给不了功率"的角落,调整码率往往是最后还能压榨出一截可靠性余量的那张底牌。
再补一句关于"码率与 MCS 联动"的直觉:虽然本节讲的是编码,但它几乎从不单独上场——在第 3.4 章你会看到,调制阶数、编码码率、信道状态是捆绑在一张"调制与编码方案(MCS)表"里联动的。信道转好时,系统往高阶调制和低冗余编码那档走;信道恶化时,又一起退到低阶调制加高冗余的保命档。所以学编码不能只学"多带冗余",还要看懂它如何与调制一起,构成物理层那台随信道见风使舵的换挡器。这也再次说明:编码、调制、交织这些看似独立的技能,落到实处都是同一本链路预算账在不同科目上的合力。
常见坑:把交织当成纠错的一部分,或者反过来以为编码能扛住成串错。分工其实清晰:编码对付凌散的错,交织把成串的错打散成凌散的错。缺了交织,再强的编码在深衰落面前也白搭。