Bhattacharyya参数与对称容量:如何衡量子信道好坏
上一篇我们已经看见了信道极化第一次如何发生。两个相同的基础信道 W,经过二阶核以后,会分裂成两个等效子信道:
W\longrightarrow (W^-,W^+)在 BEC(\epsilon) 上,上一篇算出了:
W^-=\mathrm{BEC}(2\epsilon-\epsilon^2),\qquad W^+=\mathrm{BEC}(\epsilon^2)如果取 \epsilon=0.5,那么:
W^-=\mathrm{BEC}(0.75),\qquad W^+=\mathrm{BEC}(0.25)直觉上,我们会说 W^- 变差了,W^+ 变好了。
但真正构造 Polar 码时,不能只说“好像更好”或者“看起来更差”。发送端必须决定哪些位置放信息比特,哪些位置放冻结位。也就是说,我们需要一个可以比较子信道可靠性的量。
这一篇就解决这个问题:如何量化子信道好坏。
本文重点讲两个指标:
- 对称容量 I(W):信道在均匀二元输入下能承载多少信息。
- Bhattacharyya 参数 Z(W):两个输入对应的输出分布有多容易混淆。
为了不让定义停在抽象层面,本文会用 BEC(\epsilon) 做一个完整的 N=4 小算例。我们不只引用递推公式,而是把每一层的事件关系和公式来源写清楚,最后算出四个子信道的 Z(W_4^{(i)})、I(W_4^{(i)}) 和可靠性排序。
为什么必须定义“子信道好不好”
Polar 码的核心策略可以概括成一句话:
把信息比特放到可靠的子信道上,把冻结比特放到不可靠的子信道上。
按照前面的符号约定,码长为 N,信息长度为 K,信息位集合写作 \mathcal{A},冻结位集合写作 \mathcal{A}^c。编码输入向量满足:
\underline{u}_{\mathcal{A}}=\underline{m}_0^{K-1},\qquad \underline{u}_{\mathcal{A}^c}=\underline{0}这里真正困难的地方不是把 \underline{m}_0^{K-1} 填进 \underline{u}_0^{N-1},而是先决定 \mathcal{A} 到底包含哪些索引。
第 i 个极化子信道写作 W_N^{(i)},这里 i\in[0,N-1],全文采用 0-based 索引。构造时需要比较:
W_N^{(0)},W_N^{(1)},\dots,W_N^{(N-1)}哪些更可靠,哪些更不可靠。
注意,\mathcal{A} 是集合,本身没有顺序。真正用于构造的是一个可靠性排序序列,例如:
\boldsymbol{\pi}=(\pi_0,\pi_1,\dots,\pi_{N-1})其中 \pi_0 表示最可靠的子信道索引,\pi_1 表示第二可靠的子信道索引,依此类推。若要选择 K 个信息位,就取排序序列中的前 K 个索引组成 \mathcal{A}:
\mathcal{A}=\{\pi_0,\pi_1,\dots,\pi_{K-1}\}所以本文要做的事情就是:给“可靠”一个可计算的定义。
对称容量 I(W):信道能承载多少信息
先看第一个指标:对称容量。
设基础二元输入信道为:
W:\mathcal{X}\to\mathcal{Y},\qquad \mathcal{X}=\{0,1\}其中 x\in\mathcal{X} 是输入比特,y\in\mathcal{Y} 是输出观测,转移概率写作 W(y\mid x)。
对称容量 I(W) 指的是:当输入 x 在 \{0,1\} 上均匀分布时,输入和输出之间的互信息。
写成公式是:
I(W) = \sum_{x\in\{0,1\}}\sum_{y\in\mathcal{Y}} \frac{1}{2}W(y\mid x) \log_2 \frac{W(y\mid x)} {\frac{1}{2}W(y\mid 0)+\frac{1}{2}W(y\mid 1)}这个式子看起来有点长,但含义并不神秘。
分母:
\frac{1}{2}W(y\mid 0)+\frac{1}{2}W(y\mid 1)是输出 y 的总体概率,因为输入 0 和 1 各占一半。
分子:
W(y\mid x)是已知输入为 x 时看到 y 的概率。
因此这个比值衡量的是:看到 y 以后,它对判断输入 x 到底有多大帮助。
直观上:
- 如果 I(W)=1,说明输出几乎完整告诉我们输入是哪一个二元符号。
- 如果 I(W)=0,说明输出几乎不提供关于输入的信息。
- 对二元输入信道,I(W) 通常落在 [0,1] 之间。
所以从 I(W) 的角度看:
I(W) 越大,信道越好。
Bhattacharyya 参数 Z(W):两个输入有多容易混淆
第二个指标是 Bhattacharyya 参数,记作 Z(W)。它的定义是:
Z(W)=\sum_{y\in\mathcal{Y}}\sqrt{W(y\mid 0)W(y\mid 1)}这个式子衡量的是两个条件分布 W(\cdot\mid 0) 和 W(\cdot\mid 1) 的重叠程度。
如果某个输出 y 在输入 0 和输入 1 时都很容易出现,那么:
W(y\mid 0)W(y\mid 1)会比较大,它对 Z(W) 的贡献也会比较大。这表示看到 y 时,接收端更容易混淆 0 和 1。
反过来,如果输入 0 和输入 1 对应的输出分布几乎不重叠,那么大多数 y 不会同时让 W(y\mid 0) 和 W(y\mid 1) 都大,Z(W) 就会比较小。
因此:
- Z(W)=0:两个输入完全容易区分,信道很好。
- Z(W)=1:两个输入很难区分,信道很差。
从 Z(W) 的角度看:
Z(W) 越小,信道越好。
这和 I(W) 的方向相反。I(W) 越大越好,Z(W) 越小越好。
I(W) 和 Z(W) 分别擅长描述什么
这两个量都能描述可靠性,但视角不同。
| 指标 | 越大还是越小更好 | 直观含义 | 构造时的读法 |
|---|---|---|---|
| I(W) | 越大越好 | 输出包含多少输入信息 | 选择容量大的子信道 |
| Z(W) | 越小越好 | 两个输入有多容易混淆 | 选择混淆小的子信道 |
对称容量更接近“这个信道能承载多少信息”的问题。Bhattacharyya 参数更接近“这个信道判错风险有多大”的问题。
在 Polar 码分析里,Z(W) 很常用,因为它在递归极化下有很漂亮的界和递推关系。尤其对 BEC 来说,它直接等于擦除概率,计算非常清楚。
对于二元输入离散无记忆信道,I(W) 和 Z(W) 之间有常用关系:
1-Z(W)\le I(W)\le \sqrt{1-Z(W)^2}这个不等式说明:Z(W) 小的时候,I(W) 会倾向于大;Z(W) 大的时候,I(W) 会倾向于小。它们不是同一个量,但方向上能够共同刻画信道可靠性。
BEC 场景下这两个量如何简化
接下来进入本文的主算例:BEC。
设 W=\mathrm{BEC}(\epsilon),输入为 0 或 1,输出字母表为:
\mathcal{Y}=\{0,1,?\}其中 ? 表示擦除。BEC 的转移概率是:
W(0\mid 0)=1-\epsilon,\qquad W(?\mid 0)=\epsilon,\qquad W(1\mid 0)=0 W(1\mid 1)=1-\epsilon,\qquad W(?\mid 1)=\epsilon,\qquad W(0\mid 1)=0先算 Z(W)。按照定义:
Z(W) = \sum_{y\in\{0,1,?\}}\sqrt{W(y\mid 0)W(y\mid 1)}把三个输出逐项展开:
Z(W) = \sqrt{W(0\mid 0)W(0\mid 1)} +\sqrt{W(1\mid 0)W(1\mid 1)} +\sqrt{W(?\mid 0)W(?\mid 1)}代入 BEC 的转移概率:
Z(W) = \sqrt{(1-\epsilon)\cdot 0} +\sqrt{0\cdot(1-\epsilon)} +\sqrt{\epsilon\cdot\epsilon} =\epsilon所以对 BEC:
Z(W)=\epsilon再看 I(W)。BEC 的输出有两种情况:
- 概率 1-\epsilon 不擦除,此时输出直接告诉接收端输入是 0 还是 1。
- 概率 \epsilon 擦除,此时输出 ? 不提供输入信息。
所以平均下来,每次信道使用能传递的信息量是:
I(W)=(1-\epsilon)\cdot 1+\epsilon\cdot 0=1-\epsilon因此对 BEC:
I(W)=1-\epsilon,\qquad Z(W)=\epsilon这就是 BEC 特别适合作为入门例子的原因。它把“信道好坏”直接变成了一个可以手算的擦除概率。
从 N=2 开始:第一层可靠性分裂
现在取:
\epsilon=0.5也就是基础信道:
W=\mathrm{BEC}(0.5)于是:
Z(W)=0.5,\qquad I(W)=0.5经过一次 Polar 二阶核,得到 W^- 和 W^+。上一篇已经从 BEC 的擦除事件角度推导过:
W^-=\mathrm{BEC}(2\epsilon-\epsilon^2),\qquad W^+=\mathrm{BEC}(\epsilon^2)这里我们重新把每一步和 Z、I 联系起来。
W^- 为什么变成 \mathrm{BEC}(2\epsilon-\epsilon^2)
对 W^- 来说,接收端要判断 u_0,但 u_1 还未知。二阶核是:
c_0=u_0\oplus u_1,\qquad c_1=u_1若两个物理输出都没有擦除,那么接收端知道 c_0 和 c_1,可以恢复:
u_1=c_1,\qquad u_0=c_0\oplus c_1如果任意一个物理输出被擦除,就无法唯一确定 u_0。
设两个物理信道的擦除事件分别为 E_0 和 E_1,且:
\Pr(E_0)=\epsilon,\qquad \Pr(E_1)=\epsilon由于两次物理信道独立:
\Pr(E_0\cap E_1)=\epsilon^2W^- 被擦除的事件是“至少一个物理输出被擦除”,即 E_0\cup E_1。所以:
\Pr(E_0\cup E_1) = \Pr(E_0)+\Pr(E_1)-\Pr(E_0\cap E_1) = \epsilon+\epsilon-\epsilon^2 = 2\epsilon-\epsilon^2因此:
Z(W^-)=2\epsilon-\epsilon^2,\qquad I(W^-)=1-Z(W^-)=1-2\epsilon+\epsilon^2=(1-\epsilon)^2代入 \epsilon=0.5:
Z(W^-)=2(0.5)-0.5^2=0.75 I(W^-)=1-0.75=0.25W^+ 为什么变成 \mathrm{BEC}(\epsilon^2)
对 W^+ 来说,接收端要判断 u_1,并且 u_0 已经作为边信息给出。
仍然从:
c_0=u_0\oplus u_1,\qquad c_1=u_1出发。判断 u_1 时有两条路:
- 如果 c_1 没擦除,直接由 c_1=u_1 得到 u_1。
- 如果 c_1 擦除了,但 c_0 没擦除,因为 u_0 已知,也可以由 u_1=u_0\oplus c_0 得到 u_1。
所以 W^+ 只有在两个物理输出都擦除时才会擦除。也就是事件 E_0\cap E_1:
\Pr(E_0\cap E_1)=\epsilon^2因此:
Z(W^+)=\epsilon^2,\qquad I(W^+)=1-\epsilon^2代入 \epsilon=0.5:
Z(W^+)=0.5^2=0.25 I(W^+)=1-0.25=0.75第一层分裂结果是:
| 子信道 | 擦除事件 | Z | I |
|---|---|---|---|
| W^- | E_0\cup E_1 | 0.75 | 0.25 |
| W^+ | E_0\cap E_1 | 0.25 | 0.75 |
这说明 W^- 更差,W^+ 更好。
N=4 主算例:四个子信道怎么逐层算出来
现在继续递归一次,得到 N=4 的四个子信道:
W_4^{(0)}=W^{--},\qquad W_4^{(1)}=W^{-+},\qquad W_4^{(2)}=W^{+-},\qquad W_4^{(3)}=W^{++}这里上标中的两个符号表示两层分裂路径。例如 W^{-+} 表示先从 W 走到 W^-,再从 W^- 走到它的加号分支。
为了把推导写清楚,我们不要只说“套公式”。对 BEC 来说,每个中间子信道仍然是一个 BEC。若某个中间信道的擦除概率是 \delta,那么再做一次二阶极化时:
- 减号分支需要两个下层输出都不擦除才可靠,所以擦除事件是并集。
- 加号分支只在两个下层输出都擦除时失败,所以擦除事件是交集。
因此从事件出发有:
Z(V^-) = \Pr(F_0\cup F_1) = \Pr(F_0)+\Pr(F_1)-\Pr(F_0\cap F_1) = 2\delta-\delta^2 Z(V^+) = \Pr(F_0\cap F_1) = \delta^2这里 V=\mathrm{BEC}(\delta),F_0 和 F_1 是两次独立使用 V 时的擦除事件。
下面逐个计算四个 N=4 子信道。
计算 W^{--}
W^{--} 是从第一层的 W^- 再走减号分支得到的。
第一层已经有:
Z(W^-)=0.75也就是说,此时中间信道的擦除概率是:
\delta=0.75第二层走减号分支,需要两个独立的 W^- 输出都不擦除才能可靠,因此擦除事件是并集。设这两个事件为 F_0、F_1,则:
Z(W^{--}) = \Pr(F_0\cup F_1) = 2\delta-\delta^2代入 \delta=0.75:
Z(W^{--}) = 2(0.75)-0.75^2 = 1.5-0.5625 = 0.9375因为 BEC 中 I=1-Z,所以:
I(W^{--})=1-0.9375=0.0625计算 W^{-+}
W^{-+} 是从第一层的 W^- 再走加号分支得到的。
仍然有:
\delta=Z(W^-)=0.75第二层走加号分支时,只有两个独立的 W^- 输出都擦除才会失败,因此擦除事件是交集:
Z(W^{-+}) = \Pr(F_0\cap F_1) = \delta^2代入 \delta=0.75:
Z(W^{-+})=0.75^2=0.5625 I(W^{-+})=1-0.5625=0.4375计算 W^{+-}
W^{+-} 是从第一层的 W^+ 再走减号分支得到的。
第一层已经有:
Z(W^+)=0.25所以此时中间信道的擦除概率是:
\delta=0.25第二层走减号分支,擦除事件仍然是并集:
Z(W^{+-}) = \Pr(F_0\cup F_1) = 2\delta-\delta^2代入 \delta=0.25:
Z(W^{+-}) = 2(0.25)-0.25^2 = 0.5-0.0625 = 0.4375 I(W^{+-})=1-0.4375=0.5625计算 W^{++}
W^{++} 是从第一层的 W^+ 再走加号分支得到的。
此时:
\delta=Z(W^+)=0.25第二层走加号分支,擦除事件是交集:
Z(W^{++}) = \Pr(F_0\cap F_1) = \delta^2代入 \delta=0.25:
Z(W^{++})=0.25^2=0.0625 I(W^{++})=1-0.0625=0.9375到这里,N=4 的四个子信道都已经从事件关系算出来了,而不是只凭递推公式写结论。
一张图看清 N=4 的可靠性递推
下面这张图把刚才的计算压缩成一棵递推树。每走一个减号分支,擦除事件变成并集;每走一个加号分支,擦除事件变成交集。

图里最重要的是两个方向:
- 从左到右看,Z 越来越小,I 越来越大,子信道越来越可靠。
- 从上到下看,极化并没有改变总信息量,而是把可靠性重新分配到不同子信道上。
四个子信道的结果汇总如下:
| 子信道 | 路径 | Z(W_4^{(i)}) | I(W_4^{(i)}) | 可靠性 |
|---|---|---|---|---|
| W_4^{(0)} | W^{--} | 0.9375 | 0.0625 | 最差 |
| W_4^{(1)} | W^{-+} | 0.5625 | 0.4375 | 较差 |
| W_4^{(2)} | W^{+-} | 0.4375 | 0.5625 | 较好 |
| W_4^{(3)} | W^{++} | 0.0625 | 0.9375 | 最好 |
顺便检查一下总信息量是否守恒:
I(W_4^{(0)})+I(W_4^{(1)})+I(W_4^{(2)})+I(W_4^{(3)}) = 0.0625+0.4375+0.5625+0.9375 = 2而原始四次 BEC(0.5) 的总对称容量也是:
4I(W)=4\times 0.5=2所以 Polar 变换没有凭空制造信息量。它只是把四个“中等可靠”的信道,变成了可靠性更分散的四个子信道。
从可靠性排序得到信息位集合
现在就可以排序了。
因为对 BEC 来说 Z(W) 越小越可靠,所以按照 Z(W_4^{(i)}) 从小到大排序:
Z(W_4^{(3)})=0.0625 < Z(W_4^{(2)})=0.4375 < Z(W_4^{(1)})=0.5625 < Z(W_4^{(0)})=0.9375对应的可靠性排序序列是:
\boldsymbol{\pi}=(3,2,1,0)这里必须再次强调:\boldsymbol{\pi} 是有序序列,而 \mathcal{A} 是集合。不要说“取集合中的前 K 个”,因为集合没有前后顺序。正确说法是:先定义可靠性排序序列 \boldsymbol{\pi},再从这个序列里取前 K 个索引。
例如取 N=4,K=2。那么应该选择最可靠的两个子信道 W_4^{(3)} 和 W_4^{(2)} 放信息比特:
\mathcal{A}=\{2,3\}冻结集合相对于全集 [0,N-1]=[0,3] 定义:
\mathcal{A}^c=[0,3]\setminus\mathcal{A}=\{0,1\}于是编码输入向量满足:
\underline{u}_{\mathcal{A}}=\underline{m}_0^{K-1},\qquad \underline{u}_{\mathcal{A}^c}=\underline{0}在这个例子里,信息位放在索引 2 和 3,冻结位放在索引 0 和 1。
这就是从可靠性指标走到 Polar 码构造的最小闭环:
- 先定义可靠性指标 Z(W) 或 I(W)。
- 再计算每个子信道 W_N^{(i)} 的可靠性。
- 然后得到可靠性排序序列 \boldsymbol{\pi}。
- 最后由 \boldsymbol{\pi} 选出信息位集合 \mathcal{A}。
为什么 W^{-+} 和 W^{+-} 的顺序值得注意
在这个 N=4 例子里,有一个很适合初学者观察的细节:
Z(W^{-+})=0.5625,\qquad Z(W^{+-})=0.4375所以:
W^{+-}\ \text{比}\ W^{-+}\ \text{更可靠}这说明可靠性不能只数路径里有几个加号或减号。W^{-+} 和 W^{+-} 都有一个减号和一个加号,但顺序不同,结果也不同。
原因是减号分支和加号分支是非线性变换:
\delta\mapsto 2\delta-\delta^2,\qquad \delta\mapsto \delta^2先变差再变好,和先变好再变差,不一定得到相同的可靠性。
这也提醒我们:真实 Polar 码构造不能靠“直觉数符号”完成,必须有明确的可靠性计算或排序方法。
有限码长下可靠性指标的局限
到目前为止,我们用 BEC(0.5) 和 N=4 得到了一个非常清楚的排序:
\boldsymbol{\pi}=(3,2,1,0)但这不是说所有信道、所有码长、所有译码算法下都可以照搬这个排序。
这里有三个边界要记住。
第一,BEC 是最容易分析的理想模型。真实无线通信里更常见的是 AWGN 这类连续输出信道,接收端拿到的是实数观测 \underline{y} 或原始信道 LLR \underline{\lambda},不是简单的擦除符号。
第二,有限码长下,子信道通常没有完全极化。比如刚才 N=4 时,中间两个子信道的 Z 分别是 0.5625 和 0.4375,它们并没有接近 0 或 1。
第三,可靠性指标服务于构造,但最终性能还会受到译码算法影响。后面讲 SC、SCL 和 CA-SCL 时会看到,同一个 \mathcal{A} 在不同译码器下可能表现不同。
因此,第 6 篇解决的是“如何量化和排序”的基础问题。后面的第 8、9、10 篇会继续讨论真实构造时如何获得可靠性序列。
容易混淆的几个点
第一,不要把 I(W) 和 Z(W) 的方向搞反。I(W) 越大越好,Z(W) 越小越好。
第二,不要把 \underline{y} 当成 LLR。本文没有展开 LLR 递推,\underline{y} 仍然只表示接收观测。如果需要写原始 LLR,应写作 \underline{\lambda}。
第三,不要说“集合 \mathcal{A} 的前 K 个”。应该先定义可靠性排序序列 \boldsymbol{\pi},再取序列的前 K 个索引组成 \mathcal{A}。
第四,Z(W) 不是错误概率本身。它是一个可靠性度量,和判错概率密切相关,但不能在所有上下文里直接等同。
第五,N=4 的例子只是为了把机制算清楚。实际工程码长通常大得多,可靠性排序也需要更系统的方法。
小结
这一篇我们回答了一个非常关键的问题:极化以后,如何衡量子信道好坏?
对称容量:
I(W) = \sum_{x\in\{0,1\}}\sum_{y\in\mathcal{Y}} \frac{1}{2}W(y\mid x) \log_2 \frac{W(y\mid x)} {\frac{1}{2}W(y\mid 0)+\frac{1}{2}W(y\mid 1)}衡量信道能承载多少信息,越大越好。
Bhattacharyya 参数:
Z(W)=\sum_{y\in\mathcal{Y}}\sqrt{W(y\mid 0)W(y\mid 1)}衡量两个输入对应输出分布的混淆程度,越小越好。
在 BEC(\epsilon) 中:
I(W)=1-\epsilon,\qquad Z(W)=\epsilon对于 N=4、\epsilon=0.5,我们完整算出:
\begin{array}{c|c|c|c} \text{子信道} & \text{路径} & Z & I\\ \hline W_4^{(0)} & W^{--} & 0.9375 & 0.0625\\ W_4^{(1)} & W^{-+} & 0.5625 & 0.4375\\ W_4^{(2)} & W^{+-} & 0.4375 & 0.5625\\ W_4^{(3)} & W^{++} & 0.0625 & 0.9375 \end{array}按照 Z 从小到大排序:
\boldsymbol{\pi}=(3,2,1,0)如果 K=2,则:
\mathcal{A}=\{2,3\},\qquad \mathcal{A}^c=\{0,1\}到这里,Polar 码构造的第一条主线已经出现:对子信道做可靠性排序,再选择最可靠的 K 个位置放信息比特。
参考
- E. Arikan, “Channel polarization: A method for constructing capacity-achieving codes for symmetric binary-input memoryless channels,” IEEE Transactions on Information Theory, vol. 55, no. 7, pp. 3051-3073, Jul. 2009, doi: 10.1109/TIT.2009.2021379.