<!-- title: 软解调：给比特定个置信度 -->

# 软解调：给比特定个置信度

> 当解调器不再"非黑即白"地拍板，而是给每个比特附上一个置信度分数，整个接收机的性能边界就被悄悄改写了。本文从星座图上的判决说起，讲清楚为什么现代通信系统几乎清一色地选择软判决解调，以及那个反复出现的"LLR"到底在算什么。

---

## 一、从一个庭审类比说起

想象你是一名陪审员，正在判断被告"有没有罪"。

最干脆的做法是当场投票：有罪或无罪，二选一。这就是**硬判决（Hard Decision）**——一锤定音，掷地有声，但代价是你把脑子里那点"我其实只有七成把握"的犹豫，彻底丢进了垃圾桶。

另一种做法是：你不急着投票，而是说一句"我判断有罪的概率是 0.73"。这句话里同时包含了**结论**（倾向有罪）和**把握程度**（只有七成多）。这就是**软判决（Soft Decision）**——它把"置信度"这条信息原封不动地保留下来，交给下一个环节继续推理。

通信系统里的解调器，面临的就是同一个问题：天线收下来一个被噪声污染的复数样本 $y$，它对应发射端星座图上的某个点。解调器要不要立刻喊出"这是 0110"？还是先克制一下，把"它有多像 0110、又有多像 0111"这件事，用数字告诉后面的译码器？

答案藏在一个朴素的观察里：**过早地下结论，是一种不可逆的信息浪费。** 而现代的信道编码（卷积码、Turbo 码、LDPC、Polar）恰恰就是为"消费置信度"而生的——它们最想要的不是"0 或 1"，而是"这个 0 有多确定"。

---

## 二、先回到硬判决：星座图上的"就近入学"

要理解软判决为什么值钱，得先看清硬判决做了什么、又扔掉了什么。

假设发射端用的是 16-QAM，每个星座点携带 4 个比特。接收机收到的样本 $y$ 是星座图平面上的一个点，但它已经偏离了原始位置——被加性高斯白噪声（AWGN）"推"了一把。

硬判决的逻辑朴素得可爱：**在星座图上找到离 $y$ 最近的那个标准点，它代表的 4 个比特就是判决结果。** 这就是所谓的"最近邻判决"（Nearest-Neighbor Decision），数学上对应最大似然（ML）准则：

$$\hat{s} = \arg\min_{s \in \mathcal{S}} |y - s|^2$$

这个过程可以想象成在星座图上画"学区边界"（判决域）：每个星座点都拥有一块领地，凡是落进这块领地的 $y$，都归这个点管。判决边界就是相邻两个星座点连线的中垂线。

```mermaid
flowchart TD
    A["接收样本 y<br/>(含噪声的复数)"] --> B["硬判决解调器"]
    A --> C["软判决解调器"]
    B --> D["最近邻匹配<br/>argmin |y - s|^2"]
    D --> E["输出: 0 1 1 0<br/>(4个确定比特)"]
    E --> F["硬译码器<br/>(汉明距离)"]
    C --> G["逐比特计算 LLR<br/>保留置信度"]
    G --> H["输出: +5.2 -1.3 +8.7 -0.4<br/>(4个实数置信度)"]
    H --> I["软译码器<br/>(LDPC/Turbo/Polar)<br/>迭代消费置信度"]
    F --> J["误码率较高<br/>~差 2-3 dB"]
    I --> K["误码率显著降低<br/>约 2-3 dB 编码增益"]
    style B fill:#fde2e2
    style C fill:#d6eaf8
    style J fill:#fadbd8
    style K fill:#d5f5e3
```

看起来硬判决简洁高效，问题在于——它把 $y$ 离最近的点到底有多近、离次近的点又有多近，这些**距离信息全部抹掉了**。而恰恰是这些距离，承载着"这次判决有多可靠"的关键情报。

举两个极端情况：

- $y$ 几乎正中靶心，落在某个标准点上——硬判说"0110"，软判也说"0110，置信度极高"。两者结论一致。
- $y$ 正好卡在两个星座点的判决边界上——硬判被迫随机拍一个（比如判 0110），并且**自信地**把这个不太靠谱的结果递给译码器，仿佛它和正中靶心的判决一样可靠。软判则会说"0110 或 0111，置信度接近 0"，如实把这份不确定告知译码器。

后者，就是硬判决"撒谎"的时刻。而译码器偏偏最容易被这种自信的错误带偏。

---

## 三、软判决的核心：给每个比特一个置信度分数

软判决要传递"结论 + 把握"这两层信息，需要一个数值载体。通信工程里约定俗成的载体，叫**对数似然比（Log-Likelihood Ratio, LLR）**，也叫 L-value。

对于某个比特 $b$，给定接收样本 $y$，LLR 的定义是：

$$\text{LLR}(b) = \ln \frac{P(b=0 \mid y)}{P(b=1 \mid y)}$$

这个定义的信息量惊人地浓缩：

- **符号（正负）= 结论**：LLR > 0 倾向于 $b=0$；LLR < 0 倾向于 $b=1$。要把它还原成硬判决，只需看一眼符号。
- **绝对值大小 = 把握**：绝对值越大，置信度越高；接近 0，意味着"五五开，我也说不准"。

| LLR 数值 | 含义 | 对应的"陪审员台词" |
|---|---|---|
| LLR = +8.0 | 非常确信是 0 | "我有九成九把握，无罪" |
| LLR = +1.2 | 略微倾向 0 | "勉强觉得无罪，六成多吧" |
| LLR = 0.0 | 完全不确定 | "真不知道，抛硬币决定" |
| LLR = −1.5 | 略微倾向 1 | "有点像有罪，但不肯定" |
| LLR = −9.0 | 非常确信是 1 | "铁证如山，有罪" |

注意一个细节：硬判决其实"隐藏"在软判决里——任何时候你想要硬判决，对 LLR 取符号即可（$\hat{b} = \mathbf{1}\{\text{LLR}<0\}$，取决于约定）。所以软判决是硬判决的"超集"，它额外多携带了一份置信度，而没有任何信息损失。这也是为什么从信息论角度看，软判决**不可能比**硬判决差，只会更好或持平。

---

## 四、LLR 到底在算什么：从精确式到 max-log 近似

LLR 的定义用的是条件概率，但接收机能直接观测的只有 $y$ 和噪声方差 $\sigma^2$。借助贝叶斯框架和 AWGN 的似然函数 $p(y\mid s) \propto \exp\!\left(-|y-s|^2/(2\sigma^2)\right)$，可以把比特的 LLR 写成对所有星座点的求和：

$$\text{LLR}(b_i) = \ln \frac{\displaystyle\sum_{s \in \mathcal{S}_0^{(i)}} \exp\!\left(-\frac{|y - s|^2}{2\sigma^2}\right)}{\displaystyle\sum_{s \in \mathcal{S}_1^{(i)}} \exp\!\left(-\frac{|y - s|^2}{2\sigma^2}\right)}$$

其中 $\mathcal{S}_0^{(i)}$ 是"第 $i$ 个比特 = 0"的所有星座点集合，$\mathcal{S}_1^{(i)}$ 则是"第 $i$ 个比特 = 1"的所有星座点集合。

这个式子的物理含义非常清晰：把星座图上的点按"这个比特是 0 还是 1"劈成两堆，分别看 $y$ 离哪一堆更近（用指数加权求和），最后取对数比。**离 0 那堆越近、离 1 那堆越远，LLR 的正值就越大，对这个比特判 0 的信心就越足。**

问题在于，这个精确式对硬件极不友好：每个比特都要对所有星座点算指数、求和、再取对数，64-QAM 一个符号就要算 6 个比特 × 64 个点 = 几百次指数运算，功耗和延迟都吃不消。

于是工程上几乎无一例外地采用 **max-log 近似**。它利用了这样一个数学事实：$\ln(e^{a_1}+e^{a_2}+\cdots) \approx \max_k a_k$（当某一项明显占优时）。代进去之后，繁琐的求和就塌缩成"各自找最近的那一个点"：

$$\text{LLR}(b_i) \approx \frac{1}{2\sigma^2}\Big(\min_{s \in \mathcal{S}_1^{(i)}} |y - s|^2 \;-\; \min_{s \in \mathcal{S}_0^{(i)}} |y - s|^2\Big)$$

这一下世界清爽了——每个比特只需找到"最近的 0 点"和"最近的 1 点"，算两段欧氏距离的平方差即可，连指数都不用算。代价是大约 0.2～0.5 dB 的性能损失，对绝大多数场景完全可以接受。

```mermaid
flowchart LR
    subgraph 精确LLR["精确 LLR（对数-指数求和）"]
        direction TB
        P1["对每个星座点 s"] --> P2["算 exp(-|y-s|²/2σ²)"]
        P2 --> P3["按 b=0/1 分组求和"]
        P3 --> P4["取对数比<br/>精度高，运算重"]
    end
    subgraph maxlog["Max-Log 近似（工程主流）"]
        direction TB
        M1["只找最近的 b=0 点 s0*"] --> M2["只找最近的 b=1 点 s1*"]
        M2 --> M3["LLR ≈ (|y-s1*|² - |y-s0*|²)/2σ²<br/>无需指数，损失约 0.2-0.5 dB"]
    end
    精确LLR -.近似.-> maxlog
    style P4 fill:#fadbd8
    style M3 fill:#d5f5e3
```

更进一步，对于采用 Gray 映射的方形 QAM，每个比特的取值其实**只依赖于 I 路（实部）或 Q 路（虚部）中的一个**。于是 LLR 还能退化成几条简单的分段线性函数（阈值比较 + 线性外推），完全跳过"搜索星座点"这一步。这就是基站基带芯片里真正在跑的高效实现——原理虽然来自严格的概率推导，落地却简单得像查表。

---

## 五、Gray 映射：软解调的隐形助攻

讲到这里，必须提一个常被忽略、却和软判决深度绑定的设计：**星座点的比特标注（bit labeling）**，尤其是 **Gray 映射**。

星座图上的点怎么贴标签，看似随意，实则大有讲究。Gray 码的规则是：**任意两个相邻（上下左右挨着）的星座点，它们的标签只差 1 个比特。**

为什么要这么排？因为噪声最容易把 $y$ 推到**相邻**的点上去（跨越判决边界），而不是飞跃到对角线远端。如果用自然二进制排标签，相邻两点可能差好几个比特，一次"轻微越界"就会引发多个比特错误。而 Gray 映射下，一次最可能的相邻误判，只换来一个比特翻转。

这正是教科书里那条著名近似的由来——在 Gray 映射 + 中高信噪比下，误比特率（BER）与误符号率（SER）的关系近似为：

$$\text{BER} \approx \frac{\text{SER}}{\log_2 M}$$

对 16-QAM（$\log_2 M = 4$），意味着 BER 约是 SER 的四分之一。这条曲线关系是工程师评估链路预算、设置目标 $E_s/N_0$ 时的常用速算工具。

Gray 映射对**软**解调同样友好：由于每个比特的 0/1 分界在星座图上是"一刀切"的整齐区域，max-log 里的"最近 0 点"和"最近 1 点"很容易快速定位，分段线性近似才得以成立。可以说，Gray 映射既是降低 BER 的利器，也是软解调硬件化的前提。

| 调制方式 | 每符号比特数 | 频谱效率（理想） | Gray 下 BER≈SER/ | 典型应用 |
|---|---|---|---|---|
| QPSK | 2 | 2 bit/s/Hz | SER/2 | 小区边缘、控制信道 |
| 16-QAM | 4 | 4 bit/s/Hz | SER/4 | 中等速率数据 |
| 64-QAM | 6 | 6 bit/s/Hz | SER/6 | 主流数据业务 |
| 256-QAM | 8 | 8 bit/s/Hz | SER/8 | 微波回传、近距离高速 |

---

## 六、为什么软判决这么值钱：译码器靠它"复活"

讲了一堆数学，最关键的问题来了：**软判决到底换来了多少好处，值不值得这份复杂度？**

答案藏在信道译码器的工作原理里。以 LDPC 码（5G 数据信道）和 Turbo 码（4G 数据信道）为例，它们的核心都是**迭代译码 + 置信度传播（Belief Propagation）**。译码器在变量节点和校验节点之间反复交换"软信息"，每一轮都根据全局约束修正每个比特的置信度，直到收敛。

这套迭代机制有一个刚性前提：**输入必须是软信息**。如果你喂给它硬判决的 0/1，置信度传播就退化成了简单的硬纠错，迭代的好处几乎全部丧失。换算成工程语言，这叫"硬判决译码 vs 软判决译码"的差距——**典型情况下约 2～3 dB 的编码增益**。

2～3 dB 是什么概念？它意味着在同样的误码率目标下，发射功率可以减半（3 dB ≈ 功率减半），或者小区覆盖半径可以显著扩大，或者同样功率下能用更高阶的调制传更多数据。在寸土寸金的无线频谱和功耗预算里，这是真金白银。

```mermaid
flowchart TD
    Y["天线接收<br/>y = s + n"] --> EQ["信道均衡<br/>(消除码间串扰)"]
    EQ --> SD["软解调器<br/>逐比特输出 LLR"]
    SD --> DEC["软译码器<br/>LDPC / Turbo / Polar"]
    DEC -->|"迭代: 输出外信息反馈"| DEC
    DEC --> OUT["收敛后取符号<br/>输出硬比特"]
    SD -.->|"硬判决情形:<br/>只给 0/1, 译码器拿不到置信度"| OUT2["性能损失 2-3 dB"]
    style SD fill:#d6eaf8
    style DEC fill:#d5f5e3
    style OUT2 fill:#fadbd8
```

理解了这一点，你就能解释一连串工程现象：

- **为什么 5G NR 把 LDPC 定为数据信道编码？** 因为 LDPC 天然支持软信息输入和并行迭代译码，在高码率下效率高，配合高阶 QAM 的软解调，能把链路性能压榨到极致。
- **为什么控制信道用 Polar 码 + 短码？** 控制信息短而关键，Polar 码在短码长下接近容量，同样依赖软输入的 SCL 译码。
- **为什么测试仪表里 EsNo、SNR、BER 是绑在一起看的？** 因为软解调的"好坏"不能只看它自己输出的 LLR，要看到译码之后的 BER 曲线是否在目标 $E_s/N_0$ 处收敛到设计门限。

---

## 七、实战连接：调试时在哪里会和它打交道

把原理落到现网和实验室，软解调会以几种具体方式出现在工程师视野里。

**1. 星座图收敛观察。** 抓一段接收 IQ 数据画星座图，如果各簇点"聚成一团、边界清晰"，说明 $E_s/N_0$ 足够、软解调输出的 LLR 幅值普遍偏大、置信度高；如果各簇"糊成一坨、犬牙交错"，LLR 就会大量接近 0，译码器压力陡增，BER 飙升。星座图是软解调健康度的第一现场。

**2. LLR 直方图诊断。** 更精细的做法是统计译码器输入端 LLR 的分布。健康链路的 LLR 直方图两端（大正值、大负值）有明显的"峰"，中间近零区域很矮；一旦中间区域鼓起来一个"驼峰"，就说明大量比特处于"半信半疑"状态，往往是 SNR 不足、同步偏差或频偏未校准干净。

**3. BER vs SNR 曲线"瀑布"位置。** 软判决系统的 BER-SNR 曲线通常呈陡峭的"瀑布"形状——SNR 低于某门限时 BER 高企，一旦越过门限就迅速跌到接近零。这条曲线的位置（瀑布出现在哪个 $E_s/N_0$）就是检验"调制+编码+软解调"整体设计是否达标的标尺。和理论曲线（如各阶 QAM 在 AWGN 下的 SER 公式）对比，能反推实现损失。

**4. 常见调试陷阱。** 一个典型坑是**噪声方差 $\sigma^2$ 估计不准**。max-log 公式里有一个 $1/(2\sigma^2)$ 的系数，如果 $\sigma^2$ 估高了，LLR 整体被压扁，译码器会"误以为"所有比特都不确定，迭代收敛变慢甚至失败；估低了则 LLR 过度自信，可能锁死在错误解上。所以软解调和"SNR 估计"这两个模块是绑定的，调一个必须看另一个。

另一个坑是**软信息的量化位宽**。LLR 是实数，但实际硬件要用有限位宽（比如 4～6 bit）量化。量化太粗，置信度分辨率不够，等于又部分退化成了硬判决；量化太细，总线宽度和功耗又上去了。位宽选择本质是在"软信息精度"和"实现成本"之间找平衡。

---

## 八、硬判决 vs 软判决：一张总表

| 维度 | 硬判决解调 | 软判决解调（LLR） |
|---|---|---|
| 输出形式 | 比特 0/1 | 实数（含符号=结论，幅值=置信度） |
| 信息保留 | 丢失距离/可靠性 | 完整保留，且硬判决是其子集（取符号即可） |
| 计算复杂度 | 低（最近邻匹配） | 中（max-log：两次最近邻 + 平方差） |
| 与现代编码配合 | 差，迭代译码失效 | 好，是 LDPC/Turbo/Polar 的必备输入 |
| 典型编码增益 | 基准 | 额外约 2～3 dB |
| 适用场景 | 简单系统、无强编码 | 5G/4G/Wi-Fi 等几乎所有现代系统 |
| 量化位宽 | 1 bit/比特 | 通常 4～8 bit/LLR |

---

## 九、常见问题

**Q1：软判决既然比硬判决好，为什么不全用软判决？**
A：核心权衡是复杂度与功耗。软判决需要算 LLR、占用更宽的数据通路、需要更精确的噪声方差估计。对于极简链路（如某些控制信令、低速遥测、无强编码的场景），硬判决的简洁性更划算。但在任何带强 FEC（前向纠错）的现代宽带系统里，软判决带来的 2～3 dB 增益远超其实现成本，因此成为默认选择。

**Q2：LLR 的符号约定（正判 0 还是正判 1）会不会搞混？**
A：会，这是工程里常见的"对不上"问题。不同教材、不同芯片、不同仿真平台可能采用相反的符号约定（有的定义 $\ln P(0)/P(1)$，有的定义 $\ln P(1)/P(0)$）。如果仿真 BER 异常（比如译码完全不收敛或误码率恒为 50%），第一时间怀疑的就是 LLR 符号约定接反了。约定一致是模块对接的前提。

**Q3：max-log 近似损失的那 0.2～0.5 dB，在什么场景下不能忽视？**
A：在极限链路设计、追求容量界（如深空通信、长距离微波）或低 SNR 边缘场景下，这零点几 dB 可能让瀑布曲线整体右移，导致达不到目标覆盖。此时会回到精确 LLR，或采用折中的近似（如带修正项的 max-log）。但对绝大多数商用蜂窝和 Wi-Fi 系统，max-log 是性能与开销的最佳平衡点。

**Q4：软解调和星座图、Gray 映射三者是什么关系？**
A：星座图定义了"信号长什么样"，Gray 映射决定了"星座点上的比特怎么贴标签"，软解调则是"给定一个噪声样本，算出每个比特的置信度"。Gray 映射让相邻误判只错 1 个比特（降低 BER），同时也让每个比特的 0/1 区域在星座图上整齐可分，从而使软解调的计算（尤其是分段线性近似）变得高效。三者协同，才有今天高阶 QAM + 强编码 + 软解调的高谱效链路。

**Q5：调试时如何快速判断软解调链路是否健康？**
A：三步走——一看星座图各簇是否清晰收敛；二看译码器输入端 LLR 直方图是否两端高、中间低（健康的"置信度分布"）；三看 BER-SNR 瀑布曲线是否在设计的 $E_s/N_0$ 门限处陡降，并与理论曲线比对实现损失。任何一步异常，都可能指向 SNR 估计、同步、量化位宽或 LLR 符号约定的问题。

---

## 参考来源

2. [Hard- vs. Soft-Decision Demodulation Examples — MathWorks](https://www.mathworks.com/help/comm/ug/hard-vs-soft-decision-demodulation-examples.html) — QPSK 下硬判决与 LLR 软判决的 BER 性能对比仿真示例。
3. [Log-Likelihood Ratios (L-values) for BPSK / Soft Demapping — Universität Stuttgart WebDemo](https://webdemo.inue.uni-stuttgart.de/webdemos/02_lectures/communication_3/soft_demapping/index.php?id=1) — 软解映射的交互式教学演示，直观展示 LLR 的计算与置信度含义。
4. [软解调：对数似然比 (LLR) — 知乎](https://zhuanlan.zhihu.com/p/69396134) — 中文社区对 QAM 软解调 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 等场景全覆盖。

![51学通信知识星球海报-扫码加入](https://wiki.500nian.com/images/zhixingqiu_qrcode.png)
