先讲一个法庭上的事。同样面对一个被告,有两种法官:一种只说“有罪”或者“无罪”,另一种说“证据八成指向有罪,但我保留两成怀疑”。哪种法官说的话对后续审判更有用?显然是后者——因为后面的合议庭可以根据“八成”和“五五开”做出完全不同的裁决。
接收机里的解调器,就站在这个法官的位置上。它收到的是从均衡器送来的一串星座点,任务是把这些点还原成比特。最常见的做法是“硬判决”:看这个点落在星座图上哪个判决格子里,格子对应什么比特,就输出什么比特。干脆利落,但这位法官只说死话。
本文要讲的,是那位聪明法官的做法——软判决解调:解调器输出的不是比特,而是“带置信度的比特”,它的数学名字叫对数似然比(LLR,Log-Likelihood Ratio)。这是现代所有纠错译码器(Turbo、LDPC、Polar)的第一口粮,也是HARQ能够“越传越准”的全部秘密。
看一个具体场景。64QAM的星座图上有64个点,接收到的某个点恰好落在两个判决区的分界线附近——离“A区的点”和“B区的点”的距离几乎一样近。
硬判决会怎么做?它看这个点差之毫厘落进了A区,于是大声宣判:“比特是101!”——注意,它输出的是一个斩钉截铁的101。
但真实情况是什么?这个点离B区只差一根头发丝,正确的答案有接近一半的可能性是110。硬判决把“十拿九稳的101”和“五五开的101”压成了完全相同的输出。判决边界之外的全部信息,被一台信息粉碎机销毁了。
为什么这件事致命?因为排在这条流水线下一站的,是纠错译码器。Turbo和LDPC这类码的工作原理,是让许多携带同一信息的声音互相投票,把彼此的小错误磨掉。投票的前提是每个选民要表达“我有多确定”。如果解调器只交上干巴巴的比特——每个都伪装成百分之百确定——译码器就只能盲投:它既不知道哪些比特可信、哪些可疑,更不知道一个可疑的比特在两个候选里更偏向哪一个。原本三票能救回的错,现在救不回来了。
所以这不是实现细节的取舍,而是一个根本性的设计问题:纠错码是概率机器,喂给概率机器的原料,必须是概率。
那么“带置信度的比特”长什么样?直接输出两个概率(P(b=0|y)和P(b=1|y))可以用,但工程上不这么做——两个概率相乘再相乘再相乘,十几次连乘下来,浮点数早就下溢成一串零了。通信系统把这对概率换了个写法:取比值的对数。
$$\mathrm{LLR}(b)=\ln\frac{P(b=0\mid y)}{P(b=1\mid y)}$$
这个数轴上的一个点,同时装下了两种信息:
这个写法还有一个数学上极其优雅的性质。假如你收到了两路独立观测y₁和y₂(比如一次首发、一次HARQ重传),想综合判断这个比特,概率域的做法是两路似然相乘;取了对数之后,乘法就变成了加法:
$$\mathrm{LLR}_{总}=\mathrm{LLR}(y_1)+\mathrm{LLR}(y_2)$$
记住这条加法性质,文章后面讲HARQ和迭代译码时,你会看到整个通信系统就靠它转起来。
公式看着抽象,我们从最简单的调制入手推一遍,你会发现LLR朴素得惊人。
BPSK:比特0发送+√E,比特1发送−√E,接收信号y=x+n,n是方差σ²的高斯噪声。把两种可能的高斯概率密度代进定义式,化简后只剩一行:
$$\mathrm{LLR}(b)=\frac{2\sqrt{E}}{\sigma^2}\,y$$
这是一条过原点的直线,两个方向的直觉都写在式子里:
注意σ²是从哪来的:从信道估计里来。信噪比信息以这种方式进入了每一个软比特。所有QAM星座的软解调,本质上都是这条直线的亲戚——只是“离判决线多远”的度量方式变了。
到了16QAM、64QAM,一个符号 carrying 好几个比特,每个比特的判决线不再是简单的一条直线,怎么办?硬算精确似然要把整个星座的64个点代进指数函数,代价不小。工程上用一个漂亮的近似——max-log近似。对每个比特bₖ,把星座点分成两组:这一位是0的S₀组和是1的S₁组,然后:
$$\mathrm{LLR}(b_k)\approx\frac{1}{\sigma^2}\left(\min_{s\in S_{1,k}}\lVert y-s\rVert^2-\min_{s\in S_{0,k}}\lVert y-s\rVert^2\right)$$
翻译成人话:接收点y到“1组”最近点的距离,减去到“0组”最近点的距离。y靠近哪个阵营,哪个阵营的距离就小,LLR符号就倒向它;两个最近距离越接近,LLR幅值越小,判决越悬。指数函数被彻底拿掉,每个比特只需要两次“找最近邻”,DSP实现毫无压力。
这个方案能工作得这么好,还有一位沉默的功臣:格雷映射。星座图上相邻的点只差一个比特,这不是随手排的,而是精心设计的——它保证了两件事:
同一个星座里,比特的命还不一样。看下表:
| 调制方式 | 每符号比特 | 星座点数 | 比特可靠性特点 |
|---|---|---|---|
| BPSK | 1 | 2 | 仅一位,全员可靠 |
| QPSK | 2 | 4 | 两位都是符号位,可靠性相同 |
| 16QAM | 4 | 16 | 2个符号位可靠,2个幅度位脆弱 |
| 64QAM | 6 | 64 | 符号位稳,中间幅度位最悬 |
| 256QAM | 8 | 256 | 星座间距缩小,脆弱位更容易出小LLR |
原因在几何上:每根轴上的“符号位”背靠整个象限,翻转它需要跨越很远的距离;而“幅度位”(比如内圈点1和外圈点3之间那位)翻转只需挪一步。同一时刻发出来的8个软比特,幅值天然分成高低几档——译码器看得一清二楚。
把软解调放回整条接收链路里,它的位置和输入输出就清楚了:
flowchart TD
A["射频采样"] --> B["FFT变到频域"]
B --> C["均衡: 摆正星座"]
C --> D["软解调: 逐比特算LLR"]
D --> E["译码: LDPC或Turbo"]
E --> F["校验通过, 交付数据"]
E -->|校验不过| G["报给HARQ等重传"]
下行OFDM里,每个子载波经过单抽头均衡后得到一个星座点估计y,软解调逐子载波并行进行,σ²从信道估计对参考信号的测量中取得。每个子载波独立产出一小组LLR,按序拼接成交给译码器的完整软序列。
上行SC-FDMA多了一步,但殊途同归。发射端先把QAM符号做DFT扩展再搬上子载波(目的是压低峰均比、照顾手机功放),接收端FFT均衡之后,还要做一次IDFT“去扩展”,恢复出每个原始QAM符号的估计值——之后软解调用的是和下行完全同一套数学。更妙的是,去扩展这个动作把分布在多个采样点上的噪声平均了一下,等于免费做了一次噪声平滑。上行为了功放选择单载波,软解调的数学没有为此付出任何额外代价。
至于均衡器为什么必须先把星座“摆正”,这正是信道估计与均衡那一环的职责——软解调拿到的是“已经摆正的点+噪声水平估计”,两者配合才敢下注。
软判决到底值多少钱?教科书里有个经典结论:AWGN信道下,卷积码配合维特比译码,软判决比硬判决大约省2dB;而Turbo、LDPC这类“软进软出”的迭代译码器,设计前提就是吃概率,硬判决的损失只会更夸张。2dB是什么概念?链路预算里省2dB,等于发射功率接近打六折还能维持同样的误码性能——什么硬件优化都做不到这么便宜,因为它只是“不扔信息”换来的。
flowchart TD
A["同一个接收点y"] --> B["硬判决路"]
A --> C["软判决路"]
B --> B1["只问: 落在哪一格"]
B1 --> B2["输出比特1"]
C --> C1["量两边距离"]
C1 --> C2["输出正负与幅值"]
B2 --> D1["译码器只见结论"]
C2 --> D2["译码器兼见把握"]
| 对比维度 | 硬判决 | 软判决(LLR) |
|---|---|---|
| 输出形式 | 0或1 | 实数:符号+幅值 |
| 保留的信息 | 只有判决结果 | 判决+置信度+SNR |
| 对译码器的价值 | 盲目投票 | 按把握加权投票 |
| 典型性能代价 | 比软判决差约2dB | 基准 |
| 实现复杂度 | 最低 | 每比特两次最近邻搜索 |
| 典型应用 | 极简接收机、演示 | 蜂窝、Wi-Fi、卫星等几乎所有现代系统 |
为什么译码器吃软不吃硬?Turbo的MAP算法和LDPC的和积算法,骨子里都是概率域的消息传递:每个变量节点收集所有相邻校验节点的“意见”,按置信度加权后形成新判断,一轮轮迭代逼近真相。硬比特进这种机器,等于把概率机器当查表机用——机器的全部精密设计都被浪费了。
再退一步看全景,你会发现LLR是物理层以上、译码层以下所有环节的通用货币,因为所有“融合多路证据”的场景,在似然域都是相乘、在对数域都是相加:
flowchart TD
A["首发数据到达"] --> B["软解调出LLR"]
B --> C["存入软缓存"]
C --> D["译码试一次"]
D --> E["CRC通过, 交付"]
D -->|CRC失败| F["回NACK"]
F --> G["重传到达"]
G --> H["再算一份新LLR"]
H --> C
这张图就是“为什么HARQ越重传越接近成功”的全部原理:不是重传的信号变好了,而是证据在累加。而累加之所以合法,全靠当初定义LLR时取的那个对数。
EVM与LLR的关系。实验室里看发射机质量,EVM(误差矢量幅度)是第一指标;而EVM在链路级的效果,就是等效把σ²做大——所有LLR的幅值整体缩水。所以一台EVM偏大的发射机,特征是“判决符号大多正确,但译码余量薄”:CLEAN信号能过包,边缘条件下先掉链路。排查发射机问题时,对着“未编码理论误码曲线”对齐实测点,能快速区分是噪声问题还是失真问题。
高阶调制的脆弱位。链路自适应选到256QAM时,边缘幅度位的LLR普遍偏小,误块率曲线前段变得很陡。外环链路自适应就是靠CRC校验结果微调MCS,本质上是在用反馈修正“LLR该信多少”的整体标尺。
调试陷阱:
Q: LLR幅值很小,是不是说明这个比特更可能是1? A: 不是。符号才决定方向(正偏0、负偏1),幅值只表示把握大小。LLR≈+0.2和LLR≈−0.2都是“几乎没有把握”,只是倾向相反。小幅值的正确读法是“这一位很悬,请译码器小心”。
Q: 软判决增益约2dB,听起来不多,值得这么讲究吗? A: 2dB在链路预算里是巨款。等效于发射功率接近省下四成,或者覆盖半径明显外扩,而且是零硬件成本的纯算法收益。更关键的是,Turbo/LDPC这类迭代译码器离开软信息根本无法工作——没有LLR,就没有现代纠错码的性能。
Q: 64QAM、256QAM下逐比特算似然,计算量会不会爆炸? A: 不会,因为用了max-log近似:每个比特只需在“0组”和“1组”里各找一次最近邻,无需任何指数运算。工程实现还会按距离预先排序、用查找表加速,复杂度随星座大小只按对数级增长。
Q: HARQ重传合并,为什么把两次LLR直接相加就可以? A: 因为两次传输是对同一比特的两次独立观测,概率域的最优合并是似然相乘;LLR定义时取了对数,相乘就化成了相加。首发与重传经过的信道不同也没关系,各自的σ²已经缩放进各自的LLR里,相加自动就是加权融合。
Q: 译码器内部传来传去的也是LLR吗? A: 是。迭代译码器里节点之间交换的“外信息”就是LLR,但会刻意扣除已经从对方那里拿到的部分,只传“新增证据”,防止同一份证据被反复计票导致过早收敛。Polar码的SCL译码器同样以LLR为输入。
本文由「51学通信」技术团队出品。51学通信由通信行业18年老兵爱卫生(微信ID: gprshome201101)维护,聚焦5G/6G核心网、3GPP标准解读、通信前沿技术深度分析。 出版作品有《5G核心网原理与实践》《IMS原理与实践》等4本通信专业书籍。知识星球「51学通信」提供深度技术答疑和行业洞察。
[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。
